Microsoft Excel VBA の MsgBox

Bilal Shahid 2024年2月15日
  1. VBA のMsgBox
  2. 例 1: はい/いいえ MsgBox
  3. 例 2: 警告 MsgBox
  4. 例 3: MsgBox を変数に割り当てる
  5. まとめ
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 関数はいくつかの引数を取ります。 これらについて以下に説明します。

  1. prompt: この引数は、ダイアログ ボックスにメッセージとして表示される String 型の式を参照します。 prompt に表示できる文字数には制限があります。つまり、文字が占めるスペースに応じて、約 1024 文字です。

    prompt 引数を使用して、変数の値を表示することもできます。 行間にキャリッジ リターンまたはラインフィード文字を使用して、メッセージを複数の行に分割することもできます。

  2. buttons: この引数には数値があります。 表示されるボタンのタイプとアイコンのスタイルを指定するために使用されます。 MsgBox のボタンの数を選択することもできます。

    buttons 引数のデフォルト値は 0 で、OK ボタンのみを表示します。 この記事では、さまざまな種類のボタンとアイコンについて説明します。

  3. title: タイトルバーに表示される MsgBox のキャプションを指定する String 型の引数を参照します。 この引数が記述されていない場合、アプリケーションの名前がここに表示されます (例: Microsoft Excel)。

  4. helpfile: ここでは、Help ボタンをクリックしたときにユーザーを支援する String 式としてヘルプ ファイルを指定できます。 このボタンは、以下で説明する特定のコードを使用して表示されます。

    helpfile 引数を指定すると、context も指定する必要があります。

  5. context: これは、ヘルプ作成者がヘルプ トピックに割り当てるヘルプ コンテキスト番号です。 context 引数を指定する場合は、helpfile も指定する必要があります。

注: prompt 引数のみが必要です。 残りはオプションで指定できます。

VBA MsgBox ボタン

前述のように、MsgBox 関数の buttons 引数は、ダイアログ ボックスに表示されるボタンの数と種類を指定できます。 これは、ボタン定数またはそれに対応する値を指定することによって行われます。

一般的なボタン設定の種類を以下にまとめます。

  1. vbOKOnly: このボタンの値は 0 です。 OKボタンのみを表示するために使用されます。
  2. vbOKCancel: このボタンの値は 1 です。 OK ボタンと Cancel ボタンの両方が表示されます。
  3. vbAbortRetryIgnore: 値は 2 です。 AbortRetryIgnore ボタンが表示されます。
  4. vbYesNoCancel: 値は3です。 はい``いいえ``キャンセルボタンが表示されます。
  5. vbYesNo: これは、値 4 を持つボタンです。 はいいいえ ボタンが表示されます。
  6. vbRetryCancel: このボタンの値は 5 です。 RetryCancel ボタンが表示されます。
  7. vbDefaultButton1: 最初のボタンをデフォルトにします。 番号を変更すると、デフォルトのボタンが変更されます。 たとえば、vbDefaultButton2 は、2 番目のボタンがデフォルトであることを意味します。 値もそれぞれ異なります。
  8. vbMsgBoxHelpButton: この値は 16384 です。 ヘルプボタンを表示します。 これを使用する場合、helpfile および context 引数を指定する必要があります。指定しないと機能しません。

VBA MsgBox 戻り値

MsgBox 関数は、押されたボタンに応じて整数型の値を返します。 返される数値に対応する 7つの戻り値定数があります。

  1. vbOK
  2. vbキャンセル
  3. vbAbort
  4. vbRetry
  5. 無視
  6. はい
  7. vbNo

これらの数値を変数に格納し、それに応じてコード内でアクションを実行できます。

VBA MsgBox アイコン

VBA MsgBox で表示されるアイコンをカスタマイズできます。 次のタイプがあります。

  1. vbCritical

    クリティカル アイコン

  2. 質問

    質問アイコン

  3. vb感嘆符

    感嘆符アイコン

  4. vb情報

    情報アイコン

例 1: はい/いいえ MsgBox

MsgBox 関数の使用方法を示すサンプル コードを見てみましょう。 YesNo ボタンを表示する Yes/No MsgBox の例を示します。

このコードは以下のとおりです。

Sub YesNoMsgBox()

MsgBox "Still Want To Continue?", vbQuestion + vbYesNo

End Sub

Yes/No MsgBox

例 2: 警告 MsgBox

AbortRetry、または Ignore のオプションを含む警告メッセージを表示する MsgBox の例を見てみましょう。 また、vbNewLinetitle 引数の使用法も示しています。

Sub WarningMsgBox()

MsgBox "An exception occured" & vbNewLine & "Choose what you want to do", vbExclamation + vbAbortRetryIgnore, "Exception"

End Sub

Warning MsgBox

例 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 が表示されます。

Example MsgBox

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

Yes MsgBox

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

No MsgBox

まとめ

これは、MsgBox 関数と、VBA を使用してそれをカスタマイズするさまざまな方法に関する説明をまとめたものです。 学び続けます!

著者: Bilal Shahid
Bilal Shahid avatar Bilal Shahid avatar

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