Excel VBAでメッセージボックスを表示する:MsgBox
VBAのメッセージボックスについて説明します。
MsgBox関数
画面上に、メッセージ付きのウインドウを表示します。
Msgbox([メッセージ])
メッセージが表示されるだけでよければ、これだけで十分ですが、より正確な構文は下記です。
Msgbox([メッセージ], [ボタン形態], [タイトル], [ヘルプファイル], [コンテキスト])
[メッセージ]のみ必須で、他は省略可能ですが、[ボタン形態][タイトル]はよく使いますので追って説明します。[ヘルプファイル][コンテキスト]はヘルプ表示を設定するときに使用します。
引数の説明
[メッセージ], [ボタン形態], [タイトル]まで紹介します。
[メッセージ]:メッセージボックスに表示される文字です。文字列で指定します。
[ボタン形態] :メッセージボックスに表示されるボタンやアイコンを指定できます。数が多いので主なもののみを紹介します。下表(1)および(2)を足し算の形で組み合わせて設定できます。
(例)OKボタンのみで警告アイコン→vbOKOnly+vbCritical
| ボタン関係(1) | アイコン関係(2) | ||
| vbOKOnly | [OK] ボタンのみ | vbCritical | 警告(X) |
| vbOKCancel | [OK] と [キャンセル] ボタン | vbQuestion | 問い合わせ(?) |
| vbYesNoCancel | [はい]、[いいえ]、[キャンセル]ボタン を表示 | vbExclamation | 注意(!) |
| vbYesNo | [はい] 、[いいえ] ボタンを表示 | vbInformation | 情報(i) |
なお、(1)同士や(2)同士の設定はできません。
[タイトル]:タイトルとして表示される文字です。
使用例1
OKボタンのみ+各種アイコンの組み合わせを確認してみます。アイコン付のものはキャプションも設定しています(×ボタンの左隣)のでご確認ください。
'必須引数のみ 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)に代入する形で記述します。また、引数は()で括ります。戻り値を使わない場合、()は要りません。
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, "押したボタンは"
[実行結果]
