Excel VBAでメッセージを表示したり、ユーザに入力させたりダイアログボックスについてサンプルで説明します。

ダイアログは以下の内容をカスタマイズ出来ます。

メッセージ表示

ダイアログの表示は下記の構文になります。

MsgBox 表示メッセージ内容, ボタンの種類, タイトル文字列

実際のサンプルを見ってみましょう。

メッセージ表示サンプル1
Sub ShowDialog()
    MsgBox "こんにちは!", vbOKOnly, "タイトル"
End Sub

上記のマクロを実行すると次のようになります。

ボタンの種類とタイトル文字列は省略可能で、省略した場合はデフォルトの値が使われます。

メッセージ表示サンプル2
Sub ShowDialog()
	MsgBox "こんにちは!"
End Sub

vbNewLineでメッセージを改行出来ます。

メッセージ表示サンプル3
Sub ShowDialog()
 MsgBox "こんにちは!" & vbNewLine & "元気ですか?"
End Sub

ボタン種類を変更

上記の例で、ボタンがOKボタン一つしかない、確認や選択肢を設けたい場合もありますね。

2番目のパラメータはOKボタンのみの「vbOKOnly」以外、下記VBAで定義済みのパターンも使えます。

ボタン定義説明
vbOKOnly「OK」のみ
vbOKCancel「OK」と「キャンセル」
vbAbortRetryIgnore「中止」、「再試行」、「無視」
vbYesNoCancel「はい」、「いいえ」、「キャンセル」
vbYesNo「はい」、「いいえ」
vbRetryCancel「再試行」、「キャンセル」

「vbOKOnly」以外の場合、ボタンが二つ以上がありますので、どのボタンが押されたかを判定する必要があります。

各ボタンが押された場合、返り値があります。

定数実際の値説明
vbOK1「OK」ボタン
vbCancel2「キャンセル」ボタン
vbAbort3「中止」ボタン
vbRetry4「再試行」ボタン
vbIgnore5「無視」ボタン
vbYes6「はい」ボタン
vbNo7「いいえ」ボタン

例えば「vbOKCancel」ボタンを使ったダイアログを表示した場合、ボタンは「OK」か「キャンセル」ですので、実際に使う場合には次のようになります。

Sub MessageButton()
    Dim ans As Integer

    ans = MsgBox("実行しますか?", vbOKCancel, "テスト")

    If ans = vbOK Then
        MsgBox "OKが押されました"
    Else
        MsgBox "キャンセルが押されました"
    End If
End Sub

アイコン表示

ダイアログに4種類アイコンを表示することが可能です。

アイコン定義説明アイコン
vbCritical警告
vbQuestion確認
vbExclamation注意
vbInformation情報

使い方は、ボタン種類の後ろに「+ アイコン種類」で追記

先のメッセージを表示の例で、アイコンを追加してみます。

Sub ShowDialog()
  MsgBox "こんにちは!", vbOKOnly + vbInformation, "タイトル"
End Sub

実行すると、メッセージの前にアイコンが表示されます。

入力テキストボックス

ダイアログに入力のテキストボックスを表示し、ユーザに値を入力してもらうことも可能です。

構文は下記のようになっています。

InputBox 表示するメッセージ, タイトル, テキストのデフォルト値

使い方は基本MsgBoxと同じですが、ボタンを変えられないです。OKとCancel固定です。

Sub DialogInput()
    Dim ans As String
    ans = InputBox("お名前は?", "名前確認", "")

    If ans <> "" Then
        MsgBox = ans
    End If
End Sub

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です