どうもマサヤです!
別ブックにマクロをインポートしたいときありますよね。
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プロジェクトオブジェクトモデルへのアクセスを信頼する」
コメント