通过开启“信任对vba工程对象模型的访问”,可以实现对vba工程对象模型的编程访问,从而实现操作vba代码、vba工程对象等。
“信任对vba工程对象模型的访问”的开启或者关闭是存储在注册表键值中的,不同的office 版本对应的键值是不同的。
在excel 14.0、15.0版本中,“信任对vba工程对象模型的访问”对应的键值是
HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\Security\AccessVBOM
它的数据如果是0,表示关闭,如果是1,表示开启。
基于以上的认识,再结合注册表键值修改的相关文章,可以使用以下的vba代码开启“信任对vba工程对象模型的访问”:
Sub QQ1722187970()
Dim oWShell
Set oWShell = CreateObject("WScript.Shell")
Dim sValue As String
Dim sKey As String
Dim sVersion As String
sVersion = Excel.Application.Version
'键的名称
sKey = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & sVersion & "\Excel\Security\"
'信任对vba工程对象模型的访问
sValue = "AccessVBOM"
With oWShell
'关闭对vba工程对象模型的访问
.RegWrite sKey & "\" & sValue, 0, "REG_DWORD"
'开启对vba工程对象模型的访问
.RegWrite sKey & "\" & sValue, 1, "REG_DWORD"
End With
End Sub


发表评论