Freigeben über


Programmgesteuerte Verwendung von Word-Dialogfeldern im ausgeblendeten Modus

Sie können komplexe Vorgänge mit einem Methodenaufruf ausführen, indem Sie die integrierten Dialogfelder in Microsoft Office Word aufrufen, ohne sie dem Benutzer anzuzeigen. Dazu können Sie die Execute Methode des Dialog Objekts verwenden, ohne die Display Methode aufzurufen.

Gilt für: Die Informationen in diesem Thema gelten für Projekte auf Dokumentebene und VSTO-Add-In-Projekte für Word. Weitere Informationen finden Sie unter features available by Office-App lication and project type.

Beispiele

Die folgenden Codebeispiele veranschaulichen die Verwendung des Dialogfelds "Seite einrichten " im ausgeblendeten Modus, um mehrere Seiteneinrichtungseigenschaften ohne Benutzereingabe festzulegen. In den Beispielen wird ein Dialog Objekt verwendet, um ein benutzerdefiniertes Seitenformat zu konfigurieren. Die spezifischen Einstellungen für die Seiteneinrichtung, z. B. der obere Rand, der untere Rand usw., sind als spät gebundene Eigenschaften des Dialog Objekts verfügbar. Diese Eigenschaften werden dynamisch von Word zur Laufzeit erstellt.

Im folgenden Beispiel wird veranschaulicht, wie Sie diese Aufgabe in Visual Basic-Projekten ausführen, bei denen Option Strict deaktiviert ist, und in Visual C#-Projekten, die auf .NET Framework 4 abzielen. In diesen Projekten können Sie späte Bindungsfeatures in den Visual Basic- und Visual C#-Compilern verwenden. Um dieses Beispiel zu verwenden, führen Sie es aus der ThisDocument Oder-Klasse ThisAddIn in Ihrem Projekt aus.

dynamic dialog = Application.Dialogs[Word.WdWordDialog.wdDialogFilePageSetup];
dialog.PageWidth = "3.3\"";
dialog.PageHeight = "6\"";
dialog.TopMargin = "0.71\"";
dialog.BottomMargin = "0.81\"";
dialog.LeftMargin = "0.66\"";
dialog.RightMargin = "0.66\"";
dialog.HeaderDistance = "0.28\"";
dialog.Orientation = "0";
dialog.DifferentFirstPage = "0";
dialog.FirstPage = "0";
dialog.OtherPages = "0";

// Apply these settings only to the current selection with this line of code:
dialog.ApplyPropsTo = "3";

// Apply the settings.
dialog.Execute();

Das folgende Beispiel veranschaulicht, wie Sie diese Aufgabe in Visual Basic-Projekten ausführen, in denen Option Strict aktiviert ist. In diesen Projekten müssen Sie Spiegelung verwenden, um auf die spät gebundenen Eigenschaften zuzugreifen. Um dieses Beispiel zu verwenden, führen Sie es aus der ThisDocument Oder-Klasse ThisAddIn in Ihrem Projekt aus.

Friend Sub PageSetupDialogHidden()
    Dim dialog 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.
    InvokeHelper(dialog, "PageWidth", "3.3" & ControlChars.Quote)
    InvokeHelper(dialog, "PageHeight", "6" & ControlChars.Quote)
    InvokeHelper(dialog, "TopMargin", "0.71" & ControlChars.Quote)
    InvokeHelper(dialog, "BottomMargin", "0.81" & ControlChars.Quote)
    InvokeHelper(dialog, "LeftMargin", "0.66" & ControlChars.Quote)
    InvokeHelper(dialog, "RightMargin", "0.66" & ControlChars.Quote)
    InvokeHelper(dialog, "HeaderDistance", "0.28" & ControlChars.Quote)
    InvokeHelper(dialog, "Orientation", "0")
    InvokeHelper(dialog, "DifferentFirstPage", "0")
    InvokeHelper(dialog, "FirstPage", "0")
    InvokeHelper(dialog, "OtherPages", "0")

    ' Apply these settings only to the current selection with this line of code:
    InvokeHelper(dialog, "ApplyPropsTo", "3")

    ' Apply the settings.
    dialog.Execute()
End Sub

Private Shared Sub InvokeHelper(ByVal dialog As Word.Dialog, ByVal member As String, ByVal value As String)
    Dim dialogType As System.Type = GetType(Word.Dialog)

    ' Set the appropriate property of the dialog box.
    dialogType.InvokeMember(member,
        System.Reflection.BindingFlags.SetProperty Or
            System.Reflection.BindingFlags.Public Or
            System.Reflection.BindingFlags.Instance,
        Nothing, dialog, New Object() {value},
        System.Globalization.CultureInfo.InvariantCulture)
End Sub