個人用マクロブックに保存している各種モジュールをエクスポートして、別の端末とも共有したいなと思ったので書いてみた。
コードを動かすときのポイント
1.「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」へのチェックが必要
ON/OFFするマクロを書いてみました☟
2.VBEditorの参照設定に「Microsoft Visual Basic for Applications Extensibility」の追加が必要
コレっすね☟
さて、コードです
Option Explicit Sub export_modules() Const EXPORT_FILENAME As String = "PERSONAL.XLSB" Const EXPORT_DIR As String = "D:\excel_modules" Dim tmpWorkBook As Workbook Dim personalExlBook As Workbook Dim tmpComponent As VBComponent Dim tmpPath As String ' Export対象は"PERSONAL.XLSB"だけにする For Each tmpWorkBook In Workbooks If tmpWorkBook.Name = EXPORT_FILENAME Then Set personalExlBook = tmpWorkBook Exit For End If Next For Each tmpComponent In personalExlBook.VBProject.VBComponents If tmpComponent.Type = 1 Then ' 標準モジュール tmpPath = EXPORT_DIR & "\" & tmpComponent.Name & ".bas" ElseIf tmpComponent.Type = 2 Then ' クラスモジュール tmpPath = EXPORT_DIR & "\" & tmpComponent.Name & ".cls" ElseIf tmpComponent.Type = 3 Then ' ユーザーフォーム tmpPath = EXPORT_DIR & "\" & tmpComponent.Name & ".frm" End If tmpComponent.Export (tmpPath) Debug.Print tmpPath Next Set personalExlBook = Nothing End Sub
インポート編はまた後日...