MsgBox(メッセージボックス)の使い方、返り値・改行方法について:Access VBA入門

MsgBoxとは、メッセージを表示する機能と、問合せを行い返事を返す機能がある関数です。

構文:
MsgBox ( prompt [, buttons ] [, title ] [, helpfile ] [, context ] )
  • promptは必須です。 メッセージ文字列を指定します。
  • buttonsは省略できます。 ボタンやアイコンの種類などを指定します。
  • titleは省略できます。 表示されるウィンドウのタイトル文字列を指定します。
  • helpfileは省略できます。 ヘルプファイルを識別する文字列を指定します。(あまり使用しません)
  • contextは省略できます。 ヘルプコンテキスト番号を指定します。(あまり使用しません)
ボタンの種類
vbOKOnly 0 [OK] ボタン
vbOKCancel 1 [OK] 、 [キャンセル] ボタン
vbAbortRetryIgnore  2 [中止]、[再試行]、[無視]ボタン
vbYesNoCancel  3 [はい]、[いいえ]、[キャンセル] ボタン
vbYesNo 4 [はい]、[いいえ] ボタン
vbRetryCancel [再試行]、[キャンセル] ボタン

アイコンの種類
vbCritical 16 警告
vbQuestion 32 問合せ
vbQuestion 48 注意
vbInformation  64  情報

デフォルトボタン
vbDefaultButton1 0 第 1 ボタン
vbDefaultButton2 255 第 2 ボタン
vbDefaultButton3 512 第 3 ボタン
vbDefaultButton4  768  第 4 ボタン

返り値
vbOK 1 OK
vbCancel  2 キャンセル
vbAbort 3 中止
vbRetry 4 再試行
vbIgnore 5 無視
vbYes 6 はい
vbNo いいえ
BackHome BackVBA入門


● メッセージを表示する

下がもっともシンプルなMsgBoxの使い方です。
引数promptのみ指定しています。
シンプルなMsgBoxの使い方

Sub MyMsgBox()
    Dim i As Long
    
    i = 325
    MsgBox "変数iの値は、" & i & "です。"
End Sub

実行結果です。
引数Titleを省略しているので、使用しているアプリケーションの名前が表示されています。
Msgbpxの実行結果

● 問合せを行う

引数のprompt・buttons・titleを指定しています。
返り値はIF文で判定しています。
MsgBoxで問合せを行う

vbYesNoCancel + vbQuestion + vbDefaultButton3で、ボタンの種類にvbYesNoCancelを、アイコンの種類にvbQuestionを、デフォルトボタンにvbDefaultButton3を指定しています。

このように引数buttonsは複数の定数を「+」で組み合わせて使用します。

Sub MyMsgBox()
    Dim nRet As Long
    
    nRet = MsgBox("よろしいでしょうか?", vbYesNoCancel + vbQuestion + vbDefaultButton3, "問合せ")
    If nRet = vbOK Then
        MsgBox "OKボタンが押されました。"
    ElseIf nRet = vbNo Then
        MsgBox "NOボタンが押されました。"
    Else
        MsgBox "CANCELボタンが押されました。"
    End If
End Sub

実行結果です。
ボタンは「はい・いいえ・キャンセル」から選択できます。
アイコンは問合せが表示されています。
デフォルトボタンは、初期状態でフォーカスがあるボタンを指定します。このままEnterキーを押すと採用されるボタンになります。
第3ボタンを指定しているので[キャンセル]がアクティブになっています。
問合せの実行結果

● メッセージを改行する方法

メッセージの改行位置に「vbCrLf」か「vbNewLine」を挿入します。

VBA入力時、文字列が長い場合は「_」を使い複数行にすることができます。
メッセージの改行位置に「vbCrLf」か「vbNewLine」を挿入する

Sub MyMsgBox()
    Dim i As Long
    
    i = 325
    MsgBox "変数iの値は、" & vbCrLf & i & "です。"
End Sub

実行結果です。
メッセージが改行され2行になっています。
ッセージが改行され2行になっている


BackHome BackVBA入門

Copyright(C) FeedSoft