在我们前面的例子中,一直用了这样的语句:MsgBox prompt[, buttons] [, title] ,虽然在消息框中显示了多个按钮,可是不管按下哪个按钮效果都是一样的:继续执行下一条语句。这就失去了我们设置消息框的作用,我们希望通过消息框获得用户对当前操作的选择。
要获得用户单击了哪一个按钮就需要用到 MsgBox 函数,MsgBox 函数语法如下:
MsgBox(prompt[, buttons] [, title] [, helpfile, context])
先声明一个 Integer 类型的变量,然后让这个变量等于 MsgBox 函数即可。如:
Dim userchoice as Integer
userchoice := MsgBox("第三个按钮是缺省值的例子", 3 + 64 + 512, "消息框演示")
userchoice 将等于1-7中的一个值,返回值的定义如下表:
消息框按钮的返回值
VBA常量名称
|
值 |
描述 |
vbOK |
1 |
确定 |
vbCancel |
2 |
取消 |
vbAbort |
3 |
放弃 |
vbRetry |
4 |
重试 |
vbIgnore |
5 |
忽略 |
vbYes |
6 |
是 |
vbNo |
7 |
否 |
当获得了用户单击了哪一个按钮后,就可以根据用户的选择执行不同的语句。形式如下:
Select Case userchoice
' 判断 userchoice 的值
Case 3 '
userchoice 的值是3,转向处理放弃的程序
Goto pro_Abort
Case 4 '
userchoice 的值是4,转向处理重试的程序
Goto pro_Retry
Case 5 '
userchoice 的值是5,转向处理忽略的程序
Goto pro_Ignore
End Select
《双胞胎工作室》提供
来福/文