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

このトピックには、次のセクションの情報と例が含まれています。

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

組み込みのダイアログ ボックスを表示して、ユーザーが入力した値を取得したり、Visual Basic for Applications (VBA) で 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

注:

また、Word の VBA プロパティを使用して、ダイアログ ボックスを表示せずにユーザー情報を表示することもできます。 次の例では、Application オブジェクトの UserName プロパティを使用して、[ユーザー情報] ダイアログ ボックスを表示せずにアプリケーションのユーザー名を表示します。

Sub DisplayUserInfo() 
 MsgBox Application.UserName 
End Sub

If the user name is changed in the previous example, the change is not set in the dialog box. ダイアログ ボックスを表示せずにダイアログ ボックスで設定を実行するには、 Execute メソッドを使用します。 The following example displays the User Information dialog box, and if the name is not an empty string, the settings are set in the dialog box by using the Execute method.

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

注:

ダイアログ ボックスを表示せずにユーザー情報を設定するには、Word の VBA プロパティとメソッドを使用します。 次のコード例では、Application オブジェクトの UserName プロパティを使用してユーザー名を変更し、[ユーザー情報] ダイアログ ボックスを表示して、変更が行われたことを示します。 Note that displaying the dialog box is not necessary to change the value of a dialog box.

Sub SetUserName() 
 Application.UserName = "Jeff Smith" 
 Dialogs(wdDialogToolsOptionsUserInfo).Display 
End Sub

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

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

Dialog オブジェクトを使用してダイアログ ボックスの設定を取得または変更する前に、個々のダイアログ ボックスを識別する必要があります。 This is done by using the Dialogs property with a WdWordDialog constant. After you have instantiated a Dialog object, you can return or set options in the dialog box. The following example displays the right indent from the Paragraphs dialog box.

Sub ShowRightIndent() 
 Dim dlgParagraph As Dialog 
 Set dlgParagraph = Dialogs(wdDialogFormatParagraph) 
 MsgBox "Right indent = " & 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 メソッドによって返される値は、ダイアログ ボックスを閉じるボタンを示します。 The following example displays the Break dialog box, and if OK is clicked, a message is displayed on the status bar.

Sub DialogBoxButtons() 
 If Dialogs(wdDialogInsertBreak).Show = -1 Then 
 StatusBar = "Break inserted" 
 End If 
End Sub

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

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

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。