Msgbox函数用法说明
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最复杂的是 Msgbox 的第二参数,它是一个数值,用于表示信息框中按钮的个数和显示 样式,且能通过它指定默认按钮。表 2 展现了 Msgbox 函数所支持的按钮常数,以及对应的 数值、显示的状态和外观。
表 2 Msgbox第二参的可选值说明
常数
值 功能
按钮示意图
vbOKOnly
0 只显示OK按钮
以上过程可在信息框中提示活动工作簿的工作表数量,结果如下图所示:
图 6 提示工作簿中的工作表数量
3.提供选项
当需要向用户提供两个选项时,通常采用 Msgbox 函数弹出一个包含“是”与“否” 两个按钮的对话框,用户单击对话框中的按钮时,VBA 会将用户的选择情况回传给 Msgbox 函数,VBA 开发者可以根据函数的回传值决定下一步的操作。例如:
Sub 宏()
'放置位置:模块中
MsgBox "您喜欢 VBA 吗?", vbYesNo, "提示"
End Sub
图 1 信息框中各部份与 Msgbox 函数的参数的对应关系
Msgbox 函数包含 5 个参数,都是可选参数。其中最重要的是第一参数,最简单的也是 第一参数,第一参数所指定的字符串将显示在信息框中间。
表 1 Msgbox函数的参数说明
参数 Prompt Buttons
说明
该参数的值将被输出到对话框中,显示在屏幕上。通常此参数用于告诉用户某个信息。它的最 大长度大约为 1024 个字符,由所用字符的宽度决定。 它表示按钮的个数、样式和排列方式,以及默认按钮是哪一个,采用数值表示。
Title
在对话框标题栏中显示的字符串表达式。如果省略 title,则将应用程序名放在标题栏中。
VbCritical
16 显示CriticalMessage图标
VbQuestion
32 显示WarningQuery图标
VbExclamation
48 显示WarningMessage图标
VbInformation
64 显示InformationMessage图标
vbDefaultButton1
接下来从这两个方面展示 Msgbox 的一些简单应用,更多的应用请看《Excel VBA 程序 开发自学宝典(第 3 版)》的正文部分
2.通知信息
绝大多数情况下使用 Msgbox 函数都是用于通知用户一条信息。例如在屏幕上显示“执 行完工”、“今天是 2013 年 12 月 31 日”等。这类过程比较简单,以下提供三个应用案例:
0 第一个按钮是缺省值
vbDefaultButton2
256 第二个按钮是缺省值
vbDefaultButton3
512 第三个按钮是缺省值
对于上表需要补充四点。 其一:Msgbox 的第二参数可以使用上表中的常数,也可以采用数值,它们功能一致。 其二:数值 0 到 5 用于确定按钮的个数和样式,16 到 64 用于确定图标的样式,256 和 512 用于分别代表默认按钮是第 2 个还是第 3 个。所谓的默认按钮是指单击回车键时被选中 的按钮,Excel 会用特殊的外观标示这个默认的按钮。当不指定默认按钮时,第一个按钮为 默认按钮。 其三:最后三行的示意图仅用于展示默认按钮的状态,三个常数的功能是指定哪一个按 钮是默认按钮,而不是产生这三个图标。如果 Msgbox 第二参数采用 3+512 能产生是、否和 取消三个按钮,且第三个按钮是默认按钮的效果。 其四:以上 3 段代码(0-5 为第一段,16 到 64 为第一段,256 和 512 为第三段)可以 相加,表示多种效果的混合应用。例如: 以下两句代码能实现图 2 所示效果:
End Sub
以上过程中 Msgbox 函数的功能是通知用户今天的日期。Date 语句用于获取当前系统 日期,将它与字符串“今天的日期是:”合并到一个字符串中需要使用连接符号“&”。
下图是过程“Test2”的执行结果:
图 5 提示今日日期 Sub test3()
MsgBox "本工作簿有" & Worksheets.Count & "个工作表", vbOKOnly + vbInformation, "友情提示" End Sub
VbOKCancel
1 显示OK及Cancel按钮
VbAbortRetryIgnore 2 显示Abort、Retry及Ignore按钮
VbYesNoCancel
3 显示Yes、No及Cancel按钮
VbYesNo
4 显示Yes及No按钮
VbRetryCancel
5 显示Retry及Cancel按钮
以上过程会弹出一个具有“是”和“否”两个按钮的信息框,如果用户单击了按钮“是”, 那么程序可以将活动工作表重命名为“总表”,如果用户单击了“否”则直接结束过程。下 图是 Msgbox 函数产生的选项窗口:
图 7 询问用户是否继续
Msgbox 函数的返回值只能是以下 7 种之一:
表 3 Msgbox的返回值一览表
Helpfile 字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件。
Context 数值表达式,由帮助文件的作者指定给适当的帮助主题的帮助上下文编号。
以下代码是 Msgbox 函数的最常用的一种形式,它使用了 prompt、 buttons、title 三个 参数,不同参数决定了信息框中的不同位置的部件,效果如下图所示:
Sub test4() '如果在信息框中选择了“是”,那么对活动工作表重命名为“总表” If MsgBox("将活动工作表命名为总表,继续请选是,放弃请选否", vbYesNo + vbQuestion, "操
作选项") = vbYes Then ActiveSheet.Name = "总表" End Sub
图 3 效果二
以下代码能实现图 4 错误!未找到引用源。所示效果(0 到 5 段未指定则默认当作 0 处理, 即“确定”按钮):
MsgBox "VBA 很棒!", vbExclamation
图 4 效果三
使用 Msgbox 函数的场合有两种,其一是弹出一个信息框,用于通知用户一条消息。 其二是弹出一个具有多个按钮的信息框供用户选择,从而获知用户选择答案。
Worksheets.Add before:=Sheets("Sheet1") '在 sheet1 之前新建一个工作表
Else
'否则(表示选择了“否”)
Worksheets.Add after:=Sheets("Sheet1") '在 sheet1 之后新建一个工作表
End If
End Sub
以上过程可以弹出一个包含“是”与“否”两个按钮的信息框,当选择“是”时会在
MsgBox "VBA 很棒!", 1 + 64
或者:
MsgBox "VBA 很棒!", vbOKCancel + vbInformation
图 2 效果一
以下两句代码能实现图 3 所示效果:
MsgBox "VBA 很棒?", 4 + 32 + 256
或者:
MsgBox "VBA 很棒?", vbYesNo + vbQuestion + vbDefaultButton2
Msgbox 函数的功能是弹出一个消息对话框,并等待用户单击窗口中的按钮。函数可以 返回一个值,该值用于说明用户单击了哪一个按钮。
1.函数语法
Msgbox 函数的语法如下(查询帮助的关键字:MsgBox 函数): MsgBox(prompt[, buttons] [, title] [, helpfile, context])
Sub test() '...更多代码... MsgBox "程序运行完毕", vbOKOnly, "友情提示"
End Sub
以上过程中 Msgbox 函数的功能是通知用户“程序已运行完毕”,在信息框中有一个“确 定”按钮。
Sub test2() MsgBox "今天的日期是:" & Date, vbOKOnly + vbInformation, "友情提示"
返回值
含义
vbAbort vbRetry vbCancel
中止 重试 取消
vbOK vbIgnore
确定 忽略
vbNo
否
vbYes
是
当需要获取 Msgbox 函数的返回值时,Msgbox 函数总是与条件语句 If Then 配合使用。
Hale Waihona Puke BaiduSub test5()
Dim msg As VbMsgBoxResult '声明一个变量
基于以上理由,Msgbox 函数在工作中应用相当广。在《Excel VBA 程序开发自学宝典(第 3 版)》正文中也会有大量的关于 Msgbox 的应用。
'通过 msgbox 函数弹出一个具有两个按钮的信息框让用户选择,并将选择情况回传给变量 msg
msg = MsgBox("选择是:在 Sheet1 之前新建一个工作表。" & Chr(13) & "选择否:在 Sheet1 之后
新建一个工作表", vbYesNo, "操作选项")
If msg = vbYes Then '如果在信息框中选择了“是”
Sheet1 之前新建一个工作表,当选择“否则”时则在 Sheet1 后新建一个工作表。选择界面
如下图所示:
图 8 让用户选择新建工作表的位置
4.总结
Msgbox 函数能弹出信息框,达到警示、通知和提示用户的作用,还可以为用户弹出包 含两个或者三个选项的对话框,并根据用户的选择情况做出不同的反应。
表 2 Msgbox第二参的可选值说明
常数
值 功能
按钮示意图
vbOKOnly
0 只显示OK按钮
以上过程可在信息框中提示活动工作簿的工作表数量,结果如下图所示:
图 6 提示工作簿中的工作表数量
3.提供选项
当需要向用户提供两个选项时,通常采用 Msgbox 函数弹出一个包含“是”与“否” 两个按钮的对话框,用户单击对话框中的按钮时,VBA 会将用户的选择情况回传给 Msgbox 函数,VBA 开发者可以根据函数的回传值决定下一步的操作。例如:
Sub 宏()
'放置位置:模块中
MsgBox "您喜欢 VBA 吗?", vbYesNo, "提示"
End Sub
图 1 信息框中各部份与 Msgbox 函数的参数的对应关系
Msgbox 函数包含 5 个参数,都是可选参数。其中最重要的是第一参数,最简单的也是 第一参数,第一参数所指定的字符串将显示在信息框中间。
表 1 Msgbox函数的参数说明
参数 Prompt Buttons
说明
该参数的值将被输出到对话框中,显示在屏幕上。通常此参数用于告诉用户某个信息。它的最 大长度大约为 1024 个字符,由所用字符的宽度决定。 它表示按钮的个数、样式和排列方式,以及默认按钮是哪一个,采用数值表示。
Title
在对话框标题栏中显示的字符串表达式。如果省略 title,则将应用程序名放在标题栏中。
VbCritical
16 显示CriticalMessage图标
VbQuestion
32 显示WarningQuery图标
VbExclamation
48 显示WarningMessage图标
VbInformation
64 显示InformationMessage图标
vbDefaultButton1
接下来从这两个方面展示 Msgbox 的一些简单应用,更多的应用请看《Excel VBA 程序 开发自学宝典(第 3 版)》的正文部分
2.通知信息
绝大多数情况下使用 Msgbox 函数都是用于通知用户一条信息。例如在屏幕上显示“执 行完工”、“今天是 2013 年 12 月 31 日”等。这类过程比较简单,以下提供三个应用案例:
0 第一个按钮是缺省值
vbDefaultButton2
256 第二个按钮是缺省值
vbDefaultButton3
512 第三个按钮是缺省值
对于上表需要补充四点。 其一:Msgbox 的第二参数可以使用上表中的常数,也可以采用数值,它们功能一致。 其二:数值 0 到 5 用于确定按钮的个数和样式,16 到 64 用于确定图标的样式,256 和 512 用于分别代表默认按钮是第 2 个还是第 3 个。所谓的默认按钮是指单击回车键时被选中 的按钮,Excel 会用特殊的外观标示这个默认的按钮。当不指定默认按钮时,第一个按钮为 默认按钮。 其三:最后三行的示意图仅用于展示默认按钮的状态,三个常数的功能是指定哪一个按 钮是默认按钮,而不是产生这三个图标。如果 Msgbox 第二参数采用 3+512 能产生是、否和 取消三个按钮,且第三个按钮是默认按钮的效果。 其四:以上 3 段代码(0-5 为第一段,16 到 64 为第一段,256 和 512 为第三段)可以 相加,表示多种效果的混合应用。例如: 以下两句代码能实现图 2 所示效果:
End Sub
以上过程中 Msgbox 函数的功能是通知用户今天的日期。Date 语句用于获取当前系统 日期,将它与字符串“今天的日期是:”合并到一个字符串中需要使用连接符号“&”。
下图是过程“Test2”的执行结果:
图 5 提示今日日期 Sub test3()
MsgBox "本工作簿有" & Worksheets.Count & "个工作表", vbOKOnly + vbInformation, "友情提示" End Sub
VbOKCancel
1 显示OK及Cancel按钮
VbAbortRetryIgnore 2 显示Abort、Retry及Ignore按钮
VbYesNoCancel
3 显示Yes、No及Cancel按钮
VbYesNo
4 显示Yes及No按钮
VbRetryCancel
5 显示Retry及Cancel按钮
以上过程会弹出一个具有“是”和“否”两个按钮的信息框,如果用户单击了按钮“是”, 那么程序可以将活动工作表重命名为“总表”,如果用户单击了“否”则直接结束过程。下 图是 Msgbox 函数产生的选项窗口:
图 7 询问用户是否继续
Msgbox 函数的返回值只能是以下 7 种之一:
表 3 Msgbox的返回值一览表
Helpfile 字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件。
Context 数值表达式,由帮助文件的作者指定给适当的帮助主题的帮助上下文编号。
以下代码是 Msgbox 函数的最常用的一种形式,它使用了 prompt、 buttons、title 三个 参数,不同参数决定了信息框中的不同位置的部件,效果如下图所示:
Sub test4() '如果在信息框中选择了“是”,那么对活动工作表重命名为“总表” If MsgBox("将活动工作表命名为总表,继续请选是,放弃请选否", vbYesNo + vbQuestion, "操
作选项") = vbYes Then ActiveSheet.Name = "总表" End Sub
图 3 效果二
以下代码能实现图 4 错误!未找到引用源。所示效果(0 到 5 段未指定则默认当作 0 处理, 即“确定”按钮):
MsgBox "VBA 很棒!", vbExclamation
图 4 效果三
使用 Msgbox 函数的场合有两种,其一是弹出一个信息框,用于通知用户一条消息。 其二是弹出一个具有多个按钮的信息框供用户选择,从而获知用户选择答案。
Worksheets.Add before:=Sheets("Sheet1") '在 sheet1 之前新建一个工作表
Else
'否则(表示选择了“否”)
Worksheets.Add after:=Sheets("Sheet1") '在 sheet1 之后新建一个工作表
End If
End Sub
以上过程可以弹出一个包含“是”与“否”两个按钮的信息框,当选择“是”时会在
MsgBox "VBA 很棒!", 1 + 64
或者:
MsgBox "VBA 很棒!", vbOKCancel + vbInformation
图 2 效果一
以下两句代码能实现图 3 所示效果:
MsgBox "VBA 很棒?", 4 + 32 + 256
或者:
MsgBox "VBA 很棒?", vbYesNo + vbQuestion + vbDefaultButton2
Msgbox 函数的功能是弹出一个消息对话框,并等待用户单击窗口中的按钮。函数可以 返回一个值,该值用于说明用户单击了哪一个按钮。
1.函数语法
Msgbox 函数的语法如下(查询帮助的关键字:MsgBox 函数): MsgBox(prompt[, buttons] [, title] [, helpfile, context])
Sub test() '...更多代码... MsgBox "程序运行完毕", vbOKOnly, "友情提示"
End Sub
以上过程中 Msgbox 函数的功能是通知用户“程序已运行完毕”,在信息框中有一个“确 定”按钮。
Sub test2() MsgBox "今天的日期是:" & Date, vbOKOnly + vbInformation, "友情提示"
返回值
含义
vbAbort vbRetry vbCancel
中止 重试 取消
vbOK vbIgnore
确定 忽略
vbNo
否
vbYes
是
当需要获取 Msgbox 函数的返回值时,Msgbox 函数总是与条件语句 If Then 配合使用。
Hale Waihona Puke BaiduSub test5()
Dim msg As VbMsgBoxResult '声明一个变量
基于以上理由,Msgbox 函数在工作中应用相当广。在《Excel VBA 程序开发自学宝典(第 3 版)》正文中也会有大量的关于 Msgbox 的应用。
'通过 msgbox 函数弹出一个具有两个按钮的信息框让用户选择,并将选择情况回传给变量 msg
msg = MsgBox("选择是:在 Sheet1 之前新建一个工作表。" & Chr(13) & "选择否:在 Sheet1 之后
新建一个工作表", vbYesNo, "操作选项")
If msg = vbYes Then '如果在信息框中选择了“是”
Sheet1 之前新建一个工作表,当选择“否则”时则在 Sheet1 后新建一个工作表。选择界面
如下图所示:
图 8 让用户选择新建工作表的位置
4.总结
Msgbox 函数能弹出信息框,达到警示、通知和提示用户的作用,还可以为用户弹出包 含两个或者三个选项的对话框,并根据用户的选择情况做出不同的反应。