ゆゆのExcelVBA覚書-副業から独立-

現役社内SEがExcel VBAを中心に覚書として書いていくブログです。

【Excel VBA】MsgBox関数

MsgBox 関数

ダイアログボックスにメッセージを表示し、
ユーザーがボタンをクリックするまで待機。
どのボタンをユーザーが押したかを示す 整数 を返します。

f:id:yumeigunshi444:20180911225746p:plain

構文

MsgBox( prompt [, buttons ] [, title ] [, helpfile, context ] )
※[]内の引数は指定なしでもOK

指定項目 説明
prompt ダイアログボックスに表示するメッセージ 。
[buttons] ダイアログボックスに表示するボタンの種類。
[title] ダイアログボックスのタイトルバーに表示する文字列。
省略するとアプリケーション名が表示される。
[helpfile,context] helpfile:「ヘルプ」ボタンから開くヘルプファイルの指定。
context:ヘルプコンテキスト番号を指定

よく使いそうなものを中心に解説していこうと思います!
[helpfile,context]とか業務とかで使ったこともないくらいです・・・

prompt

ダイアログボックスに表示するメッセージ。
Hellow Worldの部分ですね。 f:id:yumeigunshi444:20180911231704p:plain

指定した文字列をそのまま表示・・・
これ以上解説することないですね・・・w

buttons

ダイアログボックスに表示するボタンの種類。
種類だけで言うとけっこうたくさんあります。
なので私のブログではよく使いそうなもののみ抜粋して紹介します。

全部知りたかったら下記公式サイトで確認してください。 https://msdn.microsoft.com/ja-jp/vba/language-reference-vba/articles/msgbox-function

定数 説明 参考図
vbOKOnly 0 [OK] ボタンのみを表示。 f:id:yumeigunshi444:20180911232258p:plain
vbOKCancel 1 [ OK ] ボタンと [ キャンセル ] ボタンを表示します。 f:id:yumeigunshi444:20180911232728p:plain
vbYesNoCancel 3 [ はい ] ボタン、[ いいえ ] ボタン、および [ キャンセル ] ボタンを表示します。 f:id:yumeigunshi444:20180911232547p:plain
vbYesNo 4 [ はい ] ボタンと [ いいえ ] ボタンを表示します。 f:id:yumeigunshi444:20180911232824p:plain
vbCritical 16 [ 警告メッセージ ] アイコンを表示します。 f:id:yumeigunshi444:20180911232852p:plain
vbQuestion 32 [ 問い合わせメッセージ ] アイコンを表示します。 f:id:yumeigunshi444:20180911233127p:plain
vbExclamation 48 [ 警告メッセージ ] アイコンを表示します。 f:id:yumeigunshi444:20180911232945p:plain
vbInformation 64 [ 情報メッセージ ] アイコンを表示します。 f:id:yumeigunshi444:20180911233009p:plain

何も指定しなければvbOKOnly(0)となります。

上記のうち、vbOKCancel(1)等のボタンが複数あるものは
押されたボタンによって処理を分けることができます。

OKボタンが押された場合は処理続行、キャンセルボタンが押された時は処理終了、みたいなことができます。

戻り値は下記になります。

定数 説明
vbOK 1 OK
vbCancel 2 キャンセル
vbAbort 3 中止
vbRetry 4 再試行
vbIgnore 5 無視
vbYes 6 はい
vbNo 7 いいえ

vbOKCancelを利用したサンプルコードを貼ります。

Private Sub CommandButton1_Click()
    If MsgBox("処理を続行してよろしいですか?", vbOKCancel + vbQuestion, "確認") = vbCancel Then
        Exit Sub
    End If
    
    MsgBox "処理完了!", vbInformation
End Sub

ボタンを押した時に処理を続行していいかを確認するダイアログを表示し、
キャンセルの場合処理を終了し、
OKの場合は「処理完了!」を表示するプログラムです。

これを実行してみると・・・
[OK]を押した場合 f:id:yumeigunshi444:20180911234043p:plain f:id:yumeigunshi444:20180911234114p:plain

[キャンセル]を押した場合 f:id:yumeigunshi444:20180911234149p:plain f:id:yumeigunshi444:20180911234219p:plain

こんな感じで処理を分岐させることができます!

また、vbOKCancel + vbQuestionみたいな感じで組み合わせて使用することができます。
今回の場合は、OK,キャンセルボタン表示と問い合わせメッセージを組み合わせています。

さらに[title]に「確認」の文字を表示させることで、なんのメッセージが分かりやすくしています。

自分だけで使うものの場合はあまり使わないかもしれませんが、
誰かが使うものであればとても便利なものだと思います!

ぜひ参考にしてみてください。