アイコンの表示

広告

ダイアログにはどんな種類かを表すアイコンを指定することができます。

アイコンについても既にVBAで定義されています。

定義済み定数実際の値説明
vbCritical16警告
vbQuestion32問い合わせ
vbExclamation48注意
vbInfomation64情報

前のページで確認したどの種類のボタンが表示するかを示す定数と加算して「MsgBox」関数を呼び出す時の2番目の引数に指定します。

例えば「vbOKCancel」ボタンと「vbQuestion」アイコンを使ったダイアログを表示した場合次のようになります。

Sub テスト()
    Dim ans As Integer

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

    If ans = vbOK Then
        Range("A1").Value = "OKが押されました"
    Else
        Range("A1").Value = "キャンセルが押されました"
    End If
End Sub

「vbOKCancel」の実際の値は「1」で「vbQuestion」の実際の値は「32」ですので、合計して「33」という値が指定されたことになります。どの組み合わせであっても識別できるように各定数の値は設定されています。

では一通り試してみましょう。

vbCritical

testdialog3.bas

Sub テスト()

    Dim ans As Integer

    ans = MsgBox("危険です。すぐにウィルス駆除をして下さい。" _
        , vbOKCancel + vbCritical, "テスト")

    If ans = vbOK Then
        Range("A1").Value = "OKが押されました"
    Else
        Range("A1").Value = "キャンセルが押されました"
    End If

End Sub

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

ダイアログテスト

他のアイコンは画面表示だけ見てください。

vbQuestion

Dim ans As Integer
ans = MsgBox("インストールを継続しますか?" _
    , vbAbortRetryIgnore + vbQuestion, "テスト")

ダイアログテスト

vbExclamation

Dim ans As Integer
ans = MsgBox("削除すると元に戻せません。続行しますか?" _
    , vbYesNo + vbExclamation, "テスト")

ダイアログテスト

vbInformation

MsgBox "インストールは完了しました", _
    vbOKOnly + vbInformation, "テスト"

ダイアログテスト

Excel VBA入門の他の記事を見てみる

( Written by Tatsuo Ikura )