显示内置 Word 对话框
本主题包含以下部分中的信息和示例。
显示内置对话框
可以显示内置对话框来获取用户输入或使用 Visual Basic for Applications (VBA) 来控制 Word。 The Show method of the Dialog object displays and executes any action taken in a built-in Word dialog box. To access a particular built-in Word dialog box, you specify a WdWordDialog constant with the Dialogs property. 例如,下面的宏指令显示“打开”对话框 (wdDialogFileOpen)。
Sub ShowOpenDialog()
Dialogs(wdDialogFileOpen).Show
End Sub
选定文件并单击“确定”按钮后,会将文件打开(执行操作)。 下列示例显示“打印”对话框 (wdDialogFilePrint)。
Sub ShowPrintDialog()
Dialogs(wdDialogFilePrint).Show
End Sub
Set the DefaultTab property to access a particular tab in a Word dialog box. 以下示例在“边框和底纹”对话框中显示“页面边框”选项卡。
Sub ShowBorderDialog()
With Dialogs(wdDialogFormatBordersAndShading)
.DefaultTab = wdDialogFormatBordersAndShadingTabPageBorder
.Show
End With
End Sub
注意
You can also use the VBA properties in Word to display the user information without displaying the dialog box. The following example uses the UserName property for the Application object to display the user name for the application without displaying the User Information dialog box.
Sub DisplayUserInfo()
MsgBox Application.UserName
End Sub
If the user name is changed in the previous example, the change is not set in the dialog box. Use the Execute method to execute the settings in a dialog box without displaying the dialog box. The following example displays the User Information dialog box, and if the name is not an empty string, the settings are set in the dialog box by using the Execute method.
Sub ShowAndSetUserInfoDialogBox()
With Dialogs(wdDialogToolsOptionsUserInfo)
.Display
If .Name <> "" Then .Execute
End With
End Sub
注意
[!注释] 使用 Word 中的 VBA 属性和方法可设置用户信息而不显示对话框。 下列代码示例通过 Application 对象的 UserName 属性更改用户名称,然后显示 "用户信息" 对话框,显示已进行了更改。 请注意,更改对话框值时,并非必须显示对话框。
Sub SetUserName()
Application.UserName = "Jeff Smith"
Dialogs(wdDialogToolsOptionsUserInfo).Display
End Sub
返回和更改对话框设置
当可以使用属性或方法返回或更改对话框的值时,使用 Dialog 对象返回或更改对话框的值并不十分有效。 而且在大多数情况下(如果不是在所有情况下),当使用 VBA 代码来代替访问 Dialog 对象时,代码更简单、更简短。 因此,下面的示例同时包含使用相应的 VBA 属性执行相同任务的示例。
Prior to returning or changing a dialog box setting using the Dialog object, you need to identify the individual dialog box. This is done by using the Dialogs property with a WdWordDialog constant. After you have instantiated a Dialog object, you can return or set options in the dialog box. The following example displays the right indent from the Paragraphs dialog box.
Sub ShowRightIndent()
Dim dlgParagraph As Dialog
Set dlgParagraph = Dialogs(wdDialogFormatParagraph)
MsgBox "Right indent = " & dlgParagraph.RightIndent
End Sub
注意
使用 Word 的 VBA 属性和方法显示段落的右缩进设置。 下面的示例使用 ParagraphFormat 对象的 RightIndent 属性显示插入点位置所在段落的右缩进。
Sub ShowRightIndexForSelectedParagraph()
MsgBox Selection.ParagraphFormat.RightIndent
End Sub
类似于返回对话框值,您也可以设置对话框值。 下列示例标记 "段落" 对话框中的 "与下段同页" 复选框。
Sub SetKeepWithNext()
With Dialogs(wdDialogFormatParagraph)
.KeepWithNext = 1
.Execute
End With
End Sub
注意
还可以使用 VBA 属性和方法更改段落的右缩进。 以下示例使用 ParagraphFormat 对象的 KeepWithNext 属性将所选段落与以下段落一起保留。
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
下面的表格说明了与对话框中的按钮关联的返回值。
返回值 | Description |
---|---|
-2 | The Close button. |
-1 | The OK button. |
0(零) | The Cancel button. |
> 0 (zero) | 命令按钮:1 代表第一个按钮,2 代表第二个按钮,依此类推。 |
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。