【VBA】VBScriptからVBAのプロシージャを実行する

VBScriptから
 ・VBAのプロシージャを実行
できます!

PR

VBAのコード

ここでは例として、
 ・デスクトップ配下のExcelファイル「sampl_001.xlsm」の
 ・モジュール「testModule」に
 ・Subプロシージャ「sample」
を作成します。

VBAコードを作成するExcelファイル
モジュール「testModule」のSubプロシージャ「sample」
Sub sample()
    'メッセージ出力
    MsgBox ("VBAからのメッセージ出力です!")
End Sub
PR

VBScriptのコード

ここでは例として、
 ・上記で作成したVBAコードを実行
するVBScriptファイルを作成します。

作成するVBScriptファイル
Option Explicit

Dim objExcel

'Excelオブジェクトを取得
Set objExcel = WScript.CreateObject("Excel.Application")

'ExcelファイルをOPEN
objExcel.Workbooks.Open("C:\Users\user\Desktop\sampl_001.xlsm")

'Excelファイルを非表示
objExcel.Visible = False

'「testModule」のSubプロシージャ「sample」を実行
objExcel.Run "testModule.sample"

'Excelを終了
objExcel.Quit

'後片付け
Set objExcel = Nothing

「Excelオブジェクト」の「Workbooks.Open(“Excelファイルのパス“)」により、Excelファイルを開きます(9行目)。

「Excelオブジェクト」の「Run “モジュール名.プロシージャ名“」により、VBAのプロシージャを実行します(15行目)。

※「プロシージャ名」だけでなく、「モジュール名」も記載する必要があります。
※Subプロシージャ/Functionプロシージャのどちらも実行できます。


モジュール名」の記載が無いと以下のエラーが発生します。

エラー内容

マクロ ‘XXX’ を実行できません。このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。

エラーメッセージ

このエラーメッセージからエラー理由を特定するのは難しいです。
エラーが発生しないように「モジュール名」の記載漏れには気を付けましょう。

PR

実行結果

上記で作成したVBScriptファイル「excel_vba実行サンプル.vbs」を実行すると、VBScriptからVBAのプロシージャが実行できたことを確認できます。

実行結果
PR

参考

VBAのプロシージャを実行する以外にも、Excelファイルの各種操作をVBScriptから実行できます。

詳細は公式サイトをご確認ください。

タイトルとURLをコピーしました