ファイルに保存されたマクロを動的にロードする方法(Excel VBA)
以下のコードでファイルに保存されたマクロを動的にロード出来ます。 ちょっとめんどくさいのは、デフォルト設定のExcelでは「プログラミングによる Visual Basic プロジェクトへのアクセスは信頼性に欠けます」の実行時エラーになってしまい、実行できません。 なので、「マクロの設定」の「VBA プロジェクトオブジェクトモデルへのアクセスを信頼する」をチェックしないといけません。

ThisWorkbookシート
Option Explicit
' ---------------------------------------------
' ファイルに保存されたマクロを動的にロードする。
' ---------------------------------------------
Private Sub Workbook_Open()
Call ClearModules
Call ImportModule(ThisWorkbook.Path & "\ModMain.bas")
End Sub
Private Sub Workbook_Close()
Call ClearModules
End Sub
Private Sub ImportModule(ByVal strFilePath As String)
Dim objFS As Object
Set objFS = CreateObject("Scripting.FileSystemObject")
If objFS.FileExists(strFilePath) Then
ThisWorkbook.VBProject.VBComponents.Import strFilePath
Else
Call MsgBox("モジュールが存在しません。" & vbCrLf & strFilePath)
End If
Set objFS = Nothing
End Sub
Private Sub ClearModules()
Dim varComponent As Variant
For Each varComponent In ThisWorkbook.VBProject.VBComponents
If varComponent.Type = 1 Then
ThisWorkbook.VBProject.VBComponents.Remove varComponent
End If
Next
End Sub
' 【Excel】実行エラー「プログラミングによる Visual Basic プロジェクトへのアクセスは信頼性に欠けます」の対策
' http://saku-saku-pc.com/excel/プログラミングによるアクセス/