HOME > 即効テクニック > Excel VBA > 関数関連のテクニック > MsgBox関数の使い方(1) - メッセージボックスの表示方法

MsgBox関数の使い方(1) - メッセージボックスの表示方法|Excel VBA

関数関連のテクニック

MsgBox関数の使い方(1) - メッセージボックスの表示方法

(Excel 97/2000/2002/2003/2007/2010/2013/2016)

画面にメッセージを表示するMsgBox関数は、マクロになくてはならない便利な命令です。
たとえば次のように使います。

Sub Sample1()
    MsgBox "モーグへようこそ!"
End Sub

「モーグへようこそ!」のメッセージボックス表示

実行すると、[OK]ボタンが1つだけある小さなメッセージボックスが表示されます。
このMsgBox関数は、ほかにもいろいろな使い方ができます。
ここでは、VBAの定番のMsgBox関数の使い方をご紹介します。

■メッセージを表示する

MsgBox関数のよく使う引数は次のとおりです。

MsgBox Prompt [,Buttons] [, Title]

引数ButtonsとTitleは省略可能です。
引数Promptには、メッセージとして表示する文字列を指定します。
複数行の文字列を表示するには、改行する部分に改行コードを挿入します。

Sub Sample2()
    MsgBox "VBAエキスパート対策にも!" & vbCrLf & "モーグ即効テクニック"
End Sub

「VBAエキスパート対策にも!モーグ即効テクニック」のメッセージボックス

■ボタンとアイコンの種類を指定する

上のSample1とSample2では、引数Promptだけを指定しています。
このとき、アイコンは表示されず、[OK]ボタンだけが表示されていました。
メッセージボックスに、[OK]ボタン以外のボタンやアイコンを表示するには、引数Buttonsを使用します。引数Buttonsには、次の定数を指定します。

【ボタンに関する定数】

ボタンに関する定数の一覧表

【アイコンに関する定数】

アイコンに関する定数一覧表

[はい]ボタンと[いいえ]ボタンを表示し、さらに問い合わせメッセージアイコンを表示したいときは、次のように指定します。

Sub Sample3()
    MsgBox "モーグのメルマガ「オフパー」を購読しますか?", vbYesNo + vbQuestion
End Sub

「モーグのメルマガ「オフパー」を購読しますか?」のメッセージボックス

ボタンとアイコンを組み合わせるには、このように定数を足し算して、引数Buttonsに指定すればOKです。なお、

MsgBox "モーグのメルマガ「オフパー」を購読しますか?", 4 + 32

としたり、

MsgBox "モーグのメルマガ「オフパー」を購読しますか?", 36

としても同じ結果が得られますが、可読性が著しく下がるので、これはやってはいけません。
用意された定数を使いましょう。

■タイトルを指定する

メッセージボックスのタイトルを表示するには、引数Titleに指定します。

Sub Sample4()
    MsgBox "削除してもよろしいですか?", vbYesNo + vbExclamation, "削除の確認"
End Sub

「削除してもよろしいですか?」メッセージボックス

ここまで、メッセージボックスのいろいろな表示方法をご紹介しました。
メッセージボックスに複数のボタンを表示したとき、ユーザーがどのボタンをクリックしたかを判定する方法については、「MsgBox関数の使い方(2) - ユーザーが選択したボタンの処理」を参照してください。

●補足●

ボタンを表す定数やアイコンを表す定数は、VbMsgBoxStyle列挙体のメンバです。
このほかにも、既定のボタンを表す定数や、文字列の配置に関する定数などがあります。
すべてのメンバは、ヘルプ「MsgBox関数の定数」や、オブジェクトブラウザなどで確認できます。
いずれも、ボタンとアイコンを同時に指定したときと同様に、定数をたし算して引数Buttonsに指定します。