複数フォルダにあるVBSファイルを起動させる方法

複数のフォルダにあるVBSデータを起動させてみました。

下記図のように仕事で複数のフォルダにあるたくさんのExcelファイルをそれぞれ取りまとめる必要があったので、今回の方法を取ってみました。

だいぶ仕事が楽になりましたが、すべてを解説すると少し複雑です。

なので、分かりやすくするために簡単なコードで紹介します。

今後、この記事が読まれるようでしたら、詳しくExcelのVBAなども含めて解説していきます。

この記事が参考になる方

  • 複数のフォルダにあるたくさんのExcelファイルをそれぞれのフォルダ別に1つのExcelファイルに取りまとめたい方
  • 複数のフォルダにあるバッチファイルを起動させたい方
  • 複数のフォルダにあるvbsファイルを起動させたい方

このコードの内容

下記の図のように複数のフォルダーにVBSデータとバッチデータがあります。

各フォルダにあるVBSファイルをバッチファイルで起動させます。

VBSデータを起動させる際、いちいちフォルダを開くことがめんどくさいですよね。このため、フォルダ外にあるバッチファイルを起動させることで連動的にフォルダ内のバッチファイルを起動させます。

各コードの解説

hello.vbsの解説

VBSデータの「hello.vbs」をクリックすると、このように「Hello!」と表示されます

コードは下記のとおり。

WScript.Echo “Hello!”

私流にフリガナをふると、「WScriptを使って、Hello1を表示させる」となります。

VBSkidou.bat(バッチファイル)の解説

バッチファイルをクリックすると、下記のとおりコマンドスクリプトでVBSをが起動します。

バッチファイルのコードは下記のとおりです。

@echo off

cscript %~dp0hello.vbs

pause

まず@echo offは「表示しない」という意味です。

cscriptはvbsファイルを起動させるコードです。使い方は今後記事にしますので参考に。

%~dp0はファイルの保存場所を示すコードです。

cscriptのコードは

cscript [ファイルの保存場所のVBSデータ]

で起動するので、VBSファイルの保存場所を示す必要があります。

%~dp0も詳しい解説は今後作ったら、リンクを貼り付けます

今回は各フォルダにあるVBSデータを起動させる必要があるので、それぞれのフォルダ場所を自動取得する%~dp0を使用します。

pauseはバッチファイルの処理を一時停止するという意味です。

各フォルダ内のbatを起動.bat(バッチファイル)の解説

各フォルダ内のbatを起動.batをクリックすると下記のようになります。

フォルダ内のbatが起動し、それぞれのvbsデータを起動します。

コードは下記のとおり。

for /f %%i in (‘dir /b /s VBSkidou.bat’) do call %%i

まずforコードですが、これは繰り返し作業を行うという意味です。

詳しくは今後記事にします

/fはforコマンドのオプションです。

1行ずつ読み取って、作業を行うということです。

%%iは変数でin以下の()内の内容を変数に入れます。

今回のコードではdirコードの内容が組み入れらてます。

dirについては以下の記事を参考にしてください。

doはあとの文章でforコマンドを実施します。

callはバッチファイルを起動させるコードです。

このコードの内容を下記のとおり私流にフリガナを振り、和訳してみました。

for▶繰り返せ。

/f▶1行ずつ。

%%i in(dir /s /b VBSkidou.bat)▶変数iに各フォルダにあるVBSデータを入れる。

まとめ

今回使用したコードをまとめます。

①フォルダ内にあるバッチファイルを起動させるデータ

for /f %%i in (‘dir /b /s VBSkidou.bat’) do call %%i

②VBSコードを起動させるバッチファイル

@echo off

cscript %~dp0hello.vbs

pause

③VBSデータのコード:Hello!を表示する。

WScript.Echo “Hello!”

①のバッチコードを起動させれば、

①▶②▶③の順番で起動します。

このコードを応用することで、各フォルダにあるExcelファイルのVBAを起動させることもできます。

この記事が参考になる方が多ければ、Excelの応用の記事も書いていきます。

コメント

タイトルとURLをコピーしました