【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です。
ExcelのVBAって便利です。
今まで手作業で行ってきたものもパッと出来ますし、処理も数秒で完了することができます。
しかし、処理の内容あるいはデータ数によっては、作業時間が30分以上、1時間以上とかかってしまうものもあります。
例えば、プログラムが下記のようになっているとします。
図1 プログラム
プログラムのロジックではそれぞれ他のプロシージャーをCallして、実行しています。
※Callしているプロシージャーでどのような処理を行っているかは、省略します。
そして、実行すると下記のように青い円が表示されます。
図2 処理実行中
これだと、本当に実行しているの? 後、どれくらいで終わるの? と疑問が出てきます。
作業状況を伝える必要があるのです。
ツールを実行したら作業状況を伝える必要があります。
そうすれば、きちんと実行していることや後どれくらいで処理が終了するのかをツール実行者に伝えることが出来ます。
伝える方法としては、いくつかありますが、ここではステータスバーに表示する方法を説明します。
ステータスバーとは、下記の場所のことをいいます。
図3 ステータスバー
赤枠で囲ってある場所がステータスバーです。
今は「準備完了」と表示されていますが、この欄を使用してメッセージを表示していきます。
ではステータスバーにメッセージを表示をしていきます。
Application.StatusBar = "処理実施中"
※ダブルコーテーションに挟まれた文字が表示されます。
実行するとこんな感じになります。
図4 ステータスバーに表示
きちんと「処理実施中」という言葉が表示されています。
もちろん、Application.StatusBar = *** を数回使用すれば、メッセージを上書きすることも出来ます。
では、作業工程などが見えるようにするためにステータスバーに実行状況を表示していきます。
もちろん、どのようにメッセージを表示させるかは人それぞれです。
ここでは処理状況を表示させるためのサンプルを2種類説明します。
データ件数に対しての表示方法
120件のデータの場合、1レコードづつ処理を行っていきますが、
1レコード完了するたびにメッセージを表示するといったものです。
サンプルコード1
Sub TEST40_1()
Dim i As Long
For i = 1 To 120
Application.StatusBar = i & "/" & 120 & "件 終了"
Next
End Sub
※サンプルコード1では、Forステートメントの中に記載しています。
これにより、総件数(120件)のうちどれだけ、処理が何件、完了したかを確認することが出来ます。
処理回数に対しての表示方法
処理の個数に対して、何個目の処理が終了したかを表示するものです。
1つの処理が完了するごとにメッセージを表示するといったものです。
サンプルコード2
Sub TEST40_2()
Call Process1
Application.StatusBar = "1/5 終了"
Call Process2
Application.StatusBar = "2/5 終了"
Call Process3
Application.StatusBar = "3/5 終了"
Call Process4
Application.StatusBar = "4/5 終了"
Call Process5
Application.StatusBar = "5/5 終了"
End Sub
※サンプルコード2では、プロシージャーをCallしている行の下に記載しています。
これにより、行う処理の回数のうちどれだけ、処理が完了したかを確認することが出来ます。
上記で紹介した2つのサンプルコードを実際に実行して、
処理の実行状況をステータスバーに表示されることを確認します。
まずは、サンプルコード1を実行します。
図5 サンプルコード1_処理前
それでは、処理を実行します。
図6 サンプルコード1_処理実行1
※この時点でのメッセージは「1/120」と表示されています。
そのため、全部で120件のデータであることがわかります。
↓
↓
↓
図7 サンプルコード1_処理実行2
※この時点でのメッセージは「60/120」と表示されています。
半分の処理が完了したことがわかります。
↓
↓
↓
図8 サンプルコード1_処理実行3
※この時点でのメッセージは「110/120」と表示されています。
処理もあと少しで完了することがわかります。
↓
↓
↓
図9 サンプルコード1_処理実行4
※この時点でのメッセージは「120/120」と表示されています。
全てのデータに対する処理が完了したことがわかります。
次にサンプルコードの2を実行します。
図10 サンプルコード2_処理前
それでは、処理を実行します。
図11 サンプルコード2_処理実行1
※この時点でのメッセージは「1/5終了」と表示されています。
5種類の処理があり、その一つ目が終了したことがわかります。
↓
↓
↓
図12 サンプルコード2_処理実行2
※この時点でのメッセージは「3/5終了」と表示されています。
全体の半分以上の処理が終了したことがわかります。
↓
↓
↓
図13 サンプルコード2_処理実行3
※この時点でのメッセージは「5/5終了」と表示されています。
予定していた処理が完了したことがわかります。
サンプルプログラム1、2より、ステータスバーにメッセージを表示することが出来ました。
そのような方はぜひ、Workteriaサイトをご利用ください!
定期的にご本人に合う高額案件を紹介
リモートワークなど自由な働き方ができる案件多数
専属エージェントが契約や請求をトータルサポート