目標
VBScriptからVBAのプロシージャを呼び出すプログラムの内容を理解できる
VBScriptプログラムの内容
VBScriptプログラムの内容
「callVBA.vbs」に記述したスクリプトを再掲載しています。
Option Explicit
Dim objExcel, objOpenExcel, objFSO, FileTitle
Set objExcel = CreateObject( "Excel.Application" )
Set objFSO = CreateObject( "Scripting.FileSystemObject" )
'-------- 日付を取得--------
FileTitle = Date
FileTitle = mid(FileTitle,1,4) & mid(FileTitle,6,2)
'------- 最新ファイルから新しい原本を作成 --------
objFSO.CopyFile "..\WORKSPACE\" & FileTitle - 1 & ".xlsm", ".\VBA_System.xlsm"
objExcel.Application.Visible = true
Set objOpenExcel = objExcel.Workbooks.Open("C:\Users\appsg\Desktop\ORIGINALFILE\VBA_System.xlsm")
objOpenExcel.Application.Run "Module2.dataClear"
objOpenExcel.Save
objOpenExcel.Close
objExcel.Quit
'------- 原本から新規のファイルを作成 --------
If (objFSO.FileExists("..\WORKSPACE\" & FileTitle & ".xlsm") = False) Then
objFSO.CopyFile ".\VBA_System.xlsm" , "..\WORKSPACE\" & FileTitle & ".xlsm"
End If
Set objFSO = Nothing
Set objOpenExcel = Nothing
Set objExcel = Nothing
プログラムの内容については追加部分のみ解説しています。追加以前の内容についてはこちらを参考にしてください。
-320x180.jpg)
-4-1024x576.jpg)
VBScriptプログラム(callVBS.vbs)の内容
Set objExcel = CreateObject( “Excel.Application” )
Excel.Application
引数の「Excel.Application」はExcelアプリケーションのことを指します。ExcelアプリケーションにはExcelへの操作や設定を行える機能が含まれています。
ExcelアプリケーションをVBSから利用する場合はExcelアプリケーションのオブジェクトをCreateObject(“引数”)で複製して利用します。
objExcel.Application.Visible = true
Excelオブジェクト.Application.Visibleについてはこちらを参考にしてください。
-2-320x180.jpg)
Set objOpenExcel = objExcel.Workbooks.Open(“パス”)
Excelオブジェクト.Workbooks.Open(“パス”)についてはこちらを参考にしてください。
-2-320x180.jpg)
objOpenExcel.Application.Run “Module2.dataClear”
Excelオブジェクト.Application.Run “プロシージャ名”で指定したオブジェクトのプロシージャを呼び出すことが出来ます。今回は「VBA_System.xlsm」内の標準モジュールに作成した「dataClear」プロシージャを呼び出しています。
objOpenExcel.Save
編集をしたエクセルファイルを上書き保存します。この操作の前に「Closeメソッド」や「Quitメソッド」を利用してエクセルファイルを閉じると「上書をしますか?」と確認のダイアログボックスが表示されます。
VBSでエクセルファイルを閉じるときはどの部分まで自動化するかを確認してプログラムを作成します。今回は上書き保存をして閉じるところまでをVBSに任せています。
objOpenExcel.Close
エクセルファイルを閉じます。
objExcel.Quit
Excelアプリケーションを終了します。開いている全てのブックが終了の対象となります。
Set オブジェクト = Nothing
「Set オブジェクト = Nothing」についてはこちらを参考にしてください。
-2-320x180.jpg)
今回は以上となります。ここまででVBAシステムの作成は終了になります。

ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

