
どうもマサヤです!
別ブックにマクロをインポートしたいときありますよね。
VBAの書き方とか知ってるからサクッとコードだけ教えてほしい・・・
そんなアナタと私のための記事です。
ついでにフォームのインポートとエクスポートも紹介します!
事前に参照設定が必要です!

「Microsoft Visual Basic for Application Extensibilly 5.3」が必要です。
VBA画面からツール⇒参照設定を開いて「Microsoft Visual Basic for Application Extensibilly 5.3」にチェックを入れてOKを押しましょう。
参照設定しないとコードが正しくても、エラーが発生して実行できません!
コピペで使えるコード
マクロをエクスポートするコード
Sub MacroExport()
'=====================================================================
'Module1をエクスポートするコード
'=====================================================================
'エクスポートするフォルダを設定
output_Path = ActiveWorkbook.Path
Set my_component = ActiveWorkbook.VBProject.VBComponents
my_component("module1").Export output_Path & "\" & "Module1.bas"
End Sub
マクロをインポートするコード
Sub MacroImport() '===================================================================== 'Module1をインポートするコード '===================================================================== 'インポートするファイルを設定 import_Path = ActiveWorkbook.Path & "\" & "Module1.bas" Set my_component = ActiveWorkbook.VBProject.VBComponents ActiveWorkbook.VBProject.VBComponents.Import import_Path End Sub
フォームをエクスポートするコード
Sub FormExport()
'=====================================================================
'UserForm1をエクスポートするコード
'=====================================================================
'エクスポートするフォルダを設定
output_Path = ActiveWorkbook.Path
Set my_component = ActiveWorkbook.VBProject.VBComponents
my_component("UserForm1").Export output_Path & "\" & "UserForm1.frm"
End Sub
フォームをインポートするコード
Sub FormImport() '===================================================================== 'UserForm1をインポートするコード '===================================================================== 'インポートするフォームを設定 import_Path = ActiveWorkbook.Path & "\" & "UserForm1.frm" Set my_component = ActiveWorkbook.VBProject.VBComponents ActiveWorkbook.VBProject.VBComponents.Import import_Path End Sub
違うBookにマクロをコピーするコード
Sub MacroCopy()
'=====================================================================
'Module1をBook2にコピーするコード
'=====================================================================
'マクロを設置するフォルダ場所を指定
macro_Path = ActiveWorkbook.Path & "\" & "Module1.bas"
Set my_component = ActiveWorkbook.VBProject.VBComponents
'ファイルを一旦エクスポート
my_component("module1").Export macro_Path
'エクスポートしたファイルをインポート
Workbooks("Book2.xlsx").VBProject.VBComponents.Import macro_Path
End Sub
「・・・信頼性に欠けます」とエラーが出た場合

↑のような、実行時エラー ’1004’が発生した場合は下記にチェックを入れましょう。
Excelオプション ⇒ セキュリティセンター ⇒ セキュリティセンターの設定 ⇒ マクロの設定 ⇒ 「VBAプロジェクトオブジェクトモデルへのアクセスを信頼する」

コメント