次の方法で共有


方法 : Word の組み込みダイアログ ボックスを使用する

Microsoft Office Word の使用時に、ユーザー入力用のダイアログ ボックスを表示する必要があることがあります。 独自のダイアログ ボックスを作成することもできますが、Word の組み込みダイアログ ボックスを使用することもできます。Word の組み込みダイアログ ボックスは、Application オブジェクトの Dialogs コレクションで公開されています。 この方法を利用すると、列挙体で表される 200 以上の組み込みダイアログ ボックスにアクセスできます。

対象: このトピックの情報は、Word 2007 と Word 2010 のドキュメント レベルのプロジェクトおよびアプリケーション レベルのプロジェクトに適用されます。詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。

ダイアログ ボックスの表示

ダイアログ ボックスを表示するには、WdWordDialog 列挙体の値のいずれかを使用して、表示するダイアログ ボックスを表す Dialog オブジェクトを作成します。 次に、Dialog オブジェクトの Show メソッドを呼び出します。

[ファイルを開く] ダイアログ ボックスの表示方法を次のコード例に示します。 このコード例を使用するには、プロジェクトの ThisDocument クラスまたは ThisAddIn クラスから実行します。

Dim dlg As Word.Dialog = Application.Dialogs.Item(Word.WdWordDialog.wdDialogFileOpen)
dlg.Show()
Word.Dialog dlg = Application.Dialogs[Word.WdWordDialog.wdDialogFileOpen];
dlg.Show();

遅延バインディングを介して使用できるダイアログ ボックス メンバーへのアクセス

Word のダイアログ ボックスの一部のプロパティとメソッドは、遅延バインディングを介してのみ使用できます。 Option Strict がオンの Visual Basic プロジェクトまたは .NET Framework 3.5 を対象とする Visual C# プロジェクトでは、これらのメンバーにアクセスするにはリフレクションを使用する必要があります。 詳細については、「Office ソリューションの遅延バインディング」を参照してください。

次のコード例では、Option Strict がオフの Visual Basic プロジェクトまたは .NET Framework 4 を対象とする Visual C# プロジェクトで、[ファイルを開く] ダイアログ ボックスの Name プロパティを使用する方法を示します。 このコード例を使用するには、プロジェクトの ThisDocument クラスまたは ThisAddIn クラスから実行します。

Private Sub TestDynamicDialog()
    Dim dialog As Word.Dialog = Application.Dialogs(Word.WdWordDialog.wdDialogFileOpen)
    dialog.Name = "Testing"
    dialog.Show()
    MessageBox.Show(dialog.Name)
End Sub
dynamic dialog = Application.Dialogs[Word.WdWordDialog.wdDialogFileOpen];
dialog.Name = "Testing";
dialog.Show();
MessageBox.Show(dialog.Name);

次のコード例では、Option Strict がオンの Visual Basic プロジェクトまたは .NET Framework 3.5 を対象とする Visual C# プロジェクトで、リフレクションを使用して [ファイルを開く] ダイアログ ボックスの Name プロパティにアクセスする方法を示します。 このコード例を使用するには、プロジェクトの ThisDocument クラスまたは ThisAddIn クラスから実行します。

Dim dlg As Word.Dialog = Application.Dialogs(Word.WdWordDialog.wdDialogFileOpen)
Dim dlgType As Type = GetType(Word.Dialog)

' Set the Name property of the dialog box.
dlgType.InvokeMember("Name", _
    Reflection.BindingFlags.SetProperty Or _
        Reflection.BindingFlags.Public Or _
        Reflection.BindingFlags.Instance, _
    Nothing, dlg, New Object() {"Testing"}, _
    System.Globalization.CultureInfo.InvariantCulture)

' Display the dialog box.
dlg.Show()

' Show the Name property.
MessageBox.Show(dlgType.InvokeMember("Name", _
    Reflection.BindingFlags.GetProperty Or _
        Reflection.BindingFlags.Public Or _
        Reflection.BindingFlags.Instance, _
    Nothing, dlg, Nothing, _
    System.Globalization.CultureInfo.InvariantCulture))
Word.Dialog dialog = Application.Dialogs[Word.WdWordDialog.wdDialogFileOpen];
System.Type dialogType = typeof(Word.Dialog);

// Set the Name property of the dialog box.
dialogType.InvokeMember("Name", 
    System.Reflection.BindingFlags.SetProperty | 
        System.Reflection.BindingFlags.Public | 
        System.Reflection.BindingFlags.Instance,
    null, dialog, new object[] { "Testing" },
    System.Globalization.CultureInfo.InvariantCulture);

// Display the dialog box.
dialog.Show(ref missing); 

// Show the Name property.
MessageBox.Show(dialogType.InvokeMember("Name",
    System.Reflection.BindingFlags.GetProperty |
        System.Reflection.BindingFlags.Public |
        System.Reflection.BindingFlags.Instance,
    null, dialog, null,
    System.Globalization.CultureInfo.InvariantCulture).ToString());

参照

処理手順

方法 : Word のダイアログ ボックスを非表示モードで使用する

参照

Option Strict ステートメント

リフレクション (C# および Visual Basic)

概念

Word オブジェクト モデルの概要

Office ソリューションの省略可能なパラメーター