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


Отображение встроенных диалоговых окон Word

Этот раздел содержит сведения и примеры в следующих разделах.

Отображение встроенного диалогового окна

Вы можете отобразить встроенное диалоговое окно для ввода данных пользователем или управления Word с помощью Visual Basic для приложений (VBA). Метод Show объекта Dialog отображает и выполняет все действия, выполненные во встроенном диалоговом окне Word. Чтобы получить доступ к определенному встроенному диалоговому окку Word, необходимо указать константу WdWordDialog со свойством Dialogs . Например, следующая инструкция макроса отображает диалоговое окно Открыть (wdDialogFileOpen).

Sub ShowOpenDialog() 
 Dialogs(wdDialogFileOpen).Show 
End Sub

Если выбран файл и нажат ОК , файл открывается (выполняется действие). В следующем примере отображается диалоговое окно Печать (wdDialogFilePrint).

Sub ShowPrintDialog() 
 Dialogs(wdDialogFilePrint).Show 
End Sub

Задайте свойство DefaultTab для доступа к определенной вкладке в диалоговом окне Word. В следующем примере отображается вкладка Граница страницы в диалоговом окне Границы и заливка .

Sub ShowBorderDialog() 
 With Dialogs(wdDialogFormatBordersAndShading) 
 .DefaultTab = wdDialogFormatBordersAndShadingTabPageBorder 
 .Show 
 End With 
End Sub

Примечание.

Вы также можете использовать свойства VBA в Word для отображения сведений о пользователе без отображения диалогового окна. В следующем примере свойство UserName объекта Application используется для отображения имени пользователя для приложения без отображения диалогового окна Сведения о пользователе .

Sub DisplayUserInfo() 
 MsgBox Application.UserName 
End Sub

Если имя пользователя изменено в предыдущем примере, это изменение не задается в диалоговом окне. Используйте метод Execute для выполнения параметров в диалоговом окне без отображения диалогового окна. В следующем примере отображается диалоговое окно Сведения о пользователе , и если имя не является пустой строкой, параметры задаются в диалоговом окне с помощью метода Execute .

Sub ShowAndSetUserInfoDialogBox() 
 With Dialogs(wdDialogToolsOptionsUserInfo) 
 .Display 
 If .Name <> "" Then .Execute 
 End With 
End Sub

Примечание.

Используйте свойства и методы VBA в Word, чтобы задать сведения о пользователе без отображения диалогового окна. В следующем примере кода имя пользователя изменяется с помощью свойства UserName объекта Application , а затем отображается диалоговое окно Сведения о пользователе , чтобы показать, что изменения были внесены. Обратите внимание, что отображение диалогового окна не требуется для изменения значения диалогового окна.

Sub SetUserName() 
 Application.UserName = "Jeff Smith" 
 Dialogs(wdDialogToolsOptionsUserInfo).Display 
End Sub

Возврат и изменение параметров диалогового окна

Не очень эффективно использовать объект Dialog для возврата или изменения значения диалогового окна, если его можно вернуть или изменить с помощью свойства или метода. Кроме того, в большинстве, если не во всех случаях код VBA используется вместо доступа к объекту Dialog , код становится проще и короче. Таким образом, следующие примеры также включают примеры, использующие соответствующие свойства VBA для выполнения одинаковых задач.

Перед возвратом или изменением параметра диалогового окна с помощью объекта Dialog необходимо определить отдельное диалоговое окно. Для этого используется свойство Dialogs с константой WdWordDialog . После создания экземпляра объекта Dialog можно вернуть или задать параметры в диалоговом окне. В следующем примере отображается правый отступ в диалоговом окне Абзацы .

Sub ShowRightIndent() 
 Dim dlgParagraph As Dialog 
 Set dlgParagraph = Dialogs(wdDialogFormatParagraph) 
 MsgBox "Right indent = " & dlgParagraph.RightIndent 
End Sub

Примечание.

Используйте свойства и методы VBA Word для отображения правого отступа для абзаца. В следующем примере свойство RightIndent объекта ParagraphFormat используется для отображения отступа вправо для абзаца в позиции точки вставки.

Sub ShowRightIndexForSelectedParagraph() 
 MsgBox Selection.ParagraphFormat.RightIndent 
End Sub

Так же, как вы можете вернуть параметры диалогового окна, можно также задать параметры диалогового окна. В следующем примере в диалоговом окне Абзац помечается флажок Сохранить с помощью следующего.

Sub SetKeepWithNext() 
 With Dialogs(wdDialogFormatParagraph) 
 .KeepWithNext = 1 
 .Execute 
 End With 
End Sub

Примечание.

Вы также можете использовать свойства и методы VBA для изменения отступа вправо для абзаца. В следующем примере свойство KeepWithNext объекта ParagraphFormat используется для сохранения выбранного абзаца со следующим абзацем.

Sub SetKeepWithNextForSelectedParagraph() 
 Selection.ParagraphFormat.KeepWithNext = True 
End Sub

Примечание.

Используйте метод Update , чтобы убедиться, что значения диалогового окна отражают текущие значения. Возможно, потребуется использовать метод Update , если вы определите переменную диалогового окна в начале макроса, а затем захотите вернуть или изменить текущие параметры.

Проверка закрытия диалогового окна

Значение, возвращаемое методами Show и Display , указывает, какая кнопка была нажата, чтобы закрыть диалоговое окно. В следующем примере отображается диалоговое окно Разрыв , и если щелкнуть ОК , в строке состояния отображается сообщение.

Sub DialogBoxButtons() 
 If Dialogs(wdDialogInsertBreak).Show = -1 Then 
 StatusBar = "Break inserted" 
 End If 
End Sub

В следующей таблице описаны возвращаемые значения, связанные с кнопками в диалоговых окнах.

Возвращаемое значение Описание
–2 Кнопка Закрыть .
–1 Кнопка ОК .
0 (ноль) Кнопка Отмена .
> 0 (ноль) Кнопка команды: 1 — первая кнопка, 2 — вторая кнопка и т. д.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.