哪位高人能给段用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

相关推荐

  • WINCC与S7-200通讯异常

    WINCC与S7-200走PC ACCESS  DP通讯,分两条线路,一条线路挂了5个站点正常,另外一条线路也挂了5个站点通讯不正常,反复地通一下断一…

    SIMATIC WinCC 2021年7月5日
  • 高级语言怎么访问wincc存档数据库,有没有规则?

    1,高级语言怎么访问wincc存档数据库,有没有规则?2,wincc数据库的账号密码、数据库名是什么,在哪里查看?3,有没有高级语言怎么访问wincc存档数据库的案例,发下给我,谢…

    SIMATIC WinCC 2021年7月5日
  • wincc中的外部变量num怎么读取DB2.DBD0的数据?

    incc中的外部变量num怎么读取DB2.DBD0的数据?我将外部变量NUM的数据类型设置为浮点数32位,地址:DB2.DD0,调整格式:FLOATtoFLOAT,在WINCC界面…

    SIMATIC WinCC 2019年6月11日
  • OPC 客户端的问题

    请问工控软件可不可以做opc的服务器 例如wincc 力控 亚控的组态软件。opc的客户端咋编程,客户想通过opc把数据读到监控中心 请问监…

    SIMATIC WinCC 2021年7月5日
  • 请问,新手应该从何入手学习WINCC比较好?

    我是一名新手,想请教如何入门学习WINCC?主要是应从哪里入手才不会走弯路? 最佳答案 先看看入门级的文档与教材:、《深入浅出西门子WinCC V6视频教程(下载)》下载…

    SIMATIC WinCC 2019年6月11日
  • MS ACCESS数据库与wincc连接使用的问题?

    现在准备做一个报表系统,将一些数据保存下来,数据量不多,打算使用MS ACCESS数据库与wincc一起连接使用,想请教一下如何做,要保存的数据不是定时采集,是一些称重好…

    SIMATIC WinCC 2017年11月6日
  • 偶尔出现WINCC激活停止现象

    有时候激活WINCC出现激活到57%就停止了,WINCC报错如图,请高手们指点一下(电脑配置没问题) 图片说明:    最佳答案 1.项目路径中不能有中文字符2…

    2019年6月11日
  • 动画制作

    如何制作管道内液体的流动效果?如何制作电机,或者泵的旋转效果? 最佳答案 流动效果方法 一、直接调用液体流动控件,效果很好,控件网上可以搜到,  &n…

    SIMATIC WinCC 2019年6月11日
  • 如何用horn实现声音报警

    如何用horn实现现场变量的声音报警,初学者,希望配有操作图片,详细一些 最佳答案 参考这个学习视频吧,WinCC跟我做:WinCC实现声音报警的方法http://www.ad.s…

    SIMATIC WinCC 2017年6月9日
  • wincc画面弹出

    总提示画面中错误,然后提示的画面名已经不存在与画面编辑器中了,这是为什么? 最佳答案 在WINCC项目文件下,GraCS文件夹下,有一个“Convert.log”的文件,右键选择打…

    SIMATIC WinCC 2021年7月5日