Freigeben über


Gewusst wie: Verwenden von Word-Dialogfeldern im ausgeblendeten Modus

Sie können mit einem Methodenaufruf komplexe Vorgänge ausführen, indem Sie die integrierten Dialogfelder von Microsoft Office Word aufrufen und sie den Benutzern nicht anzeigen. Zu diesem Zweck können Sie die Execute-Methode des Dialog-Objekts verwenden, ohne die Display-Methode aufzurufen.

Betrifft: Die Informationen in diesem Thema betreffen Projekte auf Dokument- und auf Anwendungsebene für Word 2007 und Word 2010. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.

Beispiele

In den folgenden Codebeispielen wird veranschaulicht, wie das Dialogfeld Seite einrichten im ausgeblendeten Modus verwendet wird, um mehrere Seiteneinrichtungseigenschaften ohne Benutzereingabe festzulegen. Im Beispiel wird eine benutzerdefinierte Seitengröße mithilfe eines Dialog-Objekts konfiguriert. Die speziellen Einstellungen für die Seiteneinrichtung, wie zum Beispiel der obere und der untere Seitenrand sind als spät gebundene Eigenschaften des Dialog-Objekts verfügbar. Diese Eigenschaften werden zur Laufzeit dynamisch von Word erstellt.

Im folgenden Beispiel wird veranschaulicht, wie diese Aufgabe in Visual Basic-Projekten ausgeführt wird, in denen sich Option Strict außerhalb und innerhalb von Visual C#-Projekten befindet, für die als Zielversion .NET Framework 4 festgelegt wurde. In diesen Projekten können Sie Funktionen für späte Bindung in den Visual Basic- und Visual C#-Compilern verwenden. Wenn Sie dieses Beispiel verwenden möchten, führen Sie es von der ThisDocument-Klasse oder der ThisAddIn-Klasse im Projekt aus.

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.
With dialog
    .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
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(); 

Im folgenden Beispiel wird veranschaulicht, wie diese Aufgabe in Visual Basic-Projekten ausgeführt wird, in denen sich Option Strict auf und in Visual C#-Projekten befindet, für die als Zielversion .NET Framework 3.5 festgelegt wurde. In diesen Projekten müssen Sie auf die spät gebundenen Eigenschaften mithilfe von Reflektion zugreifen. Wenn Sie dieses Beispiel verwenden möchten, führen Sie es von der ThisDocument-Klasse oder der ThisAddIn-Klasse im 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
private void PageSetupDialogHidden() 
{ 
    Word.Dialog dialog = Application.Dialogs[Word.WdWordDialog.wdDialogFilePageSetup];

    InvokeHelper(dialog, "PageWidth", "3.3\"");
    InvokeHelper(dialog, "PageHeight", "6\"");
    InvokeHelper(dialog, "TopMargin", "0.71\"");
    InvokeHelper(dialog, "BottomMargin", "0.81\"");
    InvokeHelper(dialog, "LeftMargin", "0.66\"");
    InvokeHelper(dialog, "RightMargin", "0.66\"");
    InvokeHelper(dialog, "HeaderDistance", "0.28\"");
    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(); 
}

private static void InvokeHelper(Word.Dialog dialog, string member, string value)
{
    System.Type dialogType = typeof(Word.Dialog);

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

Siehe auch

Aufgaben

Gewusst wie: Verwenden integrierter Dialogfelder in Word

Späte Bindung in Office-Lösungen

Referenz

Reflektion (C# und Visual Basic)

Weitere Ressourcen

Übersicht über das Word-Objektmodell