次の方法で共有


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

更新 : 2007 年 11 月

対象

このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。

プロジェクトの種類

  • ドキュメント レベルのプロジェクト

  • アプリケーション レベルのプロジェクト

Microsoft Office のバージョン

  • Word 2003

  • Word 2007

詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

Microsoft Office Word の組み込みダイアログ ボックスをユーザーには表示せずに呼び出すことによって、1 回のメソッド呼び出しで複雑な操作を実行できます。これを行うには、Display メソッドは呼び出さずに、Dialog オブジェクトの Execute メソッドを使用します。

使用例

Friend Sub PageSetupDialogHidden()
    Dim dlg As Word.Dialog = Application.Dialogs.Item(Word.WdWordDialog.wdDialogFilePageSetup)

    ' Set the properties of the dialog box.
    ' ControlChars.Quote() is used to represent the symbol for inches.
    With dlg
        .PageWidth = 3.3 & ControlChars.Quote
        .PageHeight = 6 & ControlChars.Quote
        .TopMargin = 0.71 & ControlChars.Quote
        .BottomMargin = 0.81 & ControlChars.Quote
        .LeftMargin = 0.66 & ControlChars.Quote
        .RightMargin = 0.66 & ControlChars.Quote
        .HeaderDistance = 0.28 & ControlChars.Quote
        .Orientation = Word.WdOrientation.wdOrientPortrait
        .DifferentFirstPage = False
        .FirstPage = 0
        .OtherPages = 0

        ' Apply these settings only to the current selection with this line of code:
        .ApplyPropsTo = 3

        ' Apply the settings.
        .Execute()
    End With
End Sub
private void PageSetupDialogHidden() 
{ 
    Word.Dialog dlg = Application.Dialogs[Word.WdWordDialog.wdDialogFilePageSetup];

    invokeHelper(dlg,"PageWidth","3.3\"");
    invokeHelper(dlg,"PageHeight","6\"");
    invokeHelper(dlg,"TopMargin","0.71\"");
    invokeHelper(dlg,"BottomMargin","0.81\"");
    invokeHelper(dlg,"LeftMargin","0.66\"");
    invokeHelper(dlg,"RightMargin","0.66\"");
    invokeHelper(dlg,"HeaderDistance","0.28\"");
    invokeHelper(dlg,"Orientation","0");
    invokeHelper(dlg,"DifferentFirstPage","0");
    invokeHelper(dlg,"FirstPage","0");
    invokeHelper(dlg,"OtherPages","0");

    // Apply these settings only to the current selection with this line of code:
    invokeHelper(dlg,"ApplyPropsTo","3"); 

    // Apply the settings.
    dlg.Execute(); 
}

private static void invokeHelper(Word.Dialog dlg, string member, string value)
{
    System.Type dlgType = typeof(Word.Dialog);

    // Set the appropriate property of the dialog box.
    dlgType.InvokeMember(member,
        System.Reflection.BindingFlags.SetProperty |
            System.Reflection.BindingFlags.Public |
            System.Reflection.BindingFlags.Instance,
        null, dlg, new object[] {value},
        System.Globalization.CultureInfo.InvariantCulture);
}

コードのコンパイル方法

このコードは、Visual Studio Tools for Office プロジェクトの ThisDocument クラスまたは ThisAddIn クラスから実行します。

この例では、ユーザー入力を使用せずに、wdDialogFilePageSetup 列挙体を使用して複数のページ設定プロパティを設定しています。ここでは、Dialog オブジェクトを使用して、カスタム ページ サイズを設定しています。

この例では、Visual Basic コードに Option Strict Off を設定する必要があります。これが必要なのは、上部余白、下部余白などの具体的なページ設定値は Dialog クラスのメンバではないためです。このような具体的な設定は、実行時に wdDialogFilePageSetup 列挙体が評価されたときに Word によって動的に作成されるため、遅延バインディングのプロパティであると言えます。実際に、これらのプロパティは、個々のダイアログ ボックスのコントロールに合わせて実行時に作成されます。

bhy5dcs0.alert_note(ja-jp,VS.90).gifメモ :

Option Strict Off を使用して実行する必要のあるコードを別のクラスに適用できます。

参照

処理手順

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

概念

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