次の方法で共有


Word の組み込みのダイアログ ボックスを表示する

   

このトピックには、次の情報と使用例が含まれています。

  • 組み込みのダイアログ ボックスを表示する
  • ダイアログ ボックスの設定値を取得または変更する
  • ダイアログ ボックスを閉じた方法を確認する

組み込みのダイアログ ボックスを表示する

組み込みのダイアログ ボックスを表示して、ユーザーが入力した値や、Visual Basic で Word の動作を制御するための情報を取得することができます。Dialog オブジェクトの Show メソッドは、Word の組み込みダイアログ ボックスに指定されている処理の内容を表示し、これを実行します。特定の組み込みダイアログ ボックスにアクセスするには、Dialogs プロパティに WdWordDialog クラスの定数を指定します。たとえば、次のコードを記述すると [ファイルを開く] ダイアログ ボックス (wdDialogFileOpen) を表示できます。

  Sub ShowOpenDialog()
    Dialogs(wdDialogFileOpen).Show
End Sub

ファイルを選択し、[OK] をクリックすると、ファイルが開きます (処理が実行されます)。たとえば、次のコードを記述すると、[印刷] ダイアログ ボックス (wdDialogFilePrint) を表示できます。

  Sub ShowPrintDialog()
    Dialogs(wdDialogFilePrint).Show
End Sub

Word ダイアログ ボックスの特定のタブにアクセスするには、DefaultTab プロパティを設定します。次の使用例は、[線種とページ罫線と網かけの設定] ダイアログ ボックス ([罫線] メニュー) の [ページ罫線] タブを表示します。

  Sub ShowBorderDialog()
    With Dialogs(wdDialogFormatBordersAndShading)
        .DefaultTab = wdDialogFormatBordersAndShadingTabPageBorder
        .Show
    End With
End Sub

Display メソッドは、ダイアログ ボックスを表示するだけで、ダイアログ ボックスに指定されている処理は実行しません。Display メソッドは、組み込みダイアログ ボックスを使用してユーザーに入力を求め、設定値を取得する場合に使用します。たとえば、次のコードは、[オプション] ダイアログ ボックス ([ツール] メニュー) の [ユーザー情報] タブを表示し、ユーザー名を取得して表示します。

  Sub DisplayUserInfoDialog()
    With Dialogs(wdDialogToolsOptionsUserInfo)
        .Display
        MsgBox .Name
    End With
End Sub

メモ  Word の Visual Basic for Applications のプロパティを使用しても、ダイアログ ボックスを表示しないで、ユーザー情報を表示することができます。次の使用例は、Application オブジェクトの UserName プロパティを使用して、[オプション] ダイアログ ボックスの [ユーザー情報] タブを表示しないで、アプリケーションのユーザー名を表示します。

  Sub DisplayUserInfo()
    MsgBox Application.UserName
End Sub

この使用例でユーザー名が変更されても、ダイアログ ボックスの設定値は変更されません。ダイアログ ボックスを表示しないで、ダイアログ ボックス内の設定値を実行するには、Execute メソッドを使用します。次の使用例は、[オプション] ダイアログ ボックス の [ユーザー情報] タブを表示し、ユーザー名が指定されている場合は、Execute メソッドを使用してダイアログ ボックスの設定値を設定します。

  Sub ShowAndSetUserInfoDialogBox()
    With Dialogs(wdDialogToolsOptionsUserInfo)
        .Display
        If .Name <> "" Then .Execute
    End With
End Sub

メモ  ダイアログ ボックスを表示しないでユーザー情報を設定するには、Word VBA のプロパティおよびメソッドを使用します。次の使用例は、Application オブジェクトの UserName プロパティを使用してユーザー名を変更してから、ユーザー名が変更されたことを表す [オプション] ダイアログ ボックスの [ユーザー情報] タブを表示します。ダイアログ ボックスの値を変更するために、ダイアログ ボックスを表示する必要はありません。

  Sub SetUserName()
    Application.UserName = "鈴木 純"
    Dialogs(wdDialogToolsOptionsUserInfo).Display
End Sub

ダイアログ ボックスの設定値を取得または変更する

ダイアログ ボックスの値をプロパティまたはメソッドを使用して取得したり変更したりできる場合、Dialog オブジェクトを使用して取得または変更する方法は、あまり効率的ではありません。また、通常 (常にではない)、Dialog オブジェクトにアクセスするより、VBA コードを使用した方がコードが短く簡単です。したがって、ここには、対応する VBA プロパティを使用して同じ処理を実行する使用例も示します。

Dialog オブジェクトを使用して、ダイアログ ボックスの設定値を取得または変更する前に、ダイアログ ボックスを個別に識別する必要があります。これは、Dialogs プロパティに WdWordDialog クラスの定数を指定して行います。Dialog オブジェクトをインスタンス化すると、ダイアログ ボックスのオプションを取得または設定できるようになります。次の使用例は、[段落] ダイアログ ボックスに設定されている右インデント値を表示します。

  Sub ShowRightIndent()
    Dim dlgParagraph As Dialog
    Set dlgParagraph = Dialogs(wdDialogFormatParagraph)
    MsgBox "右インデント = " & dlgParagraph.RightIndent
End Sub

メモ  Word VBA のプロパティおよびメソッドを使用して、段落の右インデントの設定値を表示することができます。次の使用例は、ParagraphFormat オブジェクトの RightIndent プロパティを使用して、カーソル位置に段落の右インデントを表示します。

  Sub ShowRightIndexForSelectedParagraph()
    MsgBox Selection.ParagraphFormat.RightIndent
End Sub

ダイアログ ボックスの設定値を取得するだけでなく、設定することもできます。次の使用例は、[段落] ダイアログ ボックスの [次の段落と分離しない] チェック ボックスをオンにします。

  Sub SetKeepWithNext()
    With Dialogs(wdDialogFormatParagraph)
        .KeepWithNext = 1
        .Execute
    End With
End Sub

メモ  Word VBA のプロパティおよびメソッドを使用して、段落の右インデント値を変更することもできます。次の使用例は、ParagraphFormat オブジェクトの KeepWithNext プロパティを使用して、選択された段落が次の段落と分離しないようにします。

  Sub SetKeepWithNextForSelectedParagraph()
    Selection.ParagraphFormat.KeepWithNext = True
End Sub

メモ   ダイアログ ボックスに現在の値を反映するには、Update メソッドを使用します。既にマクロで定義してあるダイアログ ボックス変数を使用して、現在の値を取得したり、変更したりする場合、Update メソッドを使用します。

ダイアログ ボックスを閉じた方法を確認する

Show および Display メソッドの戻り値は、ダイアログ ボックスを閉じるときにクリックされたボタンを表します。次の使用例は、[改ページ] ダイアログ ボックスを表示し、[OK] がクリックされた場合、ステータス バーにメッセージを表示します。

  Sub DialogBoxButtons()
    If Dialogs(wdDialogInsertBreak).Show = -1 Then
        StatusBar = "改ページが挿入されました。"
    End If
End Sub

次の表は、ダイアログ ボックスのボタンに関連する戻り値を示しています。

戻り値 説明
-2 [閉じる] ボタン。
-1 [OK] ボタン。
0 (ゼロ) [キャンセル] ボタン。
> 0 (ゼロ) コマンド ボタン。1 は 1 番目のボタン、2 は 2 番目のボタンに対応します。