01-VBA

VBScriptを利用したファイルの複製(Part.3)

目標

「Excel VBA ユーザーフォーム」記事で作成したシステムをVBScriptを利用して複製する

この記事ではVBScriptを利用して原本ファイルの複製を行います。複製後のファイルのタイトルは作成月の翌月を指定します。この「VBScript」「タスクスケジューラ」を利用して毎月1日に原本ファイルのコピーを当月ファイルとして自動生成させるといった処理を行わせることができす。

VBScriptプログラムの利用前の準備

「VBScriptプログラムの利用前の準備」は次の記事の内容と同様の作業が続きます。既に設定済みの場合は「VBScriptの記述」部分まで記事をスクロールして飛ばしてください。

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

VBScriptプログラムの利用前の準備

VBScriptのプログラムを利用するにあたり今回は次の2つのフォルダを準備します。
①VBScriptのファイルを設置しておくフォルダ(「ORIGINALFILE」)です。
②VBScriptがプログラム内で利用するフォルダ(「WORKSPACE」)です。
以下の手順で環境を整えます。

  1. デスクトップに「WORKSPACE」フォルダを作成する。
  2. デスクトップに「ORIGINALFILE」フォルダを作成する。
  3. 「ORIGINALFILE」フォルダにNewFile.vbsを置く
  4. 「ORIGINALFILE」フォルダにsamlpe.xlsmを置く

記事では複製するファイルにマクロファイルを使用していますが、普通のエクセルファイルやテキストファイルであっても構いません。その場合はプログラム内の拡張子の変更も必要になりますので注意してください。

「WORKSPACE」フォルダの作成

デスクトップ上に「WORKSPACE」フォルダを作成します。

デスクトップ上の任意の箇所で右クリックして「新規作成」から「フォルダー」をクリックします。

フォルダ名を「新しいフォルダー」から「WORKSPACE」に変更します。

これでWORKSPACEフォルダの準備は終わりです。

「ORIGINALFILE」フォルダの作成

「WORKSPACE」フォルダと同様の手順で「ORIGINALFILE」フォルダを準備します。

「NewFile.vbs」の作成

「ORIGINALFILE」フォルダをダブルクリックしてフォルダを開きます。

「ORIGINALFILE」フォルダ内で新規ファイルを作成します。

エクスプローラー内の左上にある「新規作成」をクリックして展開されたメニューから「テキスト ドキュメント」をクリックします。

「新規 テキスト ドキュメント.txt」のファイルが作成されます。ファイルの名前を「新規 テキスト ドキュメント.txt」から「NewFile.vbs」へ変更します。

名前変更時に注意を促すダイアログボックスが出てくるので「はい(Y)」をクリックします。

ファイル名が変更されてアイコンの見た目も変わります。

Windows10でのVBScriptのファイルの作成方法については次の記事を参考にしてください。

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

VBScriptプログラムの記述

ここからの内容はVBA記事専用の記事となっています。

「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などがあればファイルはそちらで開くのがお勧めです。

Visual Studio Codeで開いた場合の見た目です。

「NewFile.vbs」ファイルを閉じます。これで「NewFile.vbs」の準備は終わりです。

「VBA_System.xlsm」の移動

「ORIGINALFILE」フォルダ内にVBA ユーザーフォームの記事で作成した「VBA_System.xlsm」ファイルを移動(コピーでも可)してきます。

「VBA_System.xlsm」はVBAのユーザーフォーム記事(Part.1)で作成させて頂きました。

https://howahowablog.com/excel-vba-userform1/

「VBA_System.xlsm」ファイルを「ORIGINALFILE」に移動すると次のようになります。(sample.xlsmは前々回の記事で作成したものでこの記事では使用しません。削除しても構いません。)

これで準備は完了です。

VBScriptプログラムの利用

NewFile.vbsを動かしてみる

「NewFile.vbs」をダブルクリックします。見た目には何も変化はありませんが、「WORKSPACE」フォルダを確認してみるとVBA_System.xlsmのコピーが「西暦+月」のタイトル名で作成されています。

前々回の記事で複製したファイルが残っていると「VBA_System.xlsm」の複製が行われません。「WORKSPACE」内にある複製されたファイルを開いて中身が違う場合は削除をして再度VBScriptのファイルを動かしてみてください。

今回は「NewFile.vbs」をダブルクリックして実行を行いましたがタスクスケジューラなどを利用すると定期に稼働してくれる自動化ツールとして利用できます。タスクスケジューラの利用方法は次の記事を参考にしてください。

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

記事は以上です。次回はVBAのプロシージャをVBScriptから呼び出して原本のファイルを更新する記事となっています。

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

ブックマークのすすめ

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

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