Share via


Utiliser par programmation les boîtes de dialogue Word en mode masqué

Vous pouvez effectuer des opérations complexes avec un appel de méthode en appelant les boîtes de dialogue intégrées dans Microsoft Bureau Word sans les afficher à l’utilisateur. Pour ce faire, utilisez la Execute méthode de l’objet Dialog sans appeler la Display méthode.

S’applique à : les informations contenues dans cette rubrique s’appliquent aux projets au niveau du document et aux projets de complément VSTO pour Word. Pour plus d’informations, consultez Fonctionnalités disponibles par application Office lication et le type de projet.

Exemples

Les exemples de code suivants montrent comment utiliser la boîte de dialogue Mise en page en mode masqué pour définir plusieurs propriétés de configuration de page sans entrée utilisateur. Les exemples utilisent un Dialog objet pour configurer une taille de page personnalisée. Les paramètres spécifiques pour la configuration de page, tels que la marge supérieure, la marge inférieure, etc., sont disponibles en tant que propriétés liées tardives de l’objet Dialog . Ces propriétés sont créées dynamiquement par Word au moment de l’exécution.

L’exemple suivant montre comment effectuer cette tâche dans les projets Visual Basic où Option Strict est désactivée et dans les projets Visual C# qui ciblent .NET Framework 4. Dans ces projets, vous pouvez utiliser des fonctionnalités de liaison tardive dans les compilateurs Visual Basic et Visual C#. Pour utiliser cet exemple, exécutez-le à partir de la classe ou ThisAddIn de la ThisDocument classe dans votre projet.

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();

L’exemple suivant montre comment effectuer cette tâche dans les projets Visual Basic sur lesquels Option Strict est activée. Dans ces projets, vous devez utiliser la réflexion pour accéder aux propriétés liées tardivement. Pour utiliser cet exemple, exécutez-le à partir de la classe ou ThisAddIn de la ThisDocument classe dans votre projet.

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