Microsoft Excel VBA の MsgBox
VBA は、Visual Basic for Applications の略で、開発者に Microsoft Office アプリケーションを操作しながらさまざまな機能を提供するプログラミング言語です。
この記事では、VBA の MsgBox 関数について学習します。
VBA のMsgBox
MsgBox は、コードの実行時にメッセージ ボックスを表示する VBA の関数です。 メッセージ ボックスが表示されると、コードは停止します。
次に、ユーザーからの入力を待ち、それに応じて実行を続けます。 このダイアログ ボックスのメッセージをカスタマイズして、ユーザーが選択したオプションに従ってコードを動作させることができます。
VBA での MsgBox 関数の構文は次のとおりです。
MsgBox (prompt, [ buttons, ] [ title, ] [ helpfile, context ])
上記のように、MsgBox 関数はいくつかの引数を取ります。 これらについて以下に説明します。
-
prompt: この引数は、ダイアログ ボックスにメッセージとして表示されるString型の式を参照します。promptに表示できる文字数には制限があります。つまり、文字が占めるスペースに応じて、約 1024 文字です。prompt引数を使用して、変数の値を表示することもできます。 行間にキャリッジ リターンまたはラインフィード文字を使用して、メッセージを複数の行に分割することもできます。 -
buttons: この引数には数値があります。 表示されるボタンのタイプとアイコンのスタイルを指定するために使用されます。MsgBoxのボタンの数を選択することもできます。buttons引数のデフォルト値は0で、OKボタンのみを表示します。 この記事では、さまざまな種類のボタンとアイコンについて説明します。 -
title: タイトルバーに表示されるMsgBoxのキャプションを指定するString型の引数を参照します。 この引数が記述されていない場合、アプリケーションの名前がここに表示されます (例:Microsoft Excel)。 -
helpfile: ここでは、Helpボタンをクリックしたときにユーザーを支援するString式としてヘルプ ファイルを指定できます。 このボタンは、以下で説明する特定のコードを使用して表示されます。helpfile引数を指定すると、contextも指定する必要があります。 -
context: これは、ヘルプ作成者がヘルプ トピックに割り当てるヘルプ コンテキスト番号です。context引数を指定する場合は、helpfileも指定する必要があります。
注:
prompt引数のみが必要です。 残りはオプションで指定できます。
VBA MsgBox ボタン
前述のように、MsgBox 関数の buttons 引数は、ダイアログ ボックスに表示されるボタンの数と種類を指定できます。 これは、ボタン定数またはそれに対応する値を指定することによって行われます。
一般的なボタン設定の種類を以下にまとめます。
vbOKOnly: このボタンの値は0です。OKボタンのみを表示するために使用されます。vbOKCancel: このボタンの値は1です。OKボタンとCancelボタンの両方が表示されます。vbAbortRetryIgnore: 値は2です。Abort、Retry、Ignoreボタンが表示されます。vbYesNoCancel: 値は3です。はい``いいえ``キャンセルボタンが表示されます。vbYesNo: これは、値4を持つボタンです。はいといいえボタンが表示されます。vbRetryCancel: このボタンの値は5です。RetryとCancelボタンが表示されます。vbDefaultButton1: 最初のボタンをデフォルトにします。 番号を変更すると、デフォルトのボタンが変更されます。 たとえば、vbDefaultButton2は、2 番目のボタンがデフォルトであることを意味します。 値もそれぞれ異なります。vbMsgBoxHelpButton: この値は16384です。ヘルプボタンを表示します。 これを使用する場合、helpfileおよびcontext引数を指定する必要があります。指定しないと機能しません。
VBA MsgBox 戻り値
MsgBox 関数は、押されたボタンに応じて整数型の値を返します。 返される数値に対応する 7つの戻り値定数があります。
vbOKvbキャンセルvbAbortvbRetry無視はいvbNo
これらの数値を変数に格納し、それに応じてコード内でアクションを実行できます。
VBA MsgBox アイコン
VBA MsgBox で表示されるアイコンをカスタマイズできます。 次のタイプがあります。
-
vbCritical
-
質問
-
vb感嘆符
-
vb情報
例 1: はい/いいえ MsgBox
MsgBox 関数の使用方法を示すサンプル コードを見てみましょう。 Yes と No ボタンを表示する Yes/No MsgBox の例を示します。
このコードは以下のとおりです。
Sub YesNoMsgBox()
MsgBox "Still Want To Continue?", vbQuestion + vbYesNo
End Sub

例 2: 警告 MsgBox
Abort、Retry、または Ignore のオプションを含む警告メッセージを表示する MsgBox の例を見てみましょう。 また、vbNewLine と title 引数の使用法も示しています。
Sub WarningMsgBox()
MsgBox "An exception occured" & vbNewLine & "Choose what you want to do", vbExclamation + vbAbortRetryIgnore, "Exception"
End Sub

例 3: MsgBox を変数に割り当てる
上記の例では、ボタンを押しても特に何もしませんでした。 ただし、ユーザーが選択したボタンに応じてコードの動作方針を変更したい場合は、MsgBox の戻り値を変数に保存する必要があります。
以下のコードを使用してそれを行う方法を見てみましょう。
Sub MsgBoxExample()
Dim result As Integer
result = MsgBox("Do you want to continue?", vbYesNo + vbQuestion)
If result = vbYes Then ' Or result == 6
MsgBox "You clicked Yes"
End If
If result = vbNo Then ' Or result == 7
MsgBox "You clicked No"
End If
End Sub
このマクロを実行すると、次の MsgBox が表示されます。

Yes をクリックすると、この MsgBox が表示されます。

同様に、いいえをクリックすると、次のMsgBoxが表示されます。

まとめ
これは、MsgBox 関数と、VBA を使用してそれをカスタマイズするさまざまな方法に関する説明をまとめたものです。 学び続けます!
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub