MsgBox関数の使い方(1) - メッセージボックスの表示方法|Excel VBA |
画面にメッセージを表示する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
上の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に指定します。