Excelスプレッドシートには、そのProject
構造にプログラムでアクセスする必要があります。ただし、このアクセスはデフォルトで無効になっています。このスニペットを使用してレジストリに書き込むことにより、プログラムで有効にすることができます。
Set wsh = CreateObject("WScript.Shell")
'key to modify'
str1 = "HKEY_LOCAL_MACHINE\Software\Microsoft\Office\" & Application.Version & "\Word\Security\AccessVBOM"
'enable access'
wsh.RegWrite str1, 1, "REG_DWORD"
'read the vba project name'
MsgBox Application.NormalTemplate.VBProject.Name
'disable access'
wsh.RegDelete str1
プログラムで実行(およびリセット)することはできますが、これによりセキュリティ上の問題が発生する可能性があります。
私のプロジェクトでは、構造を変更しようとしますが、変更Project
できない場合はエラーをスローします。エラーをキャッチできます。この時点で、スニペットを実行してアクセスを有効にするか、エラーメッセージをユーザーに表示して手動でアクセスを有効にすることができます。プログラムを介してアクセスを有効にし、後で無効にできるようにするか、ユーザーにそうするように指示する方がよいでしょうか。