EXCEL VBAプログラムを作成する上で、メッセージを表示させる事は、いろんな場面で利用されます。内容に応じて「Yes・No」などの判定をすることもできます。それでは、Msgboxの利用方法をサンプルプログラムを使い説明いたします。
【メッセージボックスの応用はこちらを参照】
● MsgBoX(Prompt,Buttons,Title)
■Prompt:メッセージを記入(必須)
■Buttons:ボタンの種類・アイコンの種類を指定
■Title:タイトル名を指定
定数 | 値 | アイコン画像 | 説明 |
---|---|---|---|
vbCritical | 16 | 警告メッセージのアイコンを表示します。 | |
vbQuestion | 32 | 問い合わせメッセージアイコンを表示します。 | |
vbExclamation | 48 | 注意メッセージアイコンを表示します。 | |
vbinformation | 64 | 情報メッセージアイコンを表示します。 |
定数 | 値 | 表示されるボタンと種類の内容 | 実行画面 |
---|---|---|---|
vbOkonly | 0 | 「OK」ボタンのみ表示 | |
vbOkCancel | 1 | 「OK」・「キャンセル」を表示 | |
vbAbortRetryIgnore | 2 | 「中止」・「再試行」・「無視」を表示 | |
vbYesNoCancel | 3 | 「はい」・「いいえ」・「キャンセル」を表示 | |
vbYesNo | 4 | 「はい」・「いいえ」を表示 | |
vbRetryCancel | 5 | 「再試行」・「キャンセル」を表示 |
Sub msgTest() MsgBox "こんにちは!" End Sub
Sub msgTest2() Dim Ten As Long '変数を定義 Ten = 100 'Tenに100を代入する MsgBox "あなたの点数は" & Ten & "です" End Sub
Sub msgTest3() Dim Hantei As Integer '変数を定義 Hantei = MsgBox("Yes/Noどちらのボタンを押しますか?", vbYesNo) If Hantei = vbYes Then MsgBox "Yesボタンを押しました" 'Yesボタンを押した場合の処理をする Else MsgBox "Noボタンを押しました" 'Noボタンを押した場合の処理をする End If End Sub
定数 | 値 | 表示されるボタンと種類の内容 | 実行画面 |
---|---|---|---|
vbOkonly | 0 | 「OK」ボタンのみ表示 | |
vbOkCancel | 1 | 「OK」・「キャンセル」を表示 | |
vbAbortRetryIgnore | 2 | 「中止」・「再試行」・「無視」を表示 | |
vbYesNoCancel | 3 | 「はい」・「いいえ」・「キャンセル」を表示 | |
vbYesNo | 4 | 「はい」・「いいえ」を表示 | |
vbRetryCancel | 5 | 「再試行」・「キャンセル」を表示 |
●上記表を実行するプログラムは、下記の通りです。
Sub msgbox_sample() MsgBox "処理を実行しますか?", vbOKOnly MsgBox "処理を実行しますか?", vbOKCancel MsgBox "処理を実行しますか?", vbAbortRetryIgnore MsgBox "処理を実行しますか?", vbYesNoCancel MsgBox "処理を実行しますか?", vbYesNo MsgBox "処理を実行しますか?", vbRetryCancel End Sub
定数 | 内容説明 | 戻り値 |
---|---|---|
vbOK | 「OK」ボタンを押すと | 1 |
vbCancel | 「キャンセル」ボタンを押すと | 2 |
vbAbort | 「中止」ボタンを押すと | 3 |
vbRetry | 「再試行」ボタンを押すと | 4 |
vbIgnore | 「無視」ボタンを押すと | 5 |
vbYes | 「はい」ボタンを押すと | 6 |
vbNo | 「いいえ」ボタンを押すと | 7 |
●下記のプログラムは、押したボタンを戻り値で判断して説明していますが、「定数:vbOK」でも同じ事になります。
Sub msgbox_sample2() Dim RetMsg As Integer '---------------- OK の場合--------------------------------- RetMsg = MsgBox("処理を実行しますか?", vbOKOnly) If RetMsg = 1 Then MsgBox "「OK」ボタンが押されました" End If '---------------- OK・キャンセルの場合---------------------- RetMsg = MsgBox("処理を実行しますか?", vbOKCancel) If RetMsg = 1 Then MsgBox "「OK」ボタンが押されました" ElseIf RetMsg = 2 Then MsgBox "「キャンセル」ボタンが押されました" Else MsgBox "その他ボタンが押されました" End If '---------------- 中止・再試行・無視の場合------------------ RetMsg = MsgBox("処理を実行しますか?", vbAbortRetryIgnore) If RetMsg = 3 Then MsgBox "「中止」ボタンが押されました" ElseIf RetMsg = 4 Then MsgBox "「再試行」ボタンが押されました" ElseIf RetMsg = 5 Then MsgBox "「無視」ボタンが押されました" Else MsgBox "その他ボタンが押されました" End If '---------------- はい・いいえ・キャンセルの場合----------- RetMsg = MsgBox("処理を実行しますか?", vbYesNoCancel) If RetMsg = 6 Then MsgBox "「はい」ボタンが押されました" ElseIf RetMsg = 7 Then MsgBox "「いいえ」ボタンが押されました" ElseIf RetMsg = 2 Then MsgBox "「キャンセルボタン」が押されました" Else MsgBox "その他ボタンが押されました" End If '---------------- はい・いいえの場合---------------------- RetMsg = MsgBox("処理を実行しますか?", vbYesNo) If RetMsg = 6 Then MsgBox "「はい」ボタンが押されました" ElseIf RetMsg = 7 Then MsgBox "「いいえ」ボタンが押されました" Else MsgBox "その他ボタンが押されました" End If '--------------- 再試行・キャンセルの場合----------------- RetMsg = MsgBox("処理を実行しますか?", vbRetryCancel) If RetMsg = 4 Then MsgBox "「再試行」ボタンが押されました" ElseIf RetMsg = 2 Then MsgBox "「キャンセル」ボタンが押されました" Else MsgBox "その他ボタンが押されました" End If End Sub
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。