从桌面运行宏,隐藏&系统影响最小

时间:2017-05-16 09:55:54

标签: excel windows vba excel-vba

最近我的工作中的IT政策发生了变化,我使用的所有脚本(.bat .cmd .py)都不再有效。在可能的情况下,我已将这些转换为在工作簿中运行的VBA宏 - 因为它们仍然启用。

这里有两个宏来安排强制关闭/取消它(分别)

Private Sub Workbook_Open()
Application.Visible = False
Shell "SHUTDOWN /s /f" '/Scheduled shut down, /Forced (ignores any unsaved)
End Sub

并在第二本工作簿中

Private Sub Workbook_Open()
Application.Visible = False
Shell "shutdown /a" '/Abort scheduled shutdown
Application.Quit
End Sub

正如您所看到的那些宏在Workbook_Open()个事件上运行,Application.Visible = False。目的是使用桌面快捷方式尽可能快速地打开这些工作簿。

问题&溶液

  • 速度慢 - 我曾经将其作为批处理脚本运行,现在Excel必须打开才能运行它
    • 我已经将它设为.xlsb以缩短开放时间,是否有更快的方法?
    • 询问如何加速我的工作簿,我的意思是有不同的方法来保存文件(也许是一个插件?),可以在没有Excel打开的情况下运行?< / LI>
    • 我也只选择在关闭中止时关闭Excel,而不是在安排时关闭Excel,就像Excel已经打开一样,然后取消宏打开得更快(如果我不小心安排关机,这是必不可少的)
  • 跑步不是看不见的;虽然从未显示工作簿本身,但Excel启动图像显示为

    • 我尝试将切换添加到快捷方式目标(/e,以防止标准模板加载/r以便只读它,但希望它不会显示工作表) - 但他们没有&#39 ;工作
    • "C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE" /r /e "C:\Users\USERNAME\Documents\start.xlsb"
  • Application来电是Excel范围内的。有时,我会在之前安排关机我已经保存了所有内容。 (我知道我需要几秒钟才能保存,所以我先安排停机)

    • 当我将这些脚本作为.bat / .cmd脚本运行时,这很好,但如果我运行这些并且Excel已打开,那么一切都会关闭(或变得不可见 - 尽管我无法检查哪一个),当我还在做某事时,这并不理想。
    • 我可以确定这些只隐藏自己吗?打开另一个Excel实例会有帮助吗?

TL; DR

  • 我已将Workbook_Open()个事件中的宏保存为.xlsb个工作簿,这些事件来自桌面快捷方式
  • 我怎样才能改进这一点
    • 隐藏进程
    • 加快流程
    • 防止进程搞砸Excel的其余部分
  • 通过
    • 桌面快捷方式中的标志
    • 对宏代码的更改
    • 更改宏的保存方式
    • 没有只是在阻止时转换为脚本

注意,我会用VBS来完全规避Excel,但也会被阻止

1 个答案:

答案 0 :(得分:0)

Fastest是一个带有shutdown命令的桌面快捷方式,即%WINDIR%\system32\shutdown.exe /s /f