- 1.0了解MsgBox 函数
1.1 MsgBox 函数
在对话框中显示消息,用户单击按钮,并返回一个 Integer 告诉用户单击哪一个按钮。
语法:
MsgBox(prompt[, buttons] [, title] [, helpfile, context])
MsgBox 函数的语法具有以下几个命名参数:
lPrompt必需的。字符串表达式,作为显示在对话框中的消息。prompt 的最大长度大约为 1024 个字符,由所用字符的宽度决定。如果 prompt 的内容超过一行,则可以在每一行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或是回车与换行符的组合 (Chr(13) & Chr(10)) 将各行分隔开来。
lButtons可选的。数值表达式是值的总和,指定显示按钮的数目及形式,使用的图标样式,缺省按钮是什么以及消息框的强制回应等。如果省略,则 buttons 的缺省值为 0。
lTitle可选的。在对话框标题栏中显示的字符串表达式。如果省略 title,则将应用程序名放在标题栏中。 lHelpfile可选的。字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件。如果提供了 helpfile,则也必须提供 context。
lContext可选的。数值表达式,由帮助文件的作者指定给适当的帮助主题的帮助上下文编号。如果提供了 context,则也必须提供 helpfile。
1.2 MsgBox 常数
可在代码中的任何地方使用下列常数代替实际值:
MsgBox 参数
常数
|
值
|
描述
|
vbOKOnly
|
0
|
只有 OK 按钮(缺省值)
|
vbOKCancel
|
1
|
OK 和 Cancel 按钮
|
vbAbortRetryIgnore
|
2
|
Abort、Retry,和 Ignore 按钮
|
vbYesNoCancel
|
3
|
Yes、No,和 Cancel 按钮
|
vbYesNo
|
4
|
Yes 和 No 按钮
|
vbRetryCancel
|
5
|
Retry 和 Cancel 按钮
|
vbCritical
|
16
|
关键消息
|
vbQuestion
|
32
|
警告询问
|
vbExclamation
|
48
|
警告消息
|
vbInformation
|
64
|
通知消息
|
vbDefaultButton1
|
0
|
第一个按钮是缺省的(缺省值)
|
vbDefaultButton2
|
256
|
第二个按钮是缺省的
|
vbDefaultButton3
|
512
|
第三个按钮是缺省的
|
vbDefaultButton4
|
768
|
第四个按钮是缺省的
|
vbApplicationModal
|
0
|
应用程序形态的消息框(缺省值)
|
vbSystemModal
|
4096
|
系统强制返回的消息框
|
vbMsgBoxHelpButton
|
16384
|
添加Help按钮到消息框
|
VbMsgBoxSetForeground
|
65536
|
指定消息框窗口作为前景窗口
|
vbMsgBoxRight
|
524288
|
文本是右对齐的
|
vbMsgBoxRtlReading
|
1048576
|
指定在希伯来语和阿拉伯语系统中,文本应当显示为从右到左读
|
MsgBox 返回值
常数
|
值
|
描述
|
vbOK
|
1
|
按下 OK 按钮
|
vbCancel
|
2
|
按下 Cancel 按钮
|
vbAbort
|
3
|
按下 Abort 按钮
|
vbRetry
|
4
|
按下 Retry 按钮
|
vbIgnore
|
5
|
按下 Ignore 按钮
|
vbYes
|
6
|
按下 Yes 按钮
|
vbNo
|
7
|
按下 No 按钮
|
2.0 MsgBox 函数实例
2.1 MsgBox 函数常规使用实例
MsgBox "这是一个消息框函数演示实例! ", vbOKOnly + vbInformation, "江羽实例:"
2.2 MsgBox 函数返回值实例
If MsgBox("提供返回值实例!", vbYesNo, "江羽实例:") = vbYes Then
Debug.Print "你点的是按钮!"
Else
Debug.Print "你点了否按钮!"
End If
2.3 MsgBox 函数所有参数完整实例
Dim Msg, Title, Help, Ctxt
Dim Style As VbMsgBoxStyle
Dim Response As VbMsgBoxResult
Msg = "消息框函数完整实例演示!" ' 定义消息信息内容。
Style = vbYesNo + vbCritical + _
vbDefaultButton2 + _
vbMsgBoxHelpButton ' 定义消息图标及相关按钮。
Title = "江羽实例:" ' 定义标题。
' 定义帮助文件需指定帮助文件路径。
Help = CurrentProject.Path & "\help.chm"
Ctxt = 1001 '此ID由定义帮助文件时自定义上下文。
'显示信息并将函数返回值赋值给Response
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' 用户按下“是”。
Debug.Print "你按了是按钮! " ' 完成某操作。
Else ' 用户按下“否”。
Debug.Print "你按了否按钮!" ' 完成某操作。
End If
注意:如需要消息框中提示帮助信息vbMsgBoxHelpButton 按钮常数是必须的
3.0 汉化 MsgBox 函数实现
3.1枚举常数
Enum 样式
'枚举图标
出错 = vbCritical
提问 = vbQuestion
警示 = vbExclamation
提示 = vbInformation
'枚举按钮
仅确定 = vbOKOnly
确定取消 = vbOKCancel
终止重试忽略 = vbAbortRetryIgnore
是否取消 = vbYesNoCancel
是否 = vbYesNo
重试取消 = vbRetryCancel
'枚举默认按钮
默认按钮1 = vbDefaultButton1
默认按钮2 = vbDefaultButton2
默认按钮3 = vbDefaultButton3
默认按钮4 = vbDefaultButton4
'帮助按钮常数
帮助按钮 = vbMsgBoxHelpButton
End Enum
'枚举按钮常数
Enum 按钮
确定 = vbOK
取消 = vbCancel
关于 = vbAbort
重试 = vbRetry
忽略 = vbIgnore
是 = vbYes
否 = vbNo
End Enum
说明:所谓枚举变量,就是指用 Enum 类型定义的变量。变量和参数都可以定义为 Enum 类型。Enum 类型中的元素被初始化为 Enum 语句中指定的常数值。所赋给的值可以包括正数和负数,且在运行时不能改变。(具体参看帮助)
3.2自定义汉化消息函数
Public Function 消息框(ByVal 内容 As String, _
Optional 样式 As 样式 = 仅确定, _
Optional 标题 As String = "江羽实例:", _
Optional 帮助文件, _
Optional 上下文) As 按钮
消息框 = MsgBox(内容, 样式, 标题, 帮助文件, 上下文)
End Function
说明:Optional关键字实现可选参数,参数可以缺省,并可以指定一个缺省值。
3.3 汉化消息函数实例演示
If 消息框("这是汉化的消息框函数!", _
确定取消 + 出错 + 帮助按钮, , _
"C:\Help.chm", 1001) = 确定 Then
消息框 "你点了【确定】按钮!", 提示
Else
消息框 "你点了【取消】按钮!", 提示
End If
说明:C:\Help.chm 应为你指定帮助文件的完整路径。