01-VBA

VBScriptを利用したVBAプロシージャの呼び出し(Part.2)

目標

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

プログラムの内容については追加部分のみ解説しています。追加以前の内容についてはこちらを参考にしてください。

VBScriptを利用したファイルの複製(Windows11)(Part.2)VBScriptを利用したファイルコピーについて記事にしています。タスクスケジューラなどを利用すると定期的なファイル生成を自動化できます。この記事はWindows11用で作成しています。...

VBScriptプログラム(callVBS.vbs)の内容

Set objExcel = CreateObject( “Excel.Application” )

Excel.Application

引数の「Excel.Application」はExcelアプリケーションのことを指します。ExcelアプリケーションにはExcelへの操作や設定を行える機能が含まれています。

ExcelアプリケーションをVBSから利用する場合はExcelアプリケーションのオブジェクトをCreateObject(“引数”)で複製して利用します。

Excelを起動しているときにVBAでApplicationオブジェクトを利用する場合は「Excel.」の部分は付けません。理由は使用しているオブジェクトがExcelなのでつける必要がなくなるといった理由です。

Wordアプリケーションを利用する場合は「Word.Application」とします。

objExcel.Application.Visible = true

Excelオブジェクト.Application.Visibleについてはこちらを参考にしてください。

VBScript、Windows10のエクスプローラーの学習とタスクスケジューラを使った自動化ツールの作成(2)VBScript、Windowsのエクスプローラーの学習とタスクスケジューラを使った自動化ツールの作成の記事です。...

Set objOpenExcel = objExcel.Workbooks.Open(“パス”)

Excelオブジェクト.Workbooks.Open(“パス”)についてはこちらを参考にしてください。

VBScript、Windows10のエクスプローラーの学習とタスクスケジューラを使った自動化ツールの作成(2)VBScript、Windowsのエクスプローラーの学習とタスクスケジューラを使った自動化ツールの作成の記事です。...

ここでは「objOpenExcel」に「VBA_System.xlsm」を登録しています。これを利用して「VBA_System.xlsm」のプロシージャを呼び出すようにしています。

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」についてはこちらを参考にしてください。

VBScript、Windows10のエクスプローラーの学習とタスクスケジューラを使った自動化ツールの作成(2)VBScript、Windowsのエクスプローラーの学習とタスクスケジューラを使った自動化ツールの作成の記事です。...

今回は以上となります。ここまででVBAシステムの作成は終了になります。

初心者も実践で通用!「VBA・VBS」おすすめ書籍5選 | 現役エンジニア&プログラミングスクール講師「VBA・VBS」初心者の方が実践業務の中でそれらを活用しt活躍できるために必要な知識を習得できる書籍を紹介しています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

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

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST