VBAから
・他のブックのマクロ(VBA)を実行
できます!
VBAコード(呼び出される用のマクロ)
呼び出される用のマクロ(VBA)を作成します。
ここでは例として、
・デスクトップ配下のExcelファイル「sampl_001.xlsm」に
・プロシージャ「sample」を作成
します。
Sub sample()
'メッセージ出力
MsgBox ("sampl_001.xlsmのマクロを実行しました!")
End Sub
VBAコード(呼び出す用のマクロ)
呼び出す用のマクロ(VBA)を作成します。
ここでは例として、
・Excelファイル「Call_Excel_Macro.xlsm」に
・上記で作成したマクロを実行するプロシージャ「callExcelMacro」を作成
します。
Option Explicit
Sub callExcelMacro()
Dim excelFileFullPath As String
Dim macroName As String
Dim wk As Workbook
'「呼び出される用のExcelファイル」のフルパスを指定
excelFileFullPath = "C:\Users\user\Desktop\sampl_001.xlsm"
'「呼び出される用のマクロ名(プロシージャ名)」を指定
macroName = "sample"
'「呼び出される用のExcelファイル」を以下で開く
'┗「リンクの更新する/しない」のメッセージを非表示
'┗「読み取り専用を推奨する/しない」のメッセージを非表示
'┗「読み取り専用」で開く
Set wk = Workbooks.Open(Filename:=excelFileFullPath, UpdateLinks:=0, IgnoreReadOnlyRecommended:=True, ReadOnly:=True)
'「呼び出される用のマクロ(プロシージャ)」を実行
Run "'" & excelFileFullPath & "'!'" & macroName & "'"
'Excelファイルを保存せずに閉じる
wk.Close SaveChanges:=False
End Sub
実行結果
他のブックのマクロ(VBA)を実行できました。
※「呼び出す用のExcelファイルのマクロ(VBA)」から、「呼び出される用のExcelファイルのマクロ(VBA)」を実行できました。
参考①
バッチファイルからブックのマクロ(VBA)を実行することもできます。
詳細は以下の以下の記事をご確認ください。
参考②
VBScriptからブックのマクロ(VBA)を実行することもできます。
詳細は以下の以下の記事をご確認ください。
参考③
Power Shellからブックのマクロ(VBA)を実行することもできます。
詳細は以下の以下の記事をご確認ください。
参考④
タスクスケジューラからマクロ(VBA)を自動実行することもできます。
詳細は以下の以下の記事をご確認ください。
参考⑤
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●「Applicationオブジェクト」の「Run」メソッド
●「Workbooksオブジェクト」の「Open」メソッド