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つの戻り値定数があります。
vbOK
vbキャンセル
vbAbort
vbRetry
無視
はい
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