VBAのメッセージボックスについて説明します。
MsgBox関数
画面上に、メッセージ付きのウインドウを表示します。
1 |
Msgbox([メッセージ]) |
メッセージが表示されるだけでよければ、これだけで十分ですが、より正確な構文は下記です。
1 |
Msgbox([メッセージ], [ボタン形態], [タイトル], [ヘルプファイル], [コンテキスト]) |
[メッセージ]のみ必須で、他は省略可能ですが、[ボタン形態][タイトル]はよく使いますので追って説明します。[ヘルプファイル][コンテキスト]はヘルプ表示を設定するときに使用します。
引数の説明
[メッセージ], [ボタン形態], [タイトル]まで紹介します。
[メッセージ]:メッセージボックスに表示される文字です。文字列で指定します。
[ボタン形態] :メッセージボックスに表示されるボタンやアイコンを指定できます。数が多いので主なもののみを紹介します。下表(1)および(2)を足し算の形で組み合わせて設定できます。
(例)OKボタンのみで警告アイコン→vbOKOnly+vbCritical
ボタン関係(1) | アイコン関係(2) | ||
vbOKOnly | [OK] ボタンのみ | vbCritical | 警告(X) |
vbOKCancel | [OK] と [キャンセル] ボタン | vbQuestion | 問い合わせ(?) |
vbYesNoCancel | [はい]、[いいえ]、[キャンセル]ボタン を表示 | vbExclamation | 注意(!) |
vbYesNo | [はい] 、[いいえ] ボタンを表示 | vbInformation | 情報(i) |
なお、(1)同士や(2)同士の設定はできません。
[タイトル]:タイトルとして表示される文字です。
使用例1
OKボタンのみ+各種アイコンの組み合わせを確認してみます。アイコン付のものはキャプションも設定しています(×ボタンの左隣)のでご確認ください。
1 2 3 4 5 6 7 |
'必須引数のみ MsgBox "テスト" 'アイコンと組み合わせる MsgBox "テスト", vbCritical + vbOKOnly, "警告アイコン" MsgBox "テスト", vbExclamation + vbOKOnly, "注意アイコン" MsgBox "テスト", vbInformation + vbOKOnly, "情報アイコン" MsgBox "テスト", vbQuestion + vbOKOnly, "問合せアイコン" |
[実行結果]
使用例2 戻り値を活用する
MsgBox関数は、押されたボタンの種類に依存した戻り値(数値/整数型)を持ちます。
戻り値 | 意味 | |
vbOK | 1 | [OK]が押された |
vbCancel | 2 | [キャンセル]が押された |
vbYes | 6 | [はい]が押された |
vbNO | 7 | [いいえ]が押された |
下記例は、【1】のメッセージボックスで「はい」、「いいえ」、「キャンセル」の中でどのボタンが押されたのか調べ、【2】のボックスでその結果に合わせた戻り値を表示するものです。
なお、【1】のように戻り値を使用する場合は、Integer(整数)型の変数(Ans)に代入する形で記述します。また、引数は()で括ります。戻り値を使わない場合、()は要りません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Dim Ans As Integer, Reply As String '【1】戻り値を使うときは引数を()で括ります。 Ans = MsgBox("どれか押してください", vbYesNoCancel, "戻り値を表示します") Select Case Ans Case Is = 6 Reply = "はい" Case Is = 7 Reply = "いいえ" Case Is = 2 Reply = "キャンセル" End Select '【2】戻り値を使わないときは[関数名](スペース)[引数]を()で括りません。 MsgBox Reply & "が押されました(戻り値" & Ans & ")", vbInformation, "押したボタンは" |
[実行結果]