今回はVBAでのメッセージボックスの使い方について解説します。
メッセージボックスを使いこなせれば、ユーザ視点で優しいメッセージを出すことが出来たり、選択したメッセージの回答によって処理を変えたり、マクロで出来ることの幅が広がります。
メッセージボックスはコンピュータとユーザ(人間)をつなぐ架け橋のようなものです。
とても重要な役割を担っています。
ぜひ今回の講義でメッセージボックスについてマスターしましょう!!
メッセージボックスとは
今回は「メッセージボックス」について解説するよ。
次のような画面見たこともないかな?
あ、見たことあります!
何か操作した時に表示されるメッセージですね!
そう。何か操作したときに表示される画面のことを「メッセージボックス」というよ。
このメッセージボックスはユーザに何か知らせたり、ユーザに何か選択をさせる時に必要となるマクロには欠かせない機能なんだ。
特に、処理が完了した場合などは次のようなメッセージボックスをよく使用します。
このようなメッセージがないといつ処理が完了したか分かりません。
メッセージボックスがある事で、ユーザに今のコンピュータの処理状況を知らせてくれる役割を果たしています。
メッセージボックスはマクロを実行したときに、「警告」「エラー」「お知らせ」などの通知機能の他に、ユーザに何かを選択させ、その選択した結果によって処理を変える判定機能の2つの機能があります。
それぞれの機能については後ほど詳しく説明します。
メッセージボックスの表示方法
まずはVBAでメッセージボックスを表示させる方法を解説します。
VBAでのメッセージボックスの記載方法は次のようになります。
このマクロを実行すると次のメッセージボックスになります。
VBAでの書き方は基本的に次のようになります。
アイコン設定について
メッセージボックスでは「警告」「エラー」「お知らせ」などの標準アイコンが用意されており、ユーザに何か知らせる通知機能の役割を持っています。
アイコンの種類について
メッセージボックスには次の標準アイコンが用意されています。
アイコンの種類 | 画像 | 記載方法 | 使用方法 |
情報アイコン | vbInformation | 何か情報を伝える時に使用します | |
警告アイコン | vbExclamation | 警告メッセージを伝える時に使用します | |
エラーアイコン | vbCritical | エラーメッセージを伝える時に使用します | |
問い合わせアイコン | vbQuestion | ユーザに選択肢を訊ねる時に使用します |
例えば次のように使用します。
情報アイコンを用いると、VBAでは次のように書きます。
記述内容は以下になります。
これを実行すると次のメッセージボックスが表示されます。
エラーアイコンを用いると、VBAでは次のように書きます。
これを実行すると次のメッセージボックスが表示されます。
記述内容は以下になります。
これを実行すると次のメッセージボックスが
このように標準アイコンを使い分ける事によって、メッセージの内容がどんな意味合いか視覚的に判断できるよ
確かに直観的に分かりやすいですね!
アイコンの使い分けが出来るとVBA書くのが楽しくなりますね♪
しかもメッセージ表示する時にアイコンの種類によって音も鳴るから、ぜひ実際にサンプルを作って試してみてね。
ボタン設定について
通知機能の他にも、ユーザに何かを選択させ、その選択した結果によって処理を変える判定機能があります。
判断機能を使用する場合にボタン設定を行います。
ボタンの種類について
メッセージボックスには次の標準ボタンが用意されています。
記載方法 | 使用方法 |
vbOKOnly | 「OK」ボタンのみ表示します |
vbOKCancel | 「OK」「キャンセル」2つのボタンを表示します |
vbYesNo | 「はい」「いいえ」2つのボタンを表示します |
vbYesNoCancel | 「はい」「いいえ」「キャンセル」3つのボタンを表示します |
vbRetryCancel | 「再試行」「キャンセル」2つのボタンを表示します |
vbAbortRetryIgnore | 「中止」「再試行」「無視」3つのボタンを表示します |
例えば次のように使用します。
vbYesNoボタンを用いると、VBAで書くと次のようになります。
記述内容は以下になります。
これを実行すると次のメッセージボックスが表示されます。
メッセージ内容に応じてボタンの種類を設定してね。
ボタンの戻り値について
メッセージボックスのボタンでは「戻り値」の値によって処理を判断するよ
戻り値?初めて聞きました。何ですかそれ?
ごめん、説明していなかったね。戻り値とは処理の結果によって戻される値の事をいうよ。
先ほどのメッセージボックスをもう1度見てみましょう。
このメッセージボックスでユーザが「はい」を選んだとします。
「はい」を選んだという事がコンピュータに返されます。
コンピュータに何が選ばれたか教えてあげるのです。
この返される値を戻り値といいます。
戻り値が返されることによって、コンピュータは次の処理を変える判断基準となります。
戻り値はボタンごとに決まっています。
定数 | 値 | 説明 |
vbOK | 1 | 「OK」ボタンが選択されたことを意味します |
vbCancel | 2 | 「キャンセル」ボタンが選択されたことを意味します |
vbAbort | 3 | 「中止」ボタンが選択されたことを意味します |
vbRetry | 4 | 「再試行」ボタンが選択されたことを意味します |
vbIgnore | 5 | 「無視」ボタンが選択されたことを意味します |
vbYes | 6 | 「はい」ボタンが選択されたことを意味します |
vbNo | 7 | 「いいえ」ボタンが選択されたことを意味します |
例えば、次のメッセージボックスで
「はい」を選択した場合の戻り値は”vbYes”(または”6″)となります。
定数でも記載可能ですし、数値でも記載可能です。
戻り値による条件分岐
では、第6回講座で学んだIf文を使用して戻り値によって処理を変更する方法を見てみましょう。
戻り値を用いる場合は次のように記載します
メッセージボックス単独で表示される場合は”MsgBox”と”メッセージ内容”の間は半角スペース” “でしたが、If文などを使用して戻り値を利用する場合は半角カッコ()を使用します。
例)次のようにA1セルに「いぬ」と書かれたExcelがあります。
このExcelに次のマクロを実行します。
記述内容は以下になります。
すると次のメッセージボックスが表示されます。
ここで「はい」を選択するとA1セルの内容が「ねこ」に変わります。
これはメッセージボックスの戻り値が「vbYes(=6)」が返されたためです。
戻り値の判断基準を定数「vbYes」ではなく、次のように値「6」で指定しても同じ結果が得らえれます。
値で指定することも可能ですが、定数で指定した方が直観的に分かりやすいので、おすすめです。
アイコンとボタンを組み合わせる
上記で説明したアイコンとボタンは組み合わせることが可能です。
たとえば、先ほどの例で、問い合わせアイコンと「はい」「いいえ」ボタンを組み合わせる場合はVBAでは次のように記載します。
記述内容は以下になります。
このマクロを実行すると次のメッセージボックスが表示されます。
このようにメッセージ内容とボタンの種類、アイコンの種類を合わせる事でユーザに分かりやすいメッセージを表示させることが出来るよ。
確かにこれだと質問されているのが分かりやすいですね!
改行の挿入する
メッセージは改行も挿入する事ができます。
VBAでは改行する場合vbCrLfを使用します。
次のように記載します。
1行目と2行目のメッセージの間に アンド記号(&)を入れて繋ぎます。
VBAで記載すると次のようになります。
記述内容は以下になります。
このマクロを実行すると次のメッセージボックスが表示されます。
長いメッセージは1行だと見づらいので必要に応じて改行しましょう。
まとめ
今回の講座ではメッセージボックスについて解説しました。
アイコンの種類やボタンの種類、改行の方法、また戻り値についても解説しました。
メッセージボックスを駆使する事でユーザに優しいマクロを組むことが出来るだけでなく、ユーザが選択した値によって処理を分けるとても重要な役割を担っています。
メッセージボックスをマスターし、カッコイイそして素敵なマクロを作れるようになりましょう!
最後までお読みいただき、ありがとうございました!
~天然マクロ学校~
コメント