食品伙伴网服务号
 

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

放大字体  缩小字体 发布日期:2006-06-15
    可以利用对话框和窗体使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 方法显示对话框但不处理来自对话框的操作。如果要用 对话框来提示用户并返回设置,此方法比较有用。例如,下列宏指 令显示【选项】对话框中的【用户信息】选项卡,并且返回和显示 用户名称。

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

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 所示的对话框,输入正确的密码后单击【确定】按钮,即可弹出相 应的消息框。

 如果单击【退出】按钮,将退出该对话框。

 
[ 网刊订阅 ]  [ 食品专题搜索 ]  [ ]  [ 告诉好友 ]  [ 打印本文 ]  [ 关闭窗口 ] [ 返回顶部 ]

 

 
推荐图文
推荐食品专题
点击排行
 
 
Processed in 0.022 second(s), 18 queries, Memory 0.88 M