Excel VBAで各種ダイアログを表示する際、Application.Dialogsプロパティに指定する定数の一覧をご紹介しました。
どんなダイアログが表示されるのか、実物で確認できるほうが便利という方もいらっしゃるでしょう。
そんな方に向けてダイアログを表示するサンプルをご紹介しておきます。
Dialogs(XlBuiltinDialog).Showでダイアログを表示するサンプルファイル
▼サンプルファイル(excel-vba-show-dialog.xls 64KByte)ダウンロード
サンプルファイルには以下のようなイベントプロシージャが作成してあり、A2:C244内のセルを選択すると、該当するダイアログが自動的に表示されます。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim dlg_num As Long
If Intersect(Target, Range("A2:C244")) Is Nothing Then Exit Sub
On Error GoTo ERR_HANDL
dlg_num = Cells(Target.Row, 1).Value
Application.Dialogs(dlg_num).Show
Exit Sub
ERR_HANDL:
MsgBox "このダイアログは表示できません。"
End Subサンプルで行っている処理
1列目の値を取得して変数に格納して
dlg_num = Cells(Target.Row, 1).Value
その変数をApplication.Dialogsプロパティの引数に指定しShowメソッドを実行しています。
Application.Dialogs(dlg_num).Show
ダイアログによってはワークシートからいきなり表示することができずエラーとなるものもありますから、エラーが発生したときには
On Error GoTo ERR_HANDL
「このダイアログは表示できません。」というメッセージを表示して終了しています。
MsgBox "このダイアログは表示できません。"
上記のような処理に入る前に、A2:C244セル以外のセルが選択された場合は、イベントプロシージャを終了しています。
If Intersect(Target, Range("A2:C244")) Is Nothing Then Exit Sub
Home » エクセルマクロ・Excel VBAの使い方 » Dialogオブジェクト » Dialogs(XlBuiltinDialog).Showでダイアログを表示するサンプル