可以利用对话框和窗体使Word 文档更加人性化,增强文档的交互性。可以使用Word 内置的对话框,也可以自定义对话框。也可以在窗体中增加反映用户的如进行鼠标单击或者按下键盘等事件的代码,以响应用户的各种操作。
12.1 使用对话框 对话框有Word 内置的对话框,用户也可以自定义需要的对话框。
12.1.1 显示 Word 内置对话框 用 Visual Basic 可显示一个内置对话框以获取用户输入,或者控制 Word.Dialog 对象的 Show 方法显示和处理任一来自 Word 内置对话框的操作。通过指定 WdWordDialog 常量的 Dialogs 属性可访问某一Word 内置对话框。例如,下列宏显示【打开】对话框。 Dialogs(wdDialogFileOpen).Show 选定文件并单击【确定】按钮后,文件被打开(该操作被执行)。下例显示打印对 话框。 Dialogs(wdDialogFilePrint).Show 设置 DefaultTab 属性可以访问 Word 对话框的特定制表符位置。下例显示【格式】菜单下【边框和底纹】对话框中的页边框项。
With Dialogs(wdDialogFormatBordersAndShading) .DefaultTab = wdDialogFormatBordersAndShadingTabPageBorder .Show End With
Display 方法显示对话框但不处理来自对话框的操作。如果要用对话框来提示用户并返回设置,此方法比较有用。例如,下列宏指令显示【选项】对话框中的【用户信息】选项卡,并且返回和显示用户啤?br> With Dialogs(wdDialogToolsOptionsUserInfo) .Display MsgBox .Name End With
如在上例中修改了用户名称,则这个变化不会影响对话框的设置。用 Execute 方法可以执行一个对话框中的设置,但不显示该对话框。下例显示了【用户信息】对话框,如果名称不是空字符串,则使用 Execute 方法设置对话框中的项目。
With Dialogs(wdDialogToolsOptionsUserInfo) .Display If .Name <> "" Then .Execute End With
12.1.2 返回和修改对话框设置 返回或修改对话框设置之前, 需要标识对话框。用带有 WdWordDialog 常量的 Dialogs 属性完成这一操作。下例返回一个参考格式菜单中段落对话框的 Dialog 对象。 Set myDialog = Dialogs(wdDialogFormatParagraph) 获得 Dialog 对象后即可返回或设置对话框中的选项。下例显示从段落对话框获得的右缩进值。 Set myDialog = Dialogs(wdDialogFormatParagraph) Msgbox "Right indent = " & myDialog.RightIndent 许多Word 内置对话框具有这样的参数,它们可使用户从对话框中取值或对其进行设置(例如,上例中的 RightIndent)。 返回对话框设置的同时,还可以设定对话框的设置。下例在【段落】对话框中的【与下段同】复选框做了标记。
With Dialogs(wdDialogFormatParagraph) .KeepWithNext = 1 .Execute End With
上例将【与下段同】检查框设为有效,并用 Execute 方法设置了对话框中的值。下列 Visual Basic 指令和上例的四条指令等价。 Selection.Paragraphs(1).KeepWithNext = True 对于修改用属性或方法设置的值而言,用 Dialog 对象并非有效。 用户可用 Update 方法确定对话框中的值是否和当前值一致。如果已经在宏中设置了对话框变量的值,只需要返回或修改当前设置,可用 Update 方法。
12.1.3 预定对话框设置 上例返回和设定了对话框的值,但没有显示该对话框。用户还可在用 Show 方法前,修改 Word 内置对话框的设置。例如,可在显示【编辑】菜单中的【替换】对话框之前修改要查找的文字。下例显示【替换】对话框,并在【查找内容】编辑框中填入【Blue】。
With Dialogs(wdDialogEditFind) .Find = "Blue" .Show End With 下例显示【打开】对话框及所有文件名。 With Dialogs(wdDialogFileOpen) .Name = "*.*" .Show End With
[NextPage]
12.1.4 检查一个对话框的关闭方式 由 Show 和 Display 方法返回的值显示了对话框关闭时所单击的按钮。下例显示【分隔符】对话框,如单击【确定】按钮,则在状态栏中显示一条消息。
If Dialogs(wdDialogInsertBreak)Show = -1 Then StatusBar = "Break inserted" End If
表12-1 列出了返回的值与显示对话框关闭时所单击的按钮的关系。
12.1.5 自定义对话框
创建一个自定义对话框非常简单,方法如下: (1)打开Visual Basic 编辑器,选定一个文档的工程。 (2)单击【插入】菜单中的【用户窗体】命令,此时弹出一个名为UserForm1 的窗体,并自动弹出一个工具箱。 (3)根据需要,在工具箱中选择相应的控件,绘制需要的对象,如图12-1 所示。 (4)选中某个对象,单击右键,在弹出的快捷菜单中选择【属性】菜单项,打开【属性】窗口,设置各个对象的属性。如字体、显示的标题、名称等。 设置完毕后,就可以在某个过程中调用自定义的对话框,调用的语句是: UserForm1.show 如果要使对话框中的两个按钮响应用户的操作,还需要为它们添加代码。方法是:双击该按钮,即可打开【代码】窗口,然后选择相应的事件,添加合适的代码,如图12-2 所示。 如果需要,还可以对窗体中的各个对象的各个事件添加代码,以使对象响应不同的事件。其中窗体本身也是一个对象,一样有各种不同的事件,也需要设置其相应的属性。具体的操作方法,用户可以参考有关的Visual Basic 编程的书籍。
按下F5 键,或者有个过程调用了该对话框,即可显示如图12-3 所示的对话框,输入正确的密码后单击【确定】按钮,即可弹出相应的消息框。
如果单击【退出】按钮,将退出该对话框。
|