Home » エクセルマクロ・Excel VBAの使い方 » Dialogオブジェクト » Dialogs(XlBuiltinDialog).Showでダイアログを表示するサンプル

Dialogs(XlBuiltinDialog).Showでダイアログを表示するサンプル

対象:Excel2003, Excel2007, Excel2010, Excel2013

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でダイアログを表示するサンプル

「Dialogオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.