検索

キーワード


【Excel VBA】バッチファイルの作成および実行をする方法

  • 公開日:2021-03-03 17:25:40
  • 最終更新日:2021-03-02 11:17:11

はじめに

こんにちは、IMMRです。


サーバーからデータを取得したり、データを送信する時にFTP送信を行うと思います。

ですが、毎回データの確認し、データ名を入力しながらバッチファイルを作成して、

手動によって作成したバッチファイルを実行では手間がかかりますよね。


頻繁に行う作業でしたらVBAを使用して、バッチファイルを作成・実行をしたほうが効率が良くなります。


その方法について説明します。


1.バッチファイルの作成および実行について

バッチファイルの作成および実行する方法は、そのままですが以下の2つの手順です。


バッチファイルの作成

バッチファイルの実行

になります。


バッチファイルを作成


バッチファイルを実行するならまずは、バッチファイルを作成する必要があります。

作成する方法はtextファイルと同じ方法です。


Open (バッチファイルの名前) For Output As #1


Close #1


Open (バッチファイルの名前) For Output As #1

 ・Outputモードで開きます。

 ・txtの出力方法と同じですが、バッチファイルなので拡張子は、batです。  例:C:\VBA\BATact.bat


中身を記載する際は、下記を使用します。

 ・Print #1,の後に "記載したい行" を記述します。 例:Print #1, "echo good morning"

 ※ここでいう#1は、Open時に設定した#1となります。


Close #1

 ・ファイルをクローズします。

 ※ここでいう#1は、Open時に設定した#1となります。


②バッチファイルの実行

バッチファイルを実行します。

使用するのはShell関数です。


Shell アプリケーション, vbNormalFocus


アプリケーションと書いてありますが。これは、バッチに限らないからです。

 他のアプリケーションもこの関数を使用して実行出来ます。


vbNormalFocusは、アプリケーションがフォーカスを持ち、ウィンドウが元のサイズと位置に復元されることを意味します。



2.バッチファイルの作成および実行をするサンプルコード

では、実際にバッチファイルの作成および実行をして行きます。

上記であげた「①バッチファイルを作成」「②バッチファイルの実行」よりサンプルコードを作成していきます。


サンプルコード

Sub test21()

    Open "C:\VBA\BATファイル\BATFILE.BAT" For Output As #1
         Print #1, "echo Good morning"
         Print #1, "echo Good afternoon"
         Print #1, "echo Good evening"
         Print #1, "pause"
    Close #1

    Shell "C:\VBA\BATファイル\BATFILE.BAT", vbNormalFocus

End Sub


・バッチファイルのファイル名および格納場所は、「C:\VBA\BATファイル\BATFILE.BAT」としています。

・バッチファイルの中身は、「Good morning」「Good afternoon」「Good evening」が表示されるものを作成しています。

 ※今回は、バッチファイルが実行されたかの確認をしたいので、pauseを追加します。※実行と同時に閉じてしまうため。

・そして、保存したバッチファイルをShell関数で実行しています。


3.バッチファイルの作成および実行をする

上記のサンプルコードを実行して、バッチファイルの作成および実行が出来るか確認します。その前に

実行前にバッチファイルが作成されるフォルダーを確認します。下記のようにフォルダー内には、何もありません。


図1  バッチファイルの出来るフォルダー(中身は空)

バッチファイルの出来るフォルダー(中身は空)


上記、プログラムを実行すると作成したバッチファイルの実行画面が表示されます。


図2 プログラムの実行結果(バッチファイルの表示)

プログラムの実行結果(バッチファイルの表示)



では、本当にバッチファイルが作成されているのかを確認します。

先ほどは、何も作成されていなかったフォルダーですがバッチファイルが作成されていることが確認出来ます。


図3 バッチファイルの出来るフォルダー(中身は有)

バッチファイルの出来るフォルダー(中身は有)


バッチファイルの中身を確認すると記述した予定どおりの内容で作成されています。


図4  バッチファイルの中身

バッチファイルの中身


実際に本当にこのバッチファイルが実行されているかの確認をするため、

このバッチファイルを手動でダブルクリックをします。

そうしますと下記のように先ほどと「図2 プログラムの実行結果(バッチファイルの表示)」と同じ結果画面が表示されます。


図5 バッチファイルの実行結果(手動)

バッチファイルの実行結果(手動)


下記のようにVBAで実行したバッチファイル手動で実行したバッチファイルを比較すると

実行したアプリケーションの投稿場所が違うため、パスが違いますが出力結果は同じです。


図6 バッチファイル実行結果の比較(VBA&手動)

バッチファイル実行結果の比較(VBA&手動)


これによってVBAより、バッチファイルの作成および実行が出来ている確認をすることが出来ました。


【著者】

Imamura

今まではExcel VBAの開発をしてきました。
開発を主にしたものや他の業務の効率化を目指して行ったものさまざまです。
現在は、他のプログラミング言語に挑戦して、スキルアップを目指しています。

よく読まれている記事