更新日:、 作成日:
VBA MsgBox 関数:メッセージボックスを表示する
はじめに
Excel VBA マクロの MsgBox 関数からメッセージボックスを表示する方法を紹介します。
MsgBox 関数は、メッセージボックスを表示しクリックしたボタンを返します。
処理を行うか確認したいときなどに使用します。
MsgBox 関数の引数と戻り値
MsgBox(メッセージ)
メッセージボックスの説明をメッセージに指定します。OK ボタンが表示されます。
MsgBox(メッセージ, ボタン, タイトル)
メッセージボックスのボタンとタイトルを指定できます。
引数「メッセージ」 | 画面の説明を指定します。 |
引数「ボタン」 | 省略できます。「ボタンの種類」、「アイコン」、「既定のボタン」、「モーダル」を組み合わせて指定します。 |
引数「タイトル」 | 省略できます。メッセージボックスのタイトルを指定します。 |
戻り値の型 | 数値型 (Integer) |
引数「ボタン」
ボタンの種類:
名前 | 値 | ボタン |
vbOKOnly | 0 | [OK] |
vbOKCancel | 1 | [OK]、[キャンセル] |
vbAbortRetryIgnore | 2 | [中止]、[再試行]、[無視] |
vbYesNoCancel | 3 | [はい]、[いいえ]、[キャンセル] |
vbYesNo | 4 | [はい]、[いいえ] |
vbRetryCancel | 5 | [再試行]、[キャンセル] |
アイコン:
名前 | 値 | アイコン |
vbCritical | 16 | 警告 |
vbQuestion | 32 | 質問 |
vbExclamation | 48 | 注意 |
vbInformation | 64 | 情報 |
既定のボタン:
名前 | 値 | ボタン |
vbDefaultButton1 | 0 | 左から 1 番目のボタンが既定 |
vbDefaultButton2 | 256 | 左から 2 番目のボタンが既定 |
vbDefaultButton3 | 512 | 左から 3 番目のボタンが既定 |
vbDefaultButton4 | 768 | 左から 4 番目のボタンが既定 |
モーダル:
名前 | 値 | 表示 |
vbApplicationModal | 0 | メッセージのボタンをクリックするまで、Excel の操作ができなくなります。 |
vbSystemModal | 4096 | メッセージのボタンをクリックするまで、Excel の操作ができなくなります。すべてのアプリの手前にメッセージが表示されます。 |
戻り値
名前 | 値 | ボタン |
vbOK | 1 | [OK] |
vbCancel | 2 | [キャンセル] |
vbAbort | 3 | [中止] |
vbRetry | 4 | [再試行] |
vbIgnore | 5 | [無視] |
vbYes | 6 | [はい] |
vbNo | 7 | [いいえ] |
スポンサーリンク
解説
クリックしたボタンの値を返します。値は VbMsgBoxResult 列挙型で定義されています。
引数「ボタン」には vbOKOnly Or vbCritical Or vbDefaultButton1 Or vbApplicationModal のように、Or 演算子を使用して、ボタンの種類とアイコンと既定のボタンとモーダルを組み合わせて指定できます。
既定のボタンがボタンの種類の数を超えるときは 1 番左のボタンが既定になります。
アプリケーションモーダル vbApplicationModal を使用します。システムモーダル vbSystemModal は操作性が悪いので使いません。
引数「ボタン」を省略すると、vbOKOnly 、アイコンなし 、1 番左のボタンが既定 、vbApplicationModal で表示されます。
引数「メッセージ」が改行された文字列なら、改行して説明を表示できます。改行するには vbCrLf と結合します。
引数「タイトル」を省略すると、タイトルにアプリケーション名 (Microsoft Excel など) が表示されます。
使用例
MsgBox 関数の使用例を紹介します。
メッセージボックスを表示する
メッセージボックスを表示します。
Dim i As Integer
i = MsgBox("メッセージ")
Debug.Print(i) ' 1 (vbOK)
ボタンとタイトルをすべて指定する
ボタンとタイトルをすべて指定します。
Dim i As Integer
i = MsgBox("Tipsfound へようこそ" & vbCrLf & "このページは役に立ちましたか?", _
vbYesNo Or vbInformation Or vbDefaultButton1 Or vbApplicationModal, "タイトル")
Debug.Print(i) ' 6: vbYes、7: vbNo
クリックしたボタンを判定する
クリックしたボタンを判定して分岐します。
Dim i As Integer
i = MsgBox("メッセージ", vbYesNo)
i = MsgBox("メッセージ", vbOKCancel)
i = MsgBox("メッセージ", vbAbortRetryIgnore)
Select Case i
Case vbOK
Debug.Print ("OK")
Case vbCancel
Debug.Print ("キャンセル")
Case vbAbort
Debug.Print ("中止")
Case vbRetry
Debug.Print ("再試行")
Case vbIgnore
Debug.Print ("無視")
Case vbYes
Debug.Print ("はい")
Case vbNo
Debug.Print ("いいえ")
End Select
スポンサーリンク