Word の組み込みのダイアログボックスの特定タブを表示する方法 | みんなのワードマクロ

みんなのワードマクロ

ワードマクロで、文書作成とオフィス事務を効率化!!

Word には組み込みダイアログボックス(built-in Dialog Box)が多数用意されています。組み込みダイアログボックスとは、Word がもともと機能としてもっているダイアログボックスのことで、Word の操作で日々私たちがお世話になっているものです。

例えば、印刷をするときに開くダイアログボックスや、検索と置換ダイアログボックスも組み込みダイアログボックスです。

Dialog オブジェクトShow メソッドを用います。

Dialog オブジェクトで定数を指定して、表示させるダイアログボックスの種類を指定します。

例えば印刷の印刷ダイアログボックスは、以下の通り。

Dialogs(wdDialogFilePrint).Show

先日紹介した記事「『キーボードのユーザー設定』でキーボードにマクロを登録する方法 」で表示した「キーボードのユーザー設定」ダイアログボックスは、以下の通り。

Dialogs(wdDialogToolsCustomizeKeyboard).Show


▼定数を見つけるコツ
勘がいい方の場合、この定数(wdDialogFilePrintwdDialogToolsCustomizeKeyboard)から連想されることがあると思います。

そうなんですね。Word 2003までのメニューに対応しているのです。

印刷であれば、メニューのファイル>印刷 でしたね。英語だと、File > Print です。これがそのまま定数としてwdDialogFilePrintとなっています。

日本語だとちょっとわかりにくいかもしれませんが、VBE のヘルプで欲しい機能を見つけるときのヒントにもなります。


▼タブを表示させる方法
さて、ダイアログボックスではいくつかのタブが用意されているものがあります。

上記の定数によっては、直接タブを指定するものもあります。

Dialogs(wdDialogEditFind).Show では、検索と置換ダイアログの検索のタブが表示されます。このとき、以下の通り「置換」と「ジャンプ」タブの表示が微妙に変わり、選択することができません。

一時期、置換用のダイアログボックスをこの方法でマクロで表示しておりましたが、検索タブを選択できないので不便に感じました。

みんなのワードマクロ


これに対して、元になるダイアログボックスを開いて、さらにその中のタブを選択するものもあります。これが、今回紹介する方法。

タブの指定をするのが、.DefaultTab プロパティです。

以下のマクロ例では、ページ設定ダイアログボックス(Dialogs(wdDialogFilePageSetup))をオブジェクトとして指定して、用紙タブ(.DefaultTab = wdDialogFilePageSetupTabPaper)をプロパティで指定します。


みんなのワードマクロ



▼マクロ例 
日経パソコンの連載第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)

フォルダ内のファイル名一覧の作成マクロ

マクロコードの登録方法

ツールバーのボタン登録