Поделиться через


Практическое руководство. Программное использование диалоговых окон Word в скрытом режиме

Можно выполнять сложные операции на встроенных диалоговых окнах Microsoft Office Word посредством вызова одного метода, не показывая эти окна пользователю.Используйте для этого метод Execute объекта Dialog, не вызывая метод Display.

Применение. Сведения этого раздела применяются к проектам уровня документа и уровня приложения для Word 2013 и Word 2010. Дополнительные сведения см. в разделе Доступность функций по типам приложений Office и проектов.

Примеры

В следующих примерах кода демонстрируется использование диалогового окна Настройка страницы в скрытом режиме для задания свойств нескольких страниц без ввода информации пользователем.Для настройки пользовательского размера страницы в примерах используется объект Dialog.Указанные параметры — TopMargin (верхнее поле), BottomMargin (нижнее поле) и т. д. — доступны в качестве свойств с поздним связыванием объекта Dialog.Эти свойства динамически создаются приложением Word во время выполнения.

В следующем примере показано выполнение этой задачи в проектах Visual Basic с выключенным параметром Option Strict и в проектах Visual C# для .NET Framework 4.В этих проектах возможно изменение функций позднего связывания для компиляторов Visual Basic и Visual C#.Чтобы использовать следующий пример кода, запустите его в проекте из класса ThisDocument или ThisAddIn.

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

В следующем примере показано выполнение этой задачи в проектах Visual Basic, где Option Strict on.В этих проектах для доступа к свойствам с поздним связыванием необходимо использовать отражение.Чтобы использовать следующий пример кода, запустите его в проекте из класса ThisDocument или ThisAddIn.

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

См. также

Ссылки

Отражение (C# и Visual Basic)

Основные понятия

Практическое руководство. Программное использование встроенных диалоговых окон в Word

Позднее связывание в решениях Office

Другие ресурсы

Общие сведения об объектной модели Word