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")
結果は次のとおりです。