VB.NETからEXCELのマクロに対してAUTORUNで実行し、実行後にマクロを
削除もしくは、開放したいのですが教えてください。
サイトで探したら以下のコーディングがあったのですがうまく動きません。
以下のエラーがででしまいました。
System.Runtime.InteropServices.COMException - HRESULT からの例外です : 0x800A03EC。
Sub DeleteMacro(ModuleName As String, MacroName As String)
Set Compo = ThisWorkbook.VBProject.VBComponents.Item(ModuleName)
With Compo.CodeModule
StartLineNo = .ProcStartLine(MacroName, vbext_pk_Proc)
LineCount = .ProcCountLines(MacroName, vbext_pk_Proc)
.DeleteLines StartLineNo, LineCount
End With
'Visual Basic Editor が表示されるので非表示にする場合
'Application.VBE.MainWindow.Visible = False
End Sub
> VB.NETからEXCELのマクロに対してAUTORUNで実行し、実行後にマクロを
> 削除もしくは、開放したいのですが教えてください。
マクロ入りブックに、(AUTORUNで)自身を編集させ、その後、
マクロを取り除いて保存したいという事でしょうか。
もしそうなら、それはマクロ入りブック(編集しない)と、
マクロ無しブック(編集用)の 2 つを用意させた方が良いかと。
> 以下のエラーがででしまいました。
マクロウィルスの登場に伴い、セキュリティの観点から、初期状態では、
VBProject や VBE といったオブジェクトへのアクセスは拒否されるように
なっています。(Office 2000 からだったかな?)
呼び出し側からはどうにもならないので、Office 側のセキュリティ設定で、
「Visual Basic プロジェクトへのアクセスを信頼する」のオプションを
変更してみてください。
ありがとうございます。
ちなみにoffice2003です。
office側の設定を変えてやってみます。
呼び出し側からは、レジストリを操作すればよいのでは?
HKEY_CURRENT_USER\Software\Microsoft\Office\バージョン\Excel\Security\AccessVBOM
ツイート | ![]() |