MsgBox函数用法讲解.docx
《MsgBox函数用法讲解.docx》由会员分享,可在线阅读,更多相关《MsgBox函数用法讲解.docx(11页珍藏版)》请在冰豆网上搜索。
MsgBox函数用法讲解
MsgBox函数用法讲解
VBA中msgbox的用法小结
1、作用
在消息框中显示信息,并等待用户单击按钮,可返回单击的按钮值(比如“确定”或者“取消”)。
通常用作显示变量值的一种方式。
2、语法
MsgBox(Prompt[,Buttons][,Title][,Helpfile,Context])
参数说明:
(1)Prompt,必需的参数,为字符串,作为显示在消息框中的消息文本。
其最大长度约为1024个字符,由所用字符的宽度决定。
如果prompt的内容超过一行,则可以在每一行之间用回车符(Chr(13))、换行符(Chr(10))或是回车与换行符的组合(Chr(13)&Chr(10))将各行分隔开来。
(2)Buttons,可选的参数,为数值表达式的值之和,指定显示的按钮的数目及形式、使用的图标样式、缺省按钮及消息框的强制回应等,可以此定制消息框。
若省略该参数,则其缺省值为0。
设置值见下表。
(3)Title,可选的参数,表示在消息框的标题栏中所显示的文本。
若省略该参数,则将应用程序名放在标题栏中。
(4)Helpfile,可选的参数,为字符串表达式,提供帮助文件。
若有Helpfile,则必须有Context。
(5)Context,可选的参数,为数值表达式,提供帮助主题。
若有Context,则必须有Helpfile。
3、Button参数
用于MsgBox函数中Button参数的常量
常量 值 说明
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将Help按钮添加到消息框
VbMsgBoxSetForeground65536指定消息框窗口作为前景窗口
vbMsgBoxRight 524288文本为右对齐
vbMsgBoxRtlReading 1048576指定文本应为在希伯来和阿拉伯语系统中的从右到左显示
说明:
(1)第一组值(0–5)描述了消息框中显示的按钮的类型与数目;第二组值(16,32,48,64)描述了图标的样式;第三组值(0,256,512,768)说明哪一个按钮是缺省值;而第四组值(0,4096)则决定消息框的强制返回性。
将这些数字相加以生成Buttons参数值的时候,只能由每组值取用一个数字。
(2)这些常数都是VBA指定的,可以在程序代码中使用这些常数名称代替实际数值。
4、返回值
用于MsgBox函数返回值的常量
常数 值 说明
vbOK 1 确定
vbCancel 2 取消
vbAbort 3 终止
vbRetry 4 重试
vbIgnore 5 忽略
vbYes 6 是
vbNo 7 否
5、相关说明
(1)如果同时提供了Helpfile与Context参数,可以按F1键来查看与Context相应的帮助主题,Excel通常会在输入框中自动添加一个帮助(Help)按钮。
(2)若在消息框中显示“取消”按钮,则按下ESC键与单击“取消”按钮效果相同。
若消息框中有“帮助”按钮,则提供相关的帮助信息。
(3)如果要输入多个参数并省略中间的某些参数,则必须在相应位置加入逗号分界符。
6、示例
(1)使用MsgBox函数,在具有“是”及“否”按钮的对话框中显示一条严重错误信息。
示例中的缺省按钮为“否”,MsgBox函数的返回值视用户按哪一个钮而定。
并假设DEMO.HLP为一帮助文件,其中有一个帮助主题代码为1000。
DimMsg,Style,Title,Help,Ctxt,Response,MyString
Msg="Doyouwanttocontinue?
" ’定义消息文本
Style=vbYesNo+vbCritical+vbDefaultButton2 '定义按钮
Title="MsgBoxDemonstration" '定义标题文本
Help="DEMO.HLP" '定义帮助文件
Ctxt=1000 '定义帮助主题
Response=MsgBox(Msg,Style,Title,Help,Ctxt)
IfResponse=vbYesThen '用户按下“是”
MyString="Yes" '完成某操作
Else '用户按下“否”
MyString="No" '完成某操作
EndIf
(2)只显示某消息
MsgBox“Hello!
”
(3)将消息框返回的结果赋值给变量
Ans=MsgBox(“Continue?
”,vbYesNo)
IfMsgBox(“Continue?
”,vbYesNo)<>vbYesThenExitSub
(4)使用常量的组合,赋值组Config变量,并设置第二个按钮为缺省按钮
Config=vbYesNo+vbQuestion+vbDefaultButton2
(5)若要在消息中强制换行,可在文本中使用vbCrLf(或vbNewLine)常量,用&加空格与字符隔开。
如
MsgBox“Thisisthefirstline.”&vbNewLine&“Secondline.”
(6)可以在消息框中使用vbTab常量插入一个制表符。
下面的过程使用一个消息框来显示5×5单元格区域中的所有值,用vbTab常量分隔列并使用vbCrLf常量插入一个新行。
注意在MsgBox函数最多只显示1024个字符,因此限制了可显示的单元格数。
OptionExplicit
SubShowRangeValue()
DimMsgAsString
DimrAsInteger,cAsInteger
Msg=""
Forr=1To5
Forc=1To5
Msg=Msg&Cells(r,c)&vbTab
Nextc
Msg=Msg&vbCrLf
Nextr
MsgBoxMsg
EndSub
(7)在消息框语句中运用工作表函数以及设置显示的数置格式,如下面语句所示:
MsgBox"selectionhas"&m&"cells."&Chr(13)&"thesumis:
"&Application.WorksheetFunction.Sum(Selection)&Chr(13)&"theaverageis:
"&Format(Application.WorksheetFunction.Average(Selection),"#,##0.00"),vbInformation,"selectioncount&sum&average"&Chr(13)
下面是具体的例子,配图
MsgBox函数和MsgBox语句均可用来弹出对话框,不同处在于MsgBox函数可以返回一个值,而MsgBox语句不会返回值。
MsgBox语句:
用于弹出一个对话框。
格式如下:
MsgBox内容[,类型][,标题][,帮助文件名,帮助主题目录号]
在IE地址栏中输入“javascript:
alert(“欢迎XX”)”,然后按enter键,则弹出对话框“欢迎XX”
VB中MsgBox语句也可方便实现,在窗体的单击事件中输入如下代码
PrivateSubForm_click()
MsgBox("欢迎XX")
EndSub
MsgBox内容[,类型][,标题][,帮助文件名,帮助主题目录号]
“内容”参数,为必要参数,是一个字符串,其长度不得超过1024字符。
如果超过,多余的部分会被省略。
字符串的内容在由MsgBox语句弹出的对话框中显示。
当字符串在一行内显示不完时,将自动换行。
也可用“chr$(13)+chr$(10)”或“vbCrlf”进行强制换行。
例如
PrivateSubForm_click()
MsgBox"欢迎XX"&Chr(13)+Chr(10)&"祝XX快乐每一天!
"
EndSub
运行后将弹出对话框如图:
“类型”参数,它是一个整数值或符号常量,用来控制在对话框内显示的按钮、图标的种类及数量。
该参数的值由4类数值相加产生,这4类数值或符号常量分别表示按钮的类型、显示图标的种类、活动按钮的位置以及强制返回。
不过,对于MsgBox语句,按钮的类型及强制返回作用不大,但对于MsgBox函数却很有用。
在MsgBox函数中可通过按钮对话框中某个按钮而执行指定的操作。
MsgBox类型参数的取值:
符号常量
值
作用
按
钮
类
型
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
系统强制返回
例如:
PrivateSubForm_click()
MsgBox"欢迎XX"&Chr(13)+Chr(10)&"祝XX快乐每一天!
",2
EndSub
运行后将弹出对话框如图:
例如:
PrivateSubForm_click()
MsgBox"欢迎XX"&Chr(13)+Chr(10)&"祝XX快乐每一天!
",64
EndSub
运行后将弹出对话框如图:
如果要同时定义按钮类型和图标样式,可直接将按钮类型的取值和图标样式的取值相加即可。
例如:
2+64
PrivateSubForm_click()
MsgBox"欢迎XX"&Chr(13)+Chr(10)&"祝XX快乐每一天!
",66
EndSub
执行结果如图:
PrivateSubForm_click()
MsgBox"欢迎XX"&Chr(13)+Chr(10)&"祝XX快乐每一天!
",66+512
EndSub
则会将默认按钮变为第三个按钮,执行结果如图:
如果对话框中只有三个按钮,代码却为“66+768”,执行结果为默认选中第一个按钮。
“标题”参数,用来指定对话框的标题栏文字。
例如:
PrivateSubForm_click()
MsgBox"欢迎XX"&Chr(13)+Chr(10)&"祝XX快乐每一天!
",65+512,"许愿池"
EndSub
执行结果:
*************
MsgBox函数,除可返回值外,其他功能与MsgBox语句相同。
MsgBox函数返回值是一个整数,可以是1~7之间的任意整数,它们分别对应7个按钮被选中的状态。
返回值
操 作
符号常量
1
选“确定”按钮
vbOk
2
选“取消”按钮
vbCancel
3
选“终止”按钮
vbAbort
4
选“重试”按钮
vbRetry
5
选“忽略”按钮
vblgnore
6
选“是”按钮
vbYes
7
选“否”按钮
vbNo
例如:
在按钮【退出】的双击事件中输入如下代码:
PrivateSubCommand1_Click()
DimaAsInteger '定义整形变量a
a=MsgBox("你确定要退出吗?
",1+32) '用变量a来接收MsgBox函数的返回值
Ifa=1Then '如果变量a的值为1,即MsgBox函数的返回值为1。
那么
End
Else
Print("你没有退出。
")
EndIf
EndSub