Como: Use as caixas de diálogo do Word no modo oculto

Você pode executar operações complexas com um método de chamada invocando caixas de diálogo internas do Word de Microsoft Office sem exibi-los para o usuário. Você pode fazer isso usando o Execute método o Dialog objeto sem a chamada a Display método.

Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de nível de aplicativo para Word 2007 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

Examples

Os exemplos de código a seguir demonstram como usar o Página de instalação caixa de diálogo no modo oculto para definir propriedades de configuração de página vários com nenhuma intervenção do usuário. Os exemplos usam uma Dialog o objeto para configurar um tamanho de página personalizado. As configurações específicas para a configuração de página, como, por exemplo, a margem superior, margem inferior e assim por diante, estão disponíveis como propriedades de ligação tardia da Dialog objeto. Essas propriedades são criadas dinamicamente pelo Word em tempo de execução.

O exemplo a seguir demonstra como realizar essa tarefa em projetos de Visual Basic onde Option Strict está desativado e em projetos do Visual C# destinados a .NET Framework 4. Nesses projetos, você pode usar os recursos de ligação tardia em que os compiladores de Visual Basic e C# Visual. Para usar esse exemplo, executá-lo do ThisDocument ou ThisAddIn classe no projeto.

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

O exemplo a seguir demonstra como realizar essa tarefa em projetos de Visual Basic onde Option Strict está no e em projetos do Visual C# destinados a.NET Framework 3.5. Nesses projetos, você deve usar a reflexão para acessar as propriedades de ligação tardia. Para usar esse exemplo, executá-lo do ThisDocument ou ThisAddIn classe no projeto.

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

Consulte também

Tarefas

Como: Use as caixas de diálogo internas do Word

Ligação tardia em soluções do Office

Referência

Reflexão (C# e Visual Basic)

Outros recursos

Palavra Overview do modelo de objeto