通过Powershell启用宏

时间:2014-11-13 11:16:38

标签: excel vba powershell

我有一个创建Excel文件的Powershell脚本,并在其中运行一个宏来嵌入一个OLEObject。这将由现场工程师使用,因此将在不同的计算机上使用。要运行脚本,需要将宏设置设置为"启用所有宏..."和"信任对VBA项目对象模型的访问。" 有什么方法可以将其合并到Powershell脚本中吗?理想情况下,最后激活然后停用。 我怀疑这是不能自动化的,需要手动完成才能运行脚本。 任何建议都会非常感激。

2 个答案:

答案 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宏