目標
「Excel VBA ユーザーフォーム」記事で作成したシステムをVBScriptを利用して複製する
この記事ではVBScriptを利用して原本ファイルの複製を行います。複製後のファイルのタイトルは作成月の翌月を指定します。この「VBScript」と「タスクスケジューラ」を利用して毎月1日に原本ファイルのコピーを当月ファイルとして自動生成させるといった処理を行わせることができす。
VBScriptプログラムの利用前の準備
VBScriptプログラムの利用前の準備
VBScriptのプログラムを利用するにあたり今回は次の2つのフォルダを準備します。
①VBScriptのファイルを設置しておくフォルダ(「ORIGINALFILE」)です。
②VBScriptがプログラム内で利用するフォルダ(「WORKSPACE」)です。
以下の手順で環境を整えます。
- デスクトップに「WORKSPACE」フォルダを作成する。
- デスクトップに「ORIGINALFILE」フォルダを作成する。
- 「ORIGINALFILE」フォルダにNewFile.vbsを置く
- 「ORIGINALFILE」フォルダにsamlpe.xlsmを置く
記事では複製するファイルにマクロファイルを使用していますが、普通のエクセルファイルやテキストファイルであっても構いません。その場合はプログラム内の拡張子の変更も必要になりますので注意してください。
「WORKSPACE」フォルダの作成
デスクトップ上に「WORKSPACE」フォルダを作成します。
デスクトップ上の任意の箇所で右クリックして「新規作成」から「フォルダー」をクリックします。
フォルダ名を「新しいフォルダー」から「WORKSPACE」に変更します。
これでWORKSPACEフォルダの準備は終わりです。
「ORIGINALFILE」フォルダの作成
「WORKSPACE」フォルダと同様の手順で「ORIGINALFILE」フォルダを準備します。
「NewFile.vbs」の作成
「ORIGINALFILE」フォルダをダブルクリックしてフォルダを開きます。
「ORIGINALFILE」フォルダ内で新規ファイルを作成します。
エクスプローラー内の左上にある「新規作成」をクリックして展開されたメニューから「テキスト ドキュメント」をクリックします。
「新規 テキスト ドキュメント.txt」のファイルが作成されます。ファイルの名前を「新規 テキスト ドキュメント.txt」から「NewFile.vbs」へ変更します。
名前変更時に注意を促すダイアログボックスが出てくるので「はい(Y)」をクリックします。
ファイル名が変更されてアイコンの見た目も変わります。
Windows10でのVBScriptのファイルの作成方法については次の記事を参考にしてください。
VBScriptプログラムの記述
「NewFile.vbs」ファイルを右クリックして「プログラムから開く」を選択し「メモ帳」もしくは「Visual Studio Code 等の開発用エディタ」をクリックします。今回はメモ帳を使用しています。
メモ帳を選択するとメモ帳が表示されます。
ファイルの中に次のプログラムを記述します。
Option Explicit
Dim objFSO, FileTitle
Set objFSO = CreateObject( "Scripting.FileSystemObject" )
'-------- 日付を取得--------
FileTitle = Date
FileTitle = mid(FileTitle,1,4) & mid(FileTitle,6,2)
'------- 原本から新規のファイルを作成 --------
If (objFSO.FileExists("..\WORKSPACE\" & FileTitle & ".xlsm") = False) Then
objFSO.CopyFile ".\VBA_System.xlsm" , "..\WORKSPACE\" & FileTitle & ".xlsm"
End If
Set objFSO = Nothing
メモ帳で記述すると次のようになります。
記述したら「Ctrl + S」で保存します。(もしくはファイルタブから保存)
※Visual Studio Codeなどがあればファイルはそちらで開くのがお勧めです。
「NewFile.vbs」ファイルを閉じます。これで「NewFile.vbs」の準備は終わりです。
「VBA_System.xlsm」の移動
「ORIGINALFILE」フォルダ内にVBA ユーザーフォームの記事で作成した「VBA_System.xlsm」ファイルを移動(コピーでも可)してきます。
https://howahowablog.com/excel-vba-userform1/「VBA_System.xlsm」ファイルを「ORIGINALFILE」に移動すると次のようになります。(sample.xlsmは前々回の記事で作成したものでこの記事では使用しません。削除しても構いません。)
これで準備は完了です。
VBScriptプログラムの利用
NewFile.vbsを動かしてみる
「NewFile.vbs」をダブルクリックします。見た目には何も変化はありませんが、「WORKSPACE」フォルダを確認してみるとVBA_System.xlsmのコピーが「西暦+月」のタイトル名で作成されています。
今回は「NewFile.vbs」をダブルクリックして実行を行いましたがタスクスケジューラなどを利用すると定期に稼働してくれる自動化ツールとして利用できます。タスクスケジューラの利用方法は次の記事を参考にしてください。
記事は以上です。次回はVBAのプロシージャをVBScriptから呼び出して原本のファイルを更新する記事となっています。
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。