在 Word 中,绝大多数功能都是通过对话框来完成的。例如,使用“打开”对话框打开一个文件;使用“段落”对话框设置段落格式;使用“选项”对话框设置选项等等。这些内置对话框在 Word 中是通过菜单命令、工具栏按钮或快捷键来调用的。如果能在程序中直接调用 Word 内置对话框,将大大简化程序设计过程,提高编程效率。下面以VBA(Visual Basic for Applications)编程语言为例,说明调用方法。
一、显示 Word 内置对话框
用 Visual Basic 可以显示一个 Word 内置对话框,通过此对话框可以获取用户输入或控制 Word。使用 Dialog 对象的 Show 方法可以显示和处理任何一个来自 Word 内置对话框的操作。通过指定 WdWordDialog 常量的 Dialogs 属性可访问某一 Word 内置对话框。例如,下列语句可显示“打开”对话框(wdDialogFileOpen)。
Dialogs(wdDialogFileOpen).Show
选定一个文件并单击“打开”按钮后,文件即被打开(该操作被执行)。下例可显示打印对话框(wdDialogFilePrint)。
Dialogs(wdDialogFilePrint).Show
设置对话框的 DefaultTab 属性可以访问 Word 对话框中的特定标签页。下面的例子显示“格式”菜单下“边框和底纹”对话框中的“页边框”标签项。
Sub 显示页边框()
With Dialogs(wdDialogFormatBordersAndShading)
.DefaultTab = wdDialogFormatBordersAndShadingTabPageBorder
.Show
End With
End Sub
还可以使用 Display 方法来显示对话框,但它只显示对话框,而不处理来自对话框的操作。如果要用对话框来提示用户并返回设置,这种方法比较有用。例如,下列语句显示“选项”对话框中的“用户信息”标签页,并且返回和显示用户名称。
Sub 显示用户名称()
With Dialogs(wdDialogToolsOptionsUserInfo)
.Display
MsgBox .Name
End With
End Sub
如果在上例中修改了用户名称,则这个变化不会影响到选项对话框中的“用户信息”项的设置。可以用 Execute 方法执行一个对话框中的设置,而又不显示该对话框。下面的例子显示了“用户信息”对话框,如果名称不是空字符串,则使用 Execute 方法设置对话框中的项目。
Sub 设置用户名称()
With Dialogs(wdDialogToolsOptionsUserInfo)
.Display
If .Name <> "" Then .Execute
End With
End Sub
如在此例中修改了用户名称,则“用户信息”中姓名项将被改变。
二、返回和修改对话框设置
在返回或修改对话框设置之前,需要标识对话框。可用带有 WdWordDialog 常量的 Dialogs 属性完成这一操作。下面的例子返回一个参考“格式”菜单中“段落”对话框的 Dialog 对象。
Set myDialog = Dialogs(wdDialogFormatParagraph)
获得 Dialog 对象后即可返回或设置对话框中的选项。下面的例子显示从段落对话框获得的右缩进值。
Set myDialog = Dialogs(wdDialogFormatParagraph)
Msgbox "右缩进值 = " & myDialog.RightIndent
在返回对话框设置的同时,还可以设定对话框的设置值(默认值)。下面的例子在“段落”对话框中的“与下段同”检查框做了标记。
With Dialogs(wdDialogFormatParagraph)
.KeepWithNext = 1
.Execute
End With
上面的例子将“与下段同”检查框设为有效,并用 Execute 方法设置了对话框中的值。下列的 Visual Basic 指令和上例的四条指令等价。
Selection.Paragraphs(1).KeepWithNext = True
还可用 Update 方法确定对话框中的值是否和当前值一致。如果已经在VBA程序中设置了对话框变量的值,只需要返回或修改当前设置,可用 Update 方法。
三、预定对话框设置
上面的例子返回和设定了对话框的值,但没有显示该对话框。还可以在用 Show 方法之前,修改 Word 内置对话框的设置值。例如,可在显示“编辑”菜单中的“查找和替换”对话框之前修改要查找的文字。下面的例子显示“查找和替换”对话框,并在“查找内容”编辑框中填入“Computer”。
With Dialogs(wdDialogEditFind)
.Find = "Computer"
.Show
End With
下面的例子则显示”打开“对话框并显示所有的文件名。
With Dialogs(wdDialogFileOpen)
.Name = "*.*"
.Show
End With
四、检查一个对话框的关闭方式
用 Show 和 Display 方法可以返回一个值,这个值指出了对话框关闭时所点击的按钮。
返回值 点击的按钮
-2 关闭(Close)按钮。
-1 确定(OK)按钮。
0 (zero) 取消(Cancel)按钮。
> 0 (zero) 一个命令按钮:1 为第一个按钮,2 为第二个按钮,等等。
下面的例子显示”分隔符“对话框,如单击“确定”按钮,则在状态栏中显示一条消息。
If Dialogs(wdDialogInsertBreak).Show = -1 Then
StatusBar = "已插入分隔符"
End If(陈如同)
|