Word VBA教程:显示内置 Word对话框

本主题包含下列信息和示例:

显示内置对话框

可以显示内置对话框以获取用户输入的信息或使用 Visual Basic 控制 Microsoft Word。Dialog对象的Show方法可显示并执行 Word 内置对话框中的任何操作。若要访问特定的内置 Word对话框,请指定具有Dialogs属性的 WdWordDialog 常量。例如,下列宏指令显示“打开”对话框 (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

Display方法显示对话框但不执行对话框的操作。如果使用内置对话框提示用户并返回设置,则该方法很有用。例如,下列宏指令显示(“工具”菜单中)“选项”对话框中的“用户信息”选项卡,然后返回并显示用户名称。


Sub DisplayUserInfoDialog()
    With Dialogs(wdDialogToolsOptionsUserInfo)
        .Display
        MsgBox .Name
    End With
End Sub

注意  您也可使用 Word 的 Visual Basic for Applications属性显示用户信息而不显示对话框。下列示例使用Application对象的UserName属性显示应用程序的用户名称,而不显示“用户信息”对话框。


Sub DisplayUserInfo()
    MsgBox Application.UserName
End Sub

如果在上例中更改用户名称,对话框设置不会发生更改。使用Execute方法可以执行对话框中的设置而不显示该对话框。下列示例显示“用户信息”对话框,如果名称不是空字符串,则可使用 Execute方法设置对话框。


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属性执行相同的任务的示例。

使用Dialog对象返回或更改对话框设置之前,需要识别单独的对话框。使用 WdWordDialog 常量的Dialogs属性可完成该操作。识别 Dialog对象后,可以返回或设置对话框中的选项。下列示例显示“段落”对话框的右缩进。


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

下列表格说明与对话框中的按钮相关联的返回值。

返回值 说明
-2 “关闭”按钮。
-1 “确定”按钮。
0(零) “取消”按钮。
> 0(零) 命令按钮:1 代表第一个按钮,2 代表第二个按钮,以此类推。

Word VBA教程

Word VBA参考教程:目录1 Word VBA参考教程:目录2
Word VBA参考教程:目录3 Word VBA参考教程:目录4
Word VBA参考教程:目录5 Word VBA参考教程:目录6
Word VBA参考教程:目录7 Word VBA参考教程:目录8
Word VBA参考教程:目录9 Word VBA参考教程:目录10
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号