【分享成果,随喜正能量】当你的见识多了,眼界宽了,格局大了,所有的磨难都将不再是磨难,而是助你发展的阶梯。 。
第二章 MsgBox与InputBox对话框的运用大家好,我们今日开始第二章的学习,在第一章中我们初步认识了VBA代码,知道了VBA代码写在哪里,如何运行VBA代码,以及如何录制宏,如何保护我们的代码,这些都是最基本的知识,我们要好好节制。这章的内容我们要讲解一个对话框的运用,便是MsgBox。这个对话框是非常主要的,可以说在VBA代码运用中随处可见。我们要理解这个对话框的运用,并运用到我们自己的代码中。
第二节 MsgBox函数的讲解及运用
大家好,我们本日讲解的内容是MsgBox函数。在上一讲,我们讲解了MsgBox对话框的大略运用,今日讲解的是MsgBox函数,两者有什么不同呢?所谓函数,指的是一个Function过程,差异于大略过程,Function过程是有返回值的。

Excel VBA中的MsgBox函数可以返回结果,而大略的MsgBox语句不能返回结果。
1 MsgBox函数在对话框中显示,等待用户单击按钮,并返回一个整数,指示用户单击的那个按钮.
1)语法:
MsgBox (prompt, [ buttons, ] [ title, ] [ helpfile, context ])
参数:
① prompt 必需项。 字符串表达式在对话框中显示为。 prompt 的最大长度约为 1024 个字符,详细取决于所利用的字符的宽度。如果 prompt 包含两行以上,则可以在每行之间利用回车符 (Chr(13))、换行符 (Chr(10)) 或回车换行符组合 (Chr(13) & Chr(10)) 将其分隔。
② buttons 可选。 数值表达式,用于指定要显示按钮的数量和类型、要利用的图标样式、默认按钮的标识和框的形式的值之和。 如果省略,则 buttons 的默认值为 0。
③ title可选。 对话框标题栏中显示的字符串表达式。 如果省略 title,则标题栏中将显示运用程序名称。
④ helpfile 可选。 用于标识帮助文件的字符串表达式,前者用于为对话框供应高下文干系的帮助。 如果供应 helpfile,则也必须供应 context。
⑤ context 可选。 帮助高下文数值的数值表达式,该数值由帮助作者为相应的帮助主题分配。 如果供应 context,则也必须供应 helpfile。
2)buttons 参数设置如下:
常量 值 解释
vbOKOnly 0 仅显示“确定”按钮。
vbOKCancel 1 显示“确定”和“取消”按钮。
vbAbortRetryIgnore 2 显示“中止”、“重试”和“忽略”按钮。
vbYesNoCancel 3 显示“是”、“否”和“取消”按钮。
vbYesNo 4 显示“是”和“否”按钮。
vbRetryCancel 5 显示“重试”和“取消”按钮。
vbCritical 16 显示“关键”图标。
vbQuestion 32 显示“警告查询”图标。
vbExclamation 48 显示“警告”图标。
vbInformation 64 显示“信息”图标。
vbDefaultButton1 0 第一个按钮是默认按钮。
vbDefaultButton2 256 第二个按钮是默认按钮。
vbDefaultButton3 512 第三个按钮是默认按钮。
vbDefaultButton4 768 第四个按钮是默认按钮。
vbApplicationModal 0 运用程序模式;用户在连续在当前运用程序中工 作前必须相应框。
vbSystemModal 4096 系统模式;在用户相应框前,所有运用程序都挂起。
vbMsgBoxHelpButton 16384 在框中添加“帮助”按钮。
vbMsgBoxSetForeground 65536 将框窗口指定为前景窗口。
vbMsgBoxRight 524288 文本右对齐。
vbMsgBoxRtlReading 1048576 指定文本在希伯来语和阿拉伯语系统中应从右到左显示。
3)第一组值 (0-5) 表示对话框中显示的按钮的数量和类型;第二组值(16、32、48、64)表示图标样式;第三组值(0、256、512)用于确定默认按钮;第四组值(0、4096)用于确定框的形式。添加数字以创建终极 buttons 参数值时,只是用每个组中的个中一个数值。
4)关于返回值
常量 值 解释
vbOK 1 确定
vbCancel 2 Cancel
vbAbort 3 中止
vbRetry 4 重试
vbIgnore 5 忽略
vbYes 6 是
vbNo 7 否
如果对话框中显示“取消”按钮,按 ESC 键与单击“取消”具有相同的浸染。 如果对话框中包含“帮助”按钮,则会为对话框供应高下文干系帮助。但是,在单击其他按钮中的某个按钮之前不会返回任何值。2 MsgBox函数的运用为了清空某个事情表,我们可以写一段代码达到我们的目的。但是在运行之前要供应给用户思考的韶光,清空后是否有其他的麻烦。我们来看下面的代码:
Sub mynzC()
answer = MsgBox("你是否要清空事情表?", vbYesNo + vbQuestion, "清空事情表")
If answer = vbYes Then
Cells.ClearContents
Else
'do nothing
End If
End Sub
代码截图:
代码解读:
1) answer = MsgBox("你是否要清空事情表?", vbYesNo + vbQuestion, "清空事情表")
利用括号时,MsgBox函数有三个参数。第一部分用于框中的。利用第二部分指定要在框中显示的按钮和图标。第三部分显示在框的标题栏中。
把稳:将光标放在Visual Basic编辑器中的vbYesNo上,然后单击F1查看可以利用的其他按钮和图标。也可以利用相应的值4和32,而不是常量vbYesNo和vbQuestion。2) If answer = vbYes Then
Cells.ClearContents
Else
'do nothing
End If
如果用户单击“是”按钮,Excel VBA将清空事情表。如果用户单击No按钮,则不会发生任何事情。
3 代码的运行情形我们先在事情表中建立一个运行按钮,并关联上上述的“mynzC”过程,并在事情表中随便录入些数值、符号,之后在点击后会打消。如下图:
我们点击运行,会弹出下面的窗口:
我们选择“是”。
这个时候的事情表就被清空了。
今日内容回向:
1) MsgBox函数的语法理解吗?
2) MsgBox函数在运用时分几部分?
3) 清空事情表是那句代码?
本讲内容参考程序文件:事情簿02.xlsm
我20多年的VBA成果全不才面的资料中: