如何用vba开启“信任对vba工程对象模型的访问”?

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

 

 

 

 

       

发表评论