Excel VBA のダイアログ ボックス (ダイアログ ボックス) は、ユーザーに情報を表示するために使用されます。
MsgBox 関数は、ダイアログ ボックスにメッセージを表示し、ユーザーがボタンをクリックするのを待ち、ユーザーがどのボタンをクリックしたかを示す整数を返します。
最も一般的に使用されるダイアログはメッセージ ボックスですが、入力ボックスも使用できます。
これまで、画面に情報を表示するために MsgBox ダイアログ ボックスを使用してきました。
Sub delete_B2()
Range("B2").ClearContents
MsgBox "The contents of B2 have been deleted !" '「セルB2の内容が削除されました!」
End Sub
この場合、MsgBox は引数を 1 つだけ指定して呼び出されます。見る以下のコード:
ここで、2 つの命令を実行する前に削除の確認を求めるダイアログ ボックスを作成します。次に、使用する引数が 3 つあります。
MsgBox([テキスト]、[ボタン]、[タイトル])
Sub delete_B2()
If MsgBox("Are you sure that you wish to delete the contents of B2 ?", vbYesNo, "Confirm") = vbYes
Then
Range("B2").ClearContents
MsgBox "The contents of B2 have been deleted !"
End If
End Sub
結果:
Private Sub warning(var_text As String)
MsgBox "Caution : " & var_text & " !"
End Sub
Sub macro_test()
If Range("A1") = "" Then
warning "empty cell" '「空のセル」
ElseIf Not IsNumeric(Range("A1")) Then
warning "non-numerical value" '「数値以外の値」
End If
End Sub
vbYesNo は、ダイアログ ボタンが「Yes」と「No」であることを指定し、vbYes は「Yes」ボタンを表します。
If MsgBox("Text", vbYesNo, "Title") = vbYes Then ' "Yes" ボタンが押された場合...
| 絶え間ない | 数値 | 説明 |
|---|---|---|
| vbOKOnly | 0 | ![]() |
| vbOKCancel | 1 | ![]() ![]() |
| vbAbortRetryIgnore | 2 | ![]() ![]() ![]() |
| vbYesNoCancel | 3 | ![]() ![]() ![]() |
| vbYesNo | 4 | ![]() ![]() |
| vbRetryCancel | 5 | ![]() ![]() |
| vbCritical | 16 | ![]() |
| vbQuestion | 32 | ![]() |
| vbExclamation | 48 | ![]() |
| vbInformation | 64 | ![]() |
ユーザーが Yes を押すまで、ループ内で毎回表示され続ける MsgBox の例を次に示します。
Sub humor()
Do
If MsgBox("Do you like the Moonexcel site ?", vbYesNo, "Survey") = vbYes Then
Exit Do '=> 応答 Yes = はい、ループを終了します
End If
Loop While 1 = 1 '=> 無限ループ
MsgBox ";-)"
End Sub
新しいリボンを表示するには、引数 10 を指定してリボンを移動する Cul 関数を使用できます。次に例を示します。
MsgBox "Example 1" & Chr(10) & "Example 2" & Chr(10) & Chr(10) & "Example 3"
次の結果が得られます。
InputBox は、ユーザーにダイアログ ボックスへの値の入力を求めます。次に例を示します。
Sub example()
Dim result As String
result = InputBox("Text ?", "Title") '変数には、InputBox に入力された値が割り当てられます。
If result <> "" Then '値が「」以外の場合、結果が表示されます
MsgBox result
End If
End Sub
次の結果が得られます。
3 番目の引数はデフォルト値を設定するために使用できます。
InputBox("Text ?", "Title", "Default value")
結果は次のとおりです。