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


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

Обновлен: Ноябрь 2007

Применение

Сведения, приведенные в данном разделе, относятся только к указанным проектам Visual Studio Tools for Office и версиям Microsoft Office.

Тип проекта

  • Проекты уровня документа

  • Проекты уровня приложения

Версия Microsoft Office

  • Word 2003

  • Word 2007

Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов.

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

Пример

Friend Sub PageSetupDialogHidden()
    Dim dlg 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 dlg
        .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
End Sub
private void PageSetupDialogHidden() 
{ 
    Word.Dialog dlg = Application.Dialogs[Word.WdWordDialog.wdDialogFilePageSetup];

    invokeHelper(dlg,"PageWidth","3.3\"");
    invokeHelper(dlg,"PageHeight","6\"");
    invokeHelper(dlg,"TopMargin","0.71\"");
    invokeHelper(dlg,"BottomMargin","0.81\"");
    invokeHelper(dlg,"LeftMargin","0.66\"");
    invokeHelper(dlg,"RightMargin","0.66\"");
    invokeHelper(dlg,"HeaderDistance","0.28\"");
    invokeHelper(dlg,"Orientation","0");
    invokeHelper(dlg,"DifferentFirstPage","0");
    invokeHelper(dlg,"FirstPage","0");
    invokeHelper(dlg,"OtherPages","0");

    // Apply these settings only to the current selection with this line of code:
    invokeHelper(dlg,"ApplyPropsTo","3"); 

    // Apply the settings.
    dlg.Execute(); 
}

private static void invokeHelper(Word.Dialog dlg, string member, string value)
{
    System.Type dlgType = typeof(Word.Dialog);

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

Компиляция кода

Выполните этот код из класса ThisDocument или ThisAddIn своего проекта Visual Studio Tools for Office.

Данный пример использует перечисление wdDialogFilePageSetup для установки нескольких свойств диалогового окна параметров страницы без участия пользователя. Код использует объект Dialog для настройки пользовательского размера страницы.

Пример для Visual Basic требует наличия инструкции Option Strict Off. Это необходимо, так как ни один из указанных параметров — TopMargin (верхнее поле), BottomMargin (нижнее поле) и т. д. — не является членом класса Dialog. Доступ к этим свойствам осуществляется через позднее связывание, потому что они динамически создаются Word во время выполнения при создании перечисления wdDialogFilePageSetup. Фактически, эти свойства создаются во время выполнения и соответствуют элементам управления каждого отдельного диалогового окна.

bhy5dcs0.alert_note(ru-ru,VS.90).gifПримечание.

Можно сделать код более структурным, поместив строки, требующие наличия инструкции Option Strict Off, в отдельный класс.

См. также

Задачи

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

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

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