哪位高人能给段用VBS打开EXCEL后禁用工作簿的最大化、最小化窗口功能的代码

以下代码已经可以实现打开指定位置的Excel文件,但不知如何实现打开后使其最大化、最小化功能禁用的代码,请高人补充一下,不甚感激。
 Dim fso,fname
 Set fso=CreateObject("scripting.FileSystemObject")
 fname="D:\"&FormatDateTime(date,2)&".xls"
 Dim objExcelApp
 Set objExcelApp=CreateObject("Excel.Application")
 objExcelApp.visible=true
 objExcelApp.workbooks.open fname
 ----请补充打开Excel后使工作簿最大化、最小化窗口禁用的代码-----
 Set objExcelApp=nothing

最佳答案

打开Excel,菜单-工具-宏-Visual Basic 编辑器
 在VBAProject下插入模块,粘贴一下代码
   Private Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long

   Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
   
   Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
     
   Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
   
   Const WS_MINIMIZEBOX = &H20000
   
   Const WS_MAXIMIZEBOX = &H10000
   
   Const GWL_STYLE = (-16)
   
   
   

 Sub hide(hwnd As Long)

   Dim lWnd     As Long
   
   lWnd = GetWindowLong(hwnd, GWL_STYLE)

   lWnd = lWnd And Not (WS_MINIMIZEBOX)
   
   lWnd = lWnd And Not (WS_MAXIMIZEBOX)
   
   lWnd = SetWindowLong(hwnd, GWL_STYLE, lWnd)
   
   Dim h As Long

   h = FindWindowEx(hwnd, 0&, "EXCEL2", vbNullString)

   h = FindWindowEx(h, 0&, "MsoCommandBar", "工作表菜单栏")

   EnableWindow h, 0
    
 End Sub

 保存为xla文件,比如D:\Hide.xla

 
 在你指定代码补充的地方插入
 objExcelApp.Workbooks.Open "D:\Hide.xla"

 objExcelApp.Run "hide", objExcelApp.hwnd

 这样就运行了上面保存的宏
 菜单和最大化最小化都被屏蔽

提问者对于答案的评价:
谢谢啦!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc271982.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午8:47
下一篇 2019年6月11日 上午8:47

相关推荐

  • web客户端画面 弹出错误,咋整?!

    如图所示,不知所措,请资深老师指点指点? 图片说明:    最佳答案 能咋整,打开相关画面找脚本啊。 提问者对于答案的评价:谢谢您! 专家置评 注意查看使用的脚…

    2017年7月25日
  • wincc正版软件安装,V7.5

    wincc正版组态软件如何安装,有没有教程,安装时总显示系统不支持 最佳答案 如何在Win10中安装WinCC V7.4SP1http://www.ad.siemens.…

    SIMATIC WinCC 2020年11月1日
  • WINCC 6.2如何使用报警弹出窗口

    需要在WINCC的主画面中做个报警弹出窗口,已用画中画功能,但是如何根据不同的参数将不同的画面调入窗口中去,例数据为10时将10号画面显示在画中画中,数据为2将2号画面显示在画中画…

    SIMATIC WinCC 2018年12月5日
  • WINCC6.0 SP2无法无法运行,停止在激活22%

    大家好: WINCC6.0 SP2无法无法运行,停止在激活22% 这是为什么啊? 计算机名字改了的啊,授权也有,找不到别的原因 最佳答案 工…

    SIMATIC WinCC 2019年6月11日
  • wincc脚本控件的编写

    请问谁有wincc脚本控件编写教程啊,c和vb哪个用的多呢,谢谢了! 最佳答案 c和vb用的都挺多,看你自己熟悉哪个了。教程网上很多的,自己可以搜索下。 提问者对于答案的评价:谢谢…

    SIMATIC WinCC 2019年6月11日
  • wincc 7.0打开画面时出现未知的对象

    从wincc7.0 sp2中制作的项目,使用sp1打开画面编辑器大部分显示未知的对象 最佳答案 1、请见技术论坛中的帖子:http://www.ad.siemens.co…

    SIMATIC WinCC 2019年6月11日
  • WINCC错误17,怎么解决?

    WINCC与S7-300通过适配器通信,激活WINCC项目时出现“MPI”错误,提示信息为:“错误17发生函数chnRegisterVariable中”。请提供解决办法,谢谢! 最…

    SIMATIC WinCC 2019年6月11日
  • wincc调用历史曲线特别慢

    wincc调用历史曲线特别慢,总是读很长时间,要等底下的读取条1、2分钟。如何解决?历史曲线存放在变量中如何拷贝保存?选择删除部分旧曲线如何实现?整个程序文件3.23G是不是有问题…

    SIMATIC WinCC 2019年6月11日
  • smart 700 IE V3 触摸屏与电脑传输问题

    我的笔记本电脑没有插网线的母口口,我买了个转接头。电脑用这个转接口插上网线连接plc通讯没问题,转接头上的信号灯亮,电脑上网络适配器也显示有连接。可是为什么连接触摸屏时转接头上的信…

    SIMATIC WinCC 2021年7月5日
  • wincc弹出模态化窗口

    使用经典wincc制作弹出窗口,这个目前都没问题,目前想要实现弹出的窗口模态化,即鼠标只能操作弹出窗口中的内容,其余地方无法操作,要操作必须关闭该弹出窗口,类似于windows的模…

    SIMATIC WinCC 2020年11月1日