通过开启“信任对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
发表评论