検索

キーワード


目次

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

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

Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!

フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。

はじめに

こんにちは、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

「挑戦心」を忘れずに、新しいことにチャレンジしています。 資格:VBAエキスパート Excel VBA(ベーシック/スタンダード) 等

編集した記事一覧

正社員/フリーランスの方でこのようなお悩みありませんか?

  • 自分に合う案件を定期的に紹介してもらいたい
  • 週2、リモートワークなど自由な働き方をしてみたい
  • 面倒な案件探し・契約周りは任せて仕事に集中したい

そのような方はぜひ、Workteriaサイトをご利用ください!

  • 定期的にご本人に合う高額案件を紹介

  • リモートワークなど自由な働き方ができる案件多数

  • 専属エージェントが契約や請求をトータルサポート

よく読まれている記事