下面,继续做一些有趣的事情。让VBA能够给我们弹出对话框,让用户作出响应,实现与用户交互。这里要使用VBA的内置函数:MsgBox函数和InputBox函数。
下面,继续做一些有趣的事情。让VBA能够给我们弹出对话框,让用户作出响应,实现与用户交互。这里要使用VBA的内置函数:MsgBox函数和InputBox函数。
与Excel工作表函数一样,VBA也包含有各种内置函数,以简化计算和操作,而MsgBox函数和InputBox函数就是其中常用的函数。这里,先介绍MsgBox函数。
显示信息
MsgBox函数可以为我们提供输出信息,将VBA代码的运行结果告诉我们。看下面简单的示例,代码运行后会弹出一个对话框,如图右侧所示。
此时,Excel告诉我们相关信息,并会等待我们作出响应,单击“确定”,对话框消失。当然,这只是MsgBox函数最基本的用法。我们可以让它显示更丰富的信息,例如,显示更有意义的标题、更多的选择按钮、图标,甚至获取用户响应后的值。
将上面的程序代码修改如下:
Sub MsgBoxTest()
Dim i As Long
i = 5
MsgBox Prompt:=”变量i的值是”& i, Buttons:=vbOKCancel + vbCritical, Title:=”显示变量的值”
End Sub
运行后的结果如下图:
图中附加说明了MsgBox函数中各参数在对话框中对应的显示。
MsgBox函数的语法
MsgBox函数的语法如下:
MsgBox ( prompt [ , buttons ] [ , title ] [, helpfile , context ] )
其中,方括号内的参数为可选参数。参数说明如下图所示:
还有两个参数helpfile和context,我们暂且不要管它。
下表列出了参数buttons的值及说明:
常量值说明
vbOKOnly0只显示“确定”按钮
vbOKCancel1显示“确定”和“取消”按钮
vbAbortRetryIgnore2显示“终止”、“重试”和“忽略”按钮
vbYesNoCancel3显示“是”、“否”和“取消”按钮
vbYesNo4显示“是”和“否按钮
vbRetryCancel5显示”重试“和”取消“按钮
vbCritical16显示”关键信息“图标
vbQuestion32显示”警告询问“图标
vbExclamation48显示”警告消息“图标
vb***mation64显示”通知消息“图标
vbDefaultButton10第一个按钮为默认按钮
vbDefaultButton2256第二个按钮为默认按钮
vbDefaultButton3512第三个按钮为默认按钮
vbDefaultButton4768第四个按钮为默认按钮
vbSystemModel4096所有应用程序都暂停,直至用户对消息框作出反应
vbMsgBoxHelpButton16384显示帮助按钮
获取响应的值
在用户单击了MsgBox函数对话框中的按钮后,我们可以获取用户的行为,即用户单击了哪个按钮。这样,我们可以根据用户的选择作出相应的处理。
我们可以将MsgBox函数的结果赋给某个变量,此时需要将参数放在括号中,例如:
Sub MsgBoxTest1()
Dim Msg As Integer
Msg = MsgBox(“您要继续运行吗?”,vbYesNo)
MsgBox Msg
End Sub
代码运行结果如下图所示:
接下来,我们就可以编写代码对用户单击的选择进行相应的回应。这种情形经常使用在条件判断语句中,在述相关内容时,我们再给出使用示例。