2020年6月9日火曜日

[VBA] 06. メッセージ

MsgBox 関数と InputBox 関数について。



MsgBox
おなじみの MsgBox 関数。ダイアログボックスでメッセージが表示される。戻り値はクリックされたボタンを示す整数。

MsgBox(prompt [, buttons ] [, title ] [, helpfile ] [, context ] )

 prompt : メッセージ内容
 buttons : ボタン, アイコンの設定
 title : タイトルバーに表示する内容
 helpfile : ヘルプファイル
 context : ヘルプテキスト番号

helpfile と context はセットで使用するらしい。使ったことない。

bottons 引数の設定は以下。

定数 説明
vbOKOnly 0 ボタン [OK]
vbOKCancel 1 ボタン [OK] [キャンセル]
vbAbortRetryIgnore 2 ボタン [中止] [再試行] [無視]
vbYesNoCancel 3 ボタン [はい] [いいえ] [キャンセル]
vbYesNo 4 ボタン [はい] [いいえ]
vbRetryCancel 5 ボタン [再試行] [キャンセル]
vbCritical 16 アイコン 重要 (×マーク)
vbQuestion 32 アイコン 警告 (?マーク)
vbExclamation 48 アイコン 警告 (!マーク)
vbInformation 64 アイコン 情報 (iマーク)
vbDefaultButton1 0 ボタン 1番目選択状態
vbDefaultButton2 256 ボタン 1番目選択状態
vbDefaultButton3 512 ボタン 1番目選択状態
vbDefaultButton4 768 ボタン 1番目選択状態
vbMsgBoxRight 524288 テキストを右揃えにする

定数 説明
vbOK 1 OK
vbCancel 2 キャンセル
vbAbort 3 中止
vbRetry 4 再試行
vbIgnore 5 無視
vbYes 6 はい
vbNo 7 いいえ


Dim resp As Integer

'[OK] [キャンセル] ボタンのメッセージボックス
resp = MsgBox("Message text", vbOKCancel + vbCritical, "Title test")

If resp = vbOK Then
    Debug.Print "OK"
Else
    Debug.Print "CANCEL"
End If
実行結果 ([OK] ボタンを選択した場合)
OK
実行結果 ([キャンセル] ボタンを選択した場合)
CANCEL

メッセージの途中で改行したい場合は以下のようにする。
'CR+LF で改行
resp = MsgBox("Message" & vbCrLf & "text", vbOKCancel + vbCritical, "Title test")

'LFで改行
resp = MsgBox("Message" & vbLf & "text", vbOKCancel + vbCritical, "Title test")

'CRで改行
resp = MsgBox("Message" & vbCr & "text", vbOKCancel + vbCritical, "Title test")



InputBox
メッセージとテキストボックスを表示し、テキストボックスの内容を返す関数。戻り値は String 型となる。

InputBox(prompt [, title ] [, default ] [, xpos ] [, ypos ] [, helpfile ] [, context ])

 prompt : メッセージ内容
 title : タイトルバーに表示する内容
 default : テキストボックスの初期値
 xpos : ダイアログボックスの表示位置 (水平)
 ypos : ダイアログボックスの表示位置 (垂直)
 helpfile : ヘルプファイル
 context : ヘルプテキスト番号


Dim resp As String

resp = InputBox("Message text", "Title test")

Debug.Print resp

0 件のコメント:

コメントを投稿