ねこになりたい

おふとんと朝の別れをするのが辛い人向けです。正論で殴らず見守ってあげてください。

Msgbox

 

概要

 
Msgbox("メッセージ", [ボタン], ["タイトル"], [ヘルプファイル], [ヘルプコンテキスト番号)
引数に指定された値を、ダイアログボックスで表示できる。

引数がやたら沢山あるが、私はボタンとタイトル以外あまり使ったことない・・・。

ボタンの種類

第二引数でボタンの種類を指定する。

 vbOkOnly

 [OK]ボタンのみ

この画像には alt 属性が指定されておらず、ファイル名は image.png です

 vbOKCancel

 [OK]もしくは[キャンセル]ボタン

この画像には alt 属性が指定されておらず、ファイル名は image-1.png です

 vbAbortRetryIgnore

 [中止] [再試行] [無視]ボタン

この画像には alt 属性が指定されておらず、ファイル名は image-2.png です

 vbYesNoCancel

 [はい] [いいえ] [キャンセル]ボタン

この画像には alt 属性が指定されておらず、ファイル名は image-3.png です

 vbYesNo

 [はい] [いいえ]ボタン

この画像には alt 属性が指定されておらず、ファイル名は image-4.png です

 vbRetryCancel

 [再試行] [キャンセル]ボタン

この画像には alt 属性が指定されておらず、ファイル名は image-5.png です

第三引数

第三引数でメッセージの内容に沿ったアイコンを設定できます。

 vbCritical

 警告アイコン

この画像には alt 属性が指定されておらず、ファイル名は image-10.png です

 vbQuestion

 注意アイコン

この画像には alt 属性が指定されておらず、ファイル名は image-9.png です

 vbExclamation

 質問(確認)アイコン

この画像には alt 属性が指定されておらず、ファイル名は image-8.png です

 vbInformation

 情報アイコン

この画像には alt 属性が指定されておらず、ファイル名は image-7.png です

戻り値

戻り値を設定することで、それぞれのボタンが押された際の処理を個別に設定できる。

 
戻り値を格納する変数名 = Msgbox("任意のメッセージ")

例えば操作確定の前に表示する確認用ダイアログで、[はい]が押された場合は成功時の処理、[キャンセル]の場合は中断処理を実行するなど用途は様々。

戻り値と、対応するボタンに関しては以下の通り。

 1  vbOK  [OK]ボタン
 2  vbCancel  [キャンセル]ボタン
 3  vbAbort  [中止]ボタン
 4  vbRetry  [再試行]ボタン
 5  vbIgnore  [無視]ボタン
 6  vbYes  [はい]ボタン
 7  vbNo  [いいえ]ボタン

ボタンの初期選択位置

ダイアログボックスが表示された際、デフォルトで選択される位置を指定できる。

  vbDefaultButton1

 左のボタン

この画像には alt 属性が指定されておらず、ファイル名は image-11.png です

  vbDefaultButton2

 中央のボタン

この画像には alt 属性が指定されておらず、ファイル名は image-14.png です

  vbDefaultButton3

 右のボタン

この画像には alt 属性が指定されておらず、ファイル名は image-13.png です

サンプル

Dim ans As String

' ダイアログボックスを表示(デフォルトのボタンは [はい] です)
ans = MsgBox("今すぐ猫になりたいですか?", vbYesNo + vbQuestion + vbDefaultButton1, "突然ですが質問です")

' 押されたボタンに応じて、メッセージを分岐
If ans = 6 Then
' [はい] の場合
MsgBox ("私も猫になりたいです")
Else
' [いいえ]の場合
MsgBox ("そうですか・・・残念です")
End If

実行結果

選択ボタン付きダイアログ

この画像には alt 属性が指定されておらず、ファイル名は image-15.png です

 

[はい]が押された場合

この画像には alt 属性が指定されておらず、ファイル名は image-16.png です

 

[いいえ]が押された場

この画像には alt 属性が指定されておらず、ファイル名は image-17.png です

落とし穴

 [ボタン], ["タイトル"], [ヘルプファイル], [ヘルプコンテキスト番号]は戻り値の格納用変数を用意しないとエラーになる。
MsgBox("今すぐ猫になりたいですか?", vbYesNo + vbQuestion + vbDefaultButton1, "突然ですが質問です")

f:id:Arpino:20200329160609p:plain

ans = MsgBox("今すぐ猫になりたいですか?", vbYesNo + vbQuestion + vbDefaultButton1, "突然ですが質問です")