MsgBoxを使う事でユーザへの情報・警告・エラーの表示や処理の選択をさせる事が可能となります。また、MsgBoxを上手に活用すれば、マクロの使い勝手をワンランクアップさせる事も可能です。その使い方について紹介します。
構文
記述方法は以下の通りとなります。
MsgBox [メッセージ],[ボタン/アイコン],[タイトル]
[説明]:
メッセージを表示します。
[メッセージ] | 表示するメッセージを記述します。 ※文字列の場合は「”」(ダブルクォーテーション)で囲みます。 |
[ボタン/アイコン] | ボタンやアイコンの合計値を記述します。 省略可能です。(省略した場合はOKボタンのみ表示されます) ※各々のボタンやアイコンの値は以下一覧を参考にして下さい。 |
[タイトル] | タイトルを記述します。 省略可能です。 ※文字列の場合は「”」(ダブルクォーテーション)で囲みます。 |
■ボタン値
値 | 内容 |
0 | 「OK」ボタンのみを表示する。 |
1 | 「OK」と「キャンセル」の2つのボタンを表示する。 |
2 | 「中止」「再試行」「無視」の3つのボタンを表示する。 |
3 | 「はい」「いいえ」「キャンセル」の3つのボタンを表示する。 |
4 | 「はい」と「いいえ」の2つのボタンを表示する。 |
5 | 「再試行」と「キャンセル」の2つのボタンを表示する。 |
■アイコン値
値 | アイコン | 内容 |
16 |
|
警告アイコンを表示する。 |
32 |
|
問い合わせアイコンを表示する。 |
48 |
|
注意アイコンを表示する。 |
64 |
|
情報アイコンを表示する。 |
■標準ボタン値
値 | 内容 |
0 | 第1ボタンを標準ボタンにする。 |
256 | 第2ボタンを標準ボタンにする。 |
512 | 第3ボタンを標準ボタンにする。 |
また、MsgBoxは戻り値を返します。
戻り値の内容は以下一覧を参考にして下さい。
値 | 内容 |
1 | 「OK」ボタンが押された。 |
2 | 「キャンセル」ボタンが押された。 |
3 | 「中止」ボタンが押された。 |
4 | 「再試行」ボタンが押された。 |
5 | 「無視」ボタンが押された。 |
6 | 「はい」ボタンが押された。 |
7 | 「いいえ」ボタンが押された。 |
[記述例]:
MsgBox "おはようございます。", 64, "あいさつ"
MsgBox "おはようございます。", 273, "あいさつ"
MsgBox "おはようございます。", 563, "あいさつ"
使い方
使い方について具体的に説明します。
サンプル①
[プログラミング例]:
Sub メッセージ()
MsgBox "おはようございます。", 64, "あいさつ"
End Sub
各項目には以下内容を記述しました。
---------------------------------
[メッセージ]:
”おはようございます。”
[アイコン/ボタン]:
今回は「情報」アイコンと「OK」ボタンを表示させます。
よって、64+0=64となります。
[タイトル]:
”あいさつ”
---------------------------------
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
①<実行>ボタンをクリックします。
②結果は以下の様に表示されます。情報アイコンと「おはようございます。」のメッセージが表示されます。また、ボタンは「OK」ボタンのみ表示され、「OK」ボタンが標準で選択されます。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
サンプル①の説明については以上です。
サンプル②
[プログラミング例]:
Sub メッセージ()
MsgBox "おはようございます。", 273, "あいさつ"
End Sub
各項目には以下内容を記述しました。
---------------------------------
[メッセージ]:
”おはようございます。”
[アイコン/ボタン]:
今回は
「警告」アイコン
「OK」「キャンセル」ボタン
を表示させます。
また、第2ボタンを標準ボタンに設定します。
よって、16+1+256=273となります。
[タイトル]:
”あいさつ”
---------------------------------
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
①<実行>ボタンをクリックします。
②結果は以下の様に表示されます。警告アイコンと「おはようございます。」のメッセージが表示されます。また、ボタンは「OK」「キャンセル」ボタンの2つが表示され、「キャンセル」ボタンが標準で選択されます。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
サンプル②の説明については以上です。
サンプル③
[プログラミング例]:
Sub メッセージ()
MsgBox "おはようございます。", 563, "あいさつ"
End Sub
各項目には以下内容を記述しました。
---------------------------------
[メッセージ]:
”おはようございます。”
[アイコン/ボタン]:
今回は
「注意」アイコン
「はい」「いいえ」「キャンセル」ボタン
を表示させます。
また、第3ボタンを標準ボタンに設定します。
よって、48+3+512=563となります。
[タイトル]:
”あいさつ”
---------------------------------
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
①<実行>ボタンをクリックします。
②結果は以下の様に表示されます。注意アイコンと「おはようございます。」のメッセージが表示されます。また、「はい」「いいえ」「キャンセル」ボタンの3つが表示され、「キャンセル」ボタンが標準で選択されます。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
サンプル③の説明については以上です。
サンプル④
[プログラミング例]:
Sub メッセージ()
MsgBox "おはようございます。"
End Sub
各項目には以下内容を記述しました。
---------------------------------
[メッセージ]:
”おはようございます。”
[アイコン/ボタン]:
※省略しました。
[タイトル]:
※省略しました。
---------------------------------
※今回は[アイコン/ボタン]及び[タイトル]は省略しました。
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
①<実行>ボタンをクリックします。
②結果は以下の様に表示されます。アイコンが無い状態で「おはようございます。」のメッセージが表示されます。また、ボタンは「OK」のみ表示され、「OK」ボタンが標準で選択されます。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
サンプル④の説明については以上です。
サンプル⑤
[プログラミング例]:
Sub メッセージ()
If MsgBox("おはようございます。", 321, "あいさつ") = 1 Then
MsgBox "OKボタンが押されました。"
End If
End Sub
今回はIF文を使用したMsgBoxの戻り値を判定する方法について紹介します。
各項目には以下内容を記述しました。
---------------------------------
[メッセージ]:
”おはようございます。”
[アイコン/ボタン]:
今回は
「情報」アイコン
「OK」「キャンセル」ボタン
を表示させます。
また、第2ボタンを標準ボタンに設定します。
よって、64+1+256=321となります。
[タイトル]:
”あいさつ”
---------------------------------
MsgBoxの戻り値を判定するためには、「MsgBox("おはようございます。", 321, "あいさつ")」の様にMsgBoxの後を「()」(カッコ)で囲みます。また、判定したい戻り値を比較演算子で結びつけます。今回は「=」(イコール)で結びつけ、「OK」ボタンが押されたか否かを判定するため「1」を指定します。
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
①<実行>ボタンをクリックします。
②情報アイコンと「おはようございます。」のメッセージが表示されます。また、ボタンは「OK」「キャンセル」ボタンの2つが表示され、「キャンセル」ボタンが標準で選択されます。今回は「OK」ボタンをクリックします。
③結果は以下の様になります。戻り値と一致するため、MsgBoxで「OKボタンが押されました。」が表示されます。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
サンプル⑤の説明については以上です。
おわりに
MsgBoxを有効に使う事でユーザの入力間違えによる警告や判断作業を簡素化させる事がスムーズにできます。是非有効に活用し、使い勝手の良いツールを作成して下さい。