Отображение встроенных диалоговых окон 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 и обратная связь.