例えば、印刷をするときに開くダイアログボックスや、検索と置換ダイアログボックスも組み込みダイアログボックスです。
Dialog オブジェクトの Show メソッドを用います。
Dialog オブジェクトで定数を指定して、表示させるダイアログボックスの種類を指定します。
例えば印刷の印刷ダイアログボックスは、以下の通り。
Dialogs(wdDialogFilePrint).Show
先日紹介した記事「『キーボードのユーザー設定』でキーボードにマクロを登録する方法 」で表示した「キーボードのユーザー設定」ダイアログボックスは、以下の通り。
Dialogs(wdDialogToolsCustomizeKeyboard).Show
▼定数を見つけるコツ
勘がいい方の場合、この定数(wdDialogFilePrintやwdDialogToolsCustomizeKeyboard)から連想されることがあると思います。
そうなんですね。Word 2003までのメニューに対応しているのです。
印刷であれば、メニューのファイル>印刷 でしたね。英語だと、File > Print です。これがそのまま定数としてwdDialogFilePrintとなっています。
日本語だとちょっとわかりにくいかもしれませんが、VBE のヘルプで欲しい機能を見つけるときのヒントにもなります。
▼タブを表示させる方法
さて、ダイアログボックスではいくつかのタブが用意されているものがあります。
上記の定数によっては、直接タブを指定するものもあります。
Dialogs(wdDialogEditFind).Show では、検索と置換ダイアログの検索のタブが表示されます。このとき、以下の通り「置換」と「ジャンプ」タブの表示が微妙に変わり、選択することができません。
一時期、置換用のダイアログボックスをこの方法でマクロで表示しておりましたが、検索タブを選択できないので不便に感じました。
![みんなのワードマクロ](https://stat.ameba.jp/user_images/20110716/07/gidgeerock/a4/49/p/t02200067_0800024211352748087.png?caw=800)
これに対して、元になるダイアログボックスを開いて、さらにその中のタブを選択するものもあります。これが、今回紹介する方法。
タブの指定をするのが、.DefaultTab プロパティです。
以下のマクロ例では、ページ設定ダイアログボックス(Dialogs(wdDialogFilePageSetup))をオブジェクトとして指定して、用紙タブ(.DefaultTab = wdDialogFilePageSetupTabPaper)をプロパティで指定します。
![みんなのワードマクロ](https://stat.ameba.jp/user_images/20110716/08/gidgeerock/57/75/p/t02200250_0556063211352767106.png?caw=800)
▼マクロ例
日経パソコンの連載第4回目の記事「複雑な印刷設定もワンクリックで 」で紹介したマクロです。
Sub 印刷_マクロ1_プリンター設定確認用マクロ()
Dim myFirstTray As String
Dim myOtherTray As String
Dim mySetting As String
Dim myPosition As Integer
Dim myPrinter As String
myFirstTray = ActiveDocument.PageSetup.FirstPageTray
myOtherTray = ActiveDocument.PageSetup.OtherPagesTray
With Dialogs(wdDialogFilePageSetup)
.DefaultTab = wdDialogFilePageSetupTabPaper
If .Show = -1 Then
With ActiveDocument.PageSetup
myPosition = InStr(ActivePrinter, " on ")
If myPosition > 0 Then
myPrinter = Trim(Left(ActivePrinter, myPosition))
Else
myPrinter = ActivePrinter
End If
mySetting = "プリンター名:" & vbTab & myPrinter & vbCr & _
"1ページ目のトレイ番号:" & vbTab & .FirstPageTray & vbCr & _
"2ページ目以降のトレイ番号:" & vbTab & .OtherPagesTray
.FirstPageTray = myFirstTray
.OtherPagesTray = myOtherTray
End With
Documents.Add
Selection.TypeText mySetting
End If
End With
End Sub
▼関連記事
【1行マクロ】文字カウントのダイアログを表示させる
複雑な印刷設定もワンクリックで (PC Online)
フォルダ内のファイル名一覧の作成マクロ
マクロコードの登録方法
ツールバーのボタン登録