Usar mediante programación cuadros de diálogo de Word en modo oculto

Puede realizar operaciones complejas con una llamada de método invocando los cuadros de diálogo integrados en Microsoft Office Word sin mostrarlos al usuario. Puede hacerlo mediante el Execute método del Dialog objeto sin llamar al Display método .

Se aplica a: la información de este tema se aplica a proyectos de nivel de documento y proyectos de complementos de VSTO para Word. Para obtener más información, consulte Características disponibles por aplicación de Office lication y tipo de proyecto.

Ejemplos

En los ejemplos de código siguientes se muestra cómo usar el cuadro de diálogo Configurar página en modo oculto para establecer varias propiedades de configuración de página sin entrada de usuario. Los ejemplos usan un Dialog objeto para configurar un tamaño de página personalizado. La configuración específica para la configuración de páginas, como el margen superior, el margen inferior, etc., están disponibles como propiedades enlazadas en tiempo de ejecución del Dialog objeto. Word crea dinámicamente estas propiedades en tiempo de ejecución.

En el ejemplo siguiente se muestra cómo realizar esta tarea en proyectos de Visual Basic donde Option Strict está desactivado y en proyectos de Visual C# que tienen como destino .NET Framework 4. En estos proyectos, puede usar características de enlace en tiempo de demora en los compiladores de Visual Basic y Visual C#. Para usar este ejemplo, ejecútelo desde la ThisDocument clase o ThisAddIn del proyecto.

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

En el ejemplo siguiente se muestra cómo realizar esta tarea en proyectos de Visual Basic en los que Option Strict está activado. En estos proyectos, debe usar la reflexión para acceder a las propiedades enlazadas en tiempo de ejecución. Para usar este ejemplo, ejecútelo desde la ThisDocument clase o ThisAddIn del proyecto.

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