哪位高人能给段用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日
下一篇 2019年6月11日

相关推荐

  • wincc 画面多重嵌套调用

    我设置了一个主画面,该主画面中有一个菜单栏和一个主画面窗口,主画面中画面窗口中还有一个小的画面窗口通过主画面菜单栏按钮调用各种小画面,请问如何写脚本实现该功能。 图片说明: &nb…

    2021年7月5日
  • winccflexible项目编译后的文件

    winccflexible项目编译后的文件位于什么地方? 钻石用户推荐最佳答案 位于项目文件夹,在菜单栏中可选择项目,另存为,选择一个新的路径,那么编译后的东西都会在此路径下。 提…

    SIMATIC WinCC 2021年7月5日
  • TIA activeX部件不能创建

    请教,TIA V13版本 V13 SP1 Update 9,在wince系统下运行实例提示“activeX部件不能创建”怎么解决。…

    SIMATIC WinCC 2017年6月3日
  • wincc打开时没反应

    以前好好的,后来组态了归档之类的东西,激活时就走一半不走了,再后来,打开wincc时,只有框架,里面的东西(工程,变量,,,,所有的)部显示,而且一直时等待状态。 还有啊…

    SIMATIC WinCC 2019年6月11日
  • Wincc 7.2 C脚本问题

    以前的项目从Wincc 6.2 移植到Wincc7.2  时  C脚本编译错误,该动作没有包含解释代码 ,具体…

    2017年11月12日
  • WinCC历史趋势曲线的制作

    WinCC历史趋势曲线需要怎么制作?能不能直接用控件里面的历史趋势曲线,若是,为什么里面没有变量可供选择? 最佳答案 在视频学习中心里面就有:http://www.ad.sieme…

    SIMATIC WinCC 2017年5月31日
  • wincc怎么实现两个页面不停的反复切换

    我的工程现在1个页面放不下了,需要2个页面来存放画面和数据。因为我需要实时的关注页面中的场景,手动切换太麻烦了,想搞一个自动的2页面来回切换,这样人做椅子上只有看就可以了 钻石用户…

    SIMATIC WinCC 2021年7月5日
  • WINCC设置

    我现在想在计算机开机后自动运行我的WINCC程序,请问刚如何设置??我用VC++做了一个通讯程序,只要WINCC运行他也跟着一起自动运行,请问又该如何设置了???谢谢!!! 最佳答…

    SIMATIC WinCC 2019年6月11日
  • SiWa_WinCC_flexible_SMART_V3SP1安装问题

    本机操作系统为win7旗舰版SP1,安装过程出现问题,详见上传图片。请高手指点!谢谢! 问题补充:问题补充 图片说明:    最佳答案 从图片上看,你是已经安装…

    2021年7月5日
  • 求wincc编程手册

    求wincc编程手册,越全面越好,最好中文版的。 最佳答案 不知道你要博图WINCC还是WINCC V系列,从链接里找吧https://support.industry.…

    2021年7月5日