VBAでのコマンドライン引数の取得
しかし、VBSをかますことにより、あたかも、コマンドラインからの引数を渡すことができます。
以下がサンプルです。
要は、VBSでEXCELのシートのセルに引数の値を書き込み、それをVBAで取得するわけです。
かましたVBSのスクリプト
Dim my_name Dim my_para Dim xlsApp Dim bokWork 'コマンドラインの引数の個数チェック If WScript.Arguments.Count <> 2 Then WScript.Quit 'ブック名(.xls)取得(コマンドライン第1引数) my_name = WScript.Arguments(0) 'コマンドラインの引数を取得(コマンドライン第2引数) my_para = WScript.Arguments(1) Set xlsApp = WScript.CreateObject("Excel.Application") xlsApp.Visible = True Set bokWork = xlsApp.Workbooks.Open(my_name) bokWork.Worksheets(1).Cells(1, 1).Value = my_para xlsApp.Run "GetHikisuu" Set bokWork = Nothing Set xlsApp = Nothing WScript.Quit
引数を受け取る側のVBA
'my_nameで指定するxlsファイルの標準モジュール Sub GetHikisuu() MsgBox Worksheets(1).Cells(1, 1).Value End Sub
コマンドプロンプトからの引数を指定しての起動
'コマンドラインから引数を指定して実行 WScript.exe GetPara.vbs "C:\Test01.xls" "abc"
尚、本サンプルは、http://www.vbasekai.com/vbscript.html#vbs0004を大変参考にさせて頂きました。