メッセージの表示関数
メッセージを表示するためのMsgBox関数は今までもよくでてきました。ユーザに注意を促したり、エラーの表示をしたりと、とてもよく使用されます。改めて、MsgBox関数を見ていきましょう。
MsgBox関数
以下構文です。
[構文]MsgBox関数
MsgBox(prompt[,buttons][,title][,helpfile,context])
prompt:表示するメッセージ
buttons:(省略可)ボタンの種類と個数
title:(省略可)ダイアログボックスのタイトルバーに表示する文字列
helpfile:(省略可)指定したヘルプファイルの名前を指定
context:(省略可)指定したヘルプファイルのコンテキスト番号を指定
構文のカッコにカンマ区切りで表しているのが引数です。[]で囲まれているものは省略可能であることを表します。
ヘルプファイルについては、組み込み関数編(文字列関数2)のInputBox関数で補足しています。
引数buttonsについて5個の表を示します。ボタンの種類と個数を指定するグループと、アイコンの種類を指定するグループ、どのボタンが標準ボタンになるかの指定をするグループ、メッセージボックスの動作方法を指定するグループ、その他指定グループの5種です。buttonsを指定するには5種のグループから必要な値を選択して加算した合計値を指定します。
定数 | 値 | 内容 |
---|---|---|
vbOKOnly | 0(&H000) | [OK]ボタンのみを表示 |
vbOKCancel | 1(&H001) | [OK]ボタンと[キャンセル]ボタンを表示 |
vbAbortRetryIgnore | 2(&H002) | [中止]、[再試行]および[無視]のボタンを表示 |
vbYesNoCancel | 3(&H003) | [はい]、[いいえ]および[キャンセル]のボタンを表示 |
vbYesNo | 4(&H004) | [はい]ボタンと[いいえ]ボタンを表示 |
vbRetryCalcel | 5(&H005) | [再試行]ボタンと[キャンセル]ボタンを表示 |
ボタンの種類と個数を指定
定数 | 値 | 内容 |
---|---|---|
vbCritical | 16(&H010) | 警告メッセージアイコンを表示 |
vbQuestion | 32(&H020) | 問い合わせメッセージアイコンを表示 |
vbExclamation | 48(&H030) | 注意メッセージアイコンを表示 |
vbInformation | 64(&H040) | 情報メッセージアイコンを表示 |
アイコンの種類を指定
定数 | 値 | 内容 |
---|---|---|
vbDefaultButton1 | 0(&H000) | 第一ボタンを標準ボタンとする |
vbDefaultButton2 | 256(&H100) | 第二ボタンを標準ボタンとする |
vbDefaultButton3 | 512(&H200) | 第三ボタンを標準ボタンとする |
vbDefaultButton4 | 768(&H300) | 第四ボタンを標準ボタンとする |
標準ボタンの設定
定数 | 値 | 内容 |
---|---|---|
vbApplicationModai | 0(&H0000) | メッセージボックスに応答するまで、現在選択中のアプリケーションの実行は待機します。 |
vbSysyemModal | 4096(&H1000) | メッセージボックスに応答するまで、現在実行中のすべてのアプリケーションが待機します。 |
メッセージボックスの動作方法の指定
定数 | 値 | 内容 |
---|---|---|
vbMsgBoxHelpButton | 16384(&H4000) | ヘルプボタンを追加 |
vbMsgBoxSetForeground | 65536(&H10000) | 最前面のウインドウとして表示 |
vbMsgBoxRight | 524288(&H80000) | テキストを右寄せに表示 |
vbMsgBoxRtlReading | 1048576(&H100000) | テキストを右から左の方向に表示 |
その他の設定
ボタンの表示部分とアイコンの種類を図示します。
ボタンの種類と個数
図4:アイコンの種類 |
必要により使い分けてください。
MsgBox関数でどのボタンを押したかは、戻り値として返されます。「a=MsgBox(・・・)」と書いた時、変数aに設定されます。戻り値の内容も表にしました。
MsgBox関数の戻り値
定数 | 値 | 内容 |
---|---|---|
vbOK | 1 | [OK] |
vbCancel | 2 | [キャンセル] |
vbAbort | 3 | [中止] |
vbRetry | 4 | [再試行] |
vbIgnore | 5 | [無視] |
vbYes | 6 | [はい] |
vbNo | 7 | [いいえ] |
以下例題です。
[リスト3]Rei_MsgBox(その他の関数.xlsm)
Sub Rei_MsgBox()
a = MsgBox("あなたは男性ですか?「はい」か「いいえ」のボタンを押してください。", vbYesNo, "MsgBox例題")
If a = vbYes Then
MsgBox ("はいが押されました")
Else
MsgBox ("いいえが押されました")
End If
End Sub
ボタンは「はい」と「いいえ」を表示させ、戻り値をみて、どちらを押したかを表示しています。
[コラム]MsgBoxの引数Buttonsについて
Buttonsの引数はたくさんあり、指定グループも5種あります。「はい」「いいえ」と警告メッセージアイコンを表示したいときは、vbYesNo+vbCriticalのように書いて、値を加算して指定します。パソコンのなかではどうなっているのでしょうか?。 vbYesNoが4(&H004)、vbCriticalが16(&H010)加算して20です。10進数でみると、どうやって見分けてよいのかわかりません。16進数に直してみましょう。&H014となります。1桁目にボタンの種類と個数、2桁目にアイコンの種類を指定しています。パソコンは2進数で動いています。16進表示は2進数を、人にわかりやすく表現したものでした(組み込み関数編の数値関数で説明しています)。 ボタンの種類と個数の設定値を知りたいときは、1桁目(4ビット)のみ確認すれば良いことになります。各桁に各グループは割り当てられていますので、パソコンは迷わず指定値を見つけることができるのです。