利用VBA 增强窗体的交互性--使用对话框

时间:2013.05.23频道:Word

可以利用对话框和窗体使word 文档更加人性化,增强文档的交互性。可以使用Word 内置的对话框,也可以自定义对话框。也可以在窗体中增加反映用户的如进行鼠标单击或者按下键盘等事件的代码,以响应用户的各种操作。 12.1 使用对话框 对话框有Word 内置的对话

可以利用对话框和窗体使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 自定义对话框

利用VBA
创建一个自定义对话框非常简单,方法如下:
(1)打开Visual Basic 编辑器,选定一个文档的工程。
(2)单击【插入】菜单中的【用户窗体】命令,此时弹出一个名为UserForm1 的窗体,并自动弹出一个工具箱。
(3)根据需要,在工具箱中选择相应的控件,绘制需要的对象,如图12-1 所示。
(4)选中某个对象,单击右键,在弹出的快捷菜单中选择【属性】菜单项,打开【属性】窗口,设置各个对象的属性。如字体、显示的标题、名称等。
设置完毕后,就可以在某个过程中调用自定义的对话框,调用的语句是:
UserForm1.show
如果要使对话框中的两个按钮响应用户的操作,还需要为它们添加代码。方法是:双击该按钮,即可打开【代码】窗口,然后选择相应的事件,添加合适的代码,如图12-2 所示。
如果需要,还可以对窗体中的各个对象的各个事件添加代码,以使对象响应不同的事件。其中窗体本身也是一个对象,一样有各种不同的事件,也需要设置其相应的属性。具体的操作方法,用户可以参考有关的Visual Basic 编程的书籍。
利用VBA
利用VBA
按下F5 键,或者有个过程调用了该对话框,即可显示如图12-3 所示的对话框,输入正确的密码后单击【确定】按钮,即可弹出相应的消息框。
利用VBA
如果单击【退出】按钮,将退出该对话框。

相关阅读Readings
  • 利用Word打开最后编辑的文档

    如何利用word快速打开最后编辑和工作的文档的技巧手段,现在用WORD的朋友大部分都是懒人,不断的寻找各种技巧,有的就需要在下一次使用的...

    05.08
  • 利用版本信息保存所有修改版本的Word文档

    我们在编写稿件时,可能会经过多人、多次修改,虽然word为"修订"提供了一部分功能,要想保存各修改版本的内容还是有一定难度。其实我们可...

    03.20
  • 将Word文档按分页另存为多个Word文件的VBA代码

    有时候需要将一个word文档每一页另存为一个word文档,如果手工操作,量大会累死人的。今天我们用VBA来实现批量自动处理。在文档的ThisDoc...

    03.29
  • Shift + F2键的组合妙用

    隐藏在word中更简单,更好地利用命令复制案文,但它并不是很难找到这个词的球迷隐藏在小的特点。需要复制选定的文本,请按Shift + F2键的...

    03.29
  • Word小技巧:让你的Word文档瘦身

    利用word生成的文档,每页至少在20KB左右,但看到用记事本生成的文档,相同的内容只有1KB左右,能让Word也减减肥吗?其实我们可以采用一些...

    04.02
留言评论Comment
Copyright © 2010-2017 XPlaySoft.com 软件玩家 All Rights Reserved 粤ICP备12021207号