【Excel VBA】If Elseとは違う条件式(Select Case)について
エンジニアのIMMRです。Excel VBAの条件式には、以前に説明したExcel VBA 条件式(If Else)とこれから説明するSelect Caseの二つあります。1.従来のIf Else条件式If Elseは条件に合った時は処理Aを、条件に合わなかったら処理Bを実行します。では、下記のようなデータがあり、複数の条件があるとします。If Elseを使用して作成すると2種類の方法が浮かぶと思
Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!
フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。
こんにちは、IMMRです。
サーバーからデータを取得したり、データを送信する時にFTP送信を行うと思います。
ですが、毎回データの確認し、データ名を入力しながらバッチファイルを作成して、
手動によって作成したバッチファイルを実行では手間がかかりますよね。
頻繁に行う作業でしたらVBAを使用して、バッチファイルを作成・実行をしたほうが効率が良くなります。
その方法について説明します。
バッチファイルの作成および実行する方法は、そのままですが以下の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は、アプリケーションがフォーカスを持ち、ウィンドウが元のサイズと位置に復元されることを意味します。
では、実際にバッチファイルの作成および実行をして行きます。
上記であげた「①バッチファイルを作成」「②バッチファイルの実行」よりサンプルコードを作成していきます。
サンプルコード
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関数で実行しています。
上記のサンプルコードを実行して、バッチファイルの作成および実行が出来るか確認します。その前に
実行前にバッチファイルが作成されるフォルダーを確認します。下記のようにフォルダー内には、何もありません。
図1 バッチファイルの出来るフォルダー(中身は空)
上記、プログラムを実行すると作成したバッチファイルの実行画面が表示されます。
図2 プログラムの実行結果(バッチファイルの表示)
では、本当にバッチファイルが作成されているのかを確認します。
先ほどは、何も作成されていなかったフォルダーですがバッチファイルが作成されていることが確認出来ます。
図3 バッチファイルの出来るフォルダー(中身は有)
バッチファイルの中身を確認すると記述した予定どおりの内容で作成されています。
図4 バッチファイルの中身
実際に本当にこのバッチファイルが実行されているかの確認をするため、
このバッチファイルを手動でダブルクリックをします。
そうしますと下記のように先ほどと「図2 プログラムの実行結果(バッチファイルの表示)」と同じ結果画面が表示されます。
図5 バッチファイルの実行結果(手動)
下記のようにVBAで実行したバッチファイルと手動で実行したバッチファイルを比較すると
実行したアプリケーションの投稿場所が違うため、パスが違いますが出力結果は同じです。
図6 バッチファイル実行結果の比較(VBA&手動)
これによってVBAより、バッチファイルの作成および実行が出来ている確認をすることが出来ました。
そのような方はぜひ、Workteriaサイトをご利用ください!
定期的にご本人に合う高額案件を紹介
リモートワークなど自由な働き方ができる案件多数
専属エージェントが契約や請求をトータルサポート