代码执行过程中,我们经常需要在执行关键操作(如删除数据)前请求用户确认,或者显示处理结果或状态信息等,就需要用到MsgBox函数了
VBA中的MsgBox函数是一个用于与用户交互的基本对话框工具,它能够弹出对话框显示信息、获取用户响应,如简单确认或选择

MsgBox函数的完整语法为:
MsgBox(prompt[, buttons][, title][, helpfile, context])
关键参数详解:
Prompt(必需) 显示在对话框中的消息文本,最大长度约1024个字符,支持用 vbCrLf 或 vbNewLine 换行显示
Buttons(可选) 控制按钮类型、图标、默认按钮等,通过常量相加组合使用
Title(可选) 显示在对话框标题栏中的文本。若省略,通常显示应用程序名
Buttons参数是MsgBox灵活性的关键,它由四组常量组合而成,每组选一个值相加即可
第一组控制按钮的类型和数量:vbOKOnly, vbYesNo, vbYesNoCancel, vbRetryCancel、vbAbortRetryIgnore、vbRetryCancel等
第二组控制显示的图标样式:vbCritical, vbQuestion, vbExclamation, vbInformation
第三组指定哪个按钮是默认按钮(即按回车键响应的按钮):vbDefaultButton1, vbDefaultButton2, bDefaultButton3
第四组决定消息框的模态级别:vbApplicationModal, vbSystemModal
如vbYesNoCancel + vbQuestion + vbDefaultButton2 组合:
msgbox("确定要删除数据吗?", vbYesNoCancel + vbQuestion + vbDefaultButton2, "确认删除")
执行后提示框显示如下:

由于在VBA的MsgBox函数中,即使不显式指定这些常量,消息框通常也会以应用程序模态的方式行为(即用户必须响应消息框才能继续操作当前应用程序),所以在日常开发中,第四组常量使用频率相对较低

了解了以上基础知识后,接下来关键任务就是如何使用MsgBox并将MsgBox的返回值用于程序流程控制
示例代码:
msgbox "程序执行完成!", vbInformation, "系统提示"
执行以上代码,会弹出一个提示框,显示如下:

示例代码:
Dim R As VbMsgBoxResultR = msgbox("确定要删除数据吗?", vbExclamation + vbOKCancel, "确认删除")If R = vbOK Then' 执行删除操作的代码msgbox "文件已删除"Elsemsgbox "操作已取消"End If
执行以上代码弹出的提示框样式如下:

通过变量R来获取用户按下的是哪一个键,再确定执行哪一个分支代码。常用按钮对应标识及值如下:
确定:vbOK ,对应值为1
取消:vbCancel ,对应值为2
终止:vbAbort,对应值为3
重试:vbRetry,对应值为4
忽略:vbIgnore,对应值为5
是:vbYes,对应值为6
否:vbNo,对应值为7
示例代码:
Dim R As VbMsgBoxResultR = msgbox("操作失败,请选择接下来的操作:", vbAbortRetryIgnore + vbCritical, "错误提示")Select Case RCase vbAbort' 终止Case vbRetry' 重试Case vbIgnore' 忽略End Select
执行以上代码弹出的提示框样式如下:

针对这类两个以上按键的返回值问题,我们可以结合Select Case语句配合使用

今天的分享就到这里了,下期继续
公众号同时也在不间断地分享免费的编程案例,如果想学习更多的编程知识,无论是用来提升自动化办公效率还是想提升自我,都可以关注我的公众号“努力鸭是黑色的”,解锁更多的VBA技能
¥74.50
pc中文游戏 人渣 steam SCUM 正版激活码scum 国区/全球激活码cdkey生存联机游戏
¥54.90
我的世界Java版WIN10基岩版正版游戏Minecraft微软激活码大师收藏版 PC电脑 官方礼品卡25位数字兑换码国际服
¥305.00
steam 街霸6 国区激活码CDKEY 秒发 街头霸王6 Street Fighter 6 街霸六PC游戏中文正版 秒发街机格斗游戏
¥74.50
steam SCUM 人渣steam 人渣scum人渣生存联机人渣key 人渣激活码 正版激活码scum 国区/全球激活码cdkey
¥305.00
Steam 街霸6 街头霸王6 国区激活码 Street Fighter 6 街霸六CDKey 街头霸王6豪华版中文PC正版游戏 街霸游戏
¥108.00
新版第二版Oxford Discover 原版正版教材1/2/3/4/5/6级 牛津少儿英语探索发现系列 英语科普系列含正版激活码oxforddiscover