我有一个创建Excel文件的Powershell脚本,并在其中运行一个宏来嵌入一个OLEObject。这将由现场工程师使用,因此将在不同的计算机上使用。要运行脚本,需要将宏设置设置为"启用所有宏..."和"信任对VBA项目对象模型的访问。" 有什么方法可以将其合并到Powershell脚本中吗?理想情况下,最后激活然后停用。 我怀疑这是不能自动化的,需要手动完成才能运行脚本。 任何建议都会非常感激。
答案 0 :(得分:2)
run方法可用于运行宏或函数。
$app = $excel.Application
$app.Run("Macro_1")
$app.Run("Macro_2")
$app.Run("Macro_3")
通过Regedit启用/禁用:
Registry Key to change:
[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Security]
"VBAWarnings"=dword:00000001
Registry Option Values:
•1 = Enable all macros (not recommended; potentially dangerous code can run)
•2 = Disable all macros except digitally signed macros
•3 = Disable all macros with notification
•4 = Disable all macros without notification
答案 1 :(得分:1)
New-ItemProperty -Path Registry::HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Excel\Security -Name "VBAWarnings" -Value "1" -PropertyType DWORD -Force | Out-Null
基于之前的回答,我添加了powershell命令来通过注册表禁用excel宏