跳到主要内容

MsgBox 弹窗

🎯功能

弹出一个带按钮的对话框, 可以返回用户点击的按钮值

📜语法

结果 = MsgBox(提示语[, 样式[, 标题[, 帮助文件, 编号]]])

📥参数

参数数据类型解释
提示语字符串显示在弹窗中的描述文字
样式整数型可选, 显示弹窗的按钮类型, 图标样式, 默认按钮等设置, 详见下面表格
标题字符串可选, 弹窗的标题内容, 省略为程序标题
帮助文件字符串可选, 提供帮助的文件, 一般用不到
编号整数型可选, 帮助文件编号, 一般用不到
样式常量名描述
vbOKOnly0只显示确定按钮。
vbOKCancel1显示确定和取消按钮。
vbAbortRetryIgnore2显示放弃、重试和忽略按钮。
vbYesNoCancel3显示是、否和取消按钮。
vbYesNo4显示是和否按钮。
vbRetryCancel5显示重试和取消按钮。
vbCritical16显示临界信息图标。
vbQuestion32显示警告查询图标。
vbExclamation48显示警告消息图标。
vbInformation64显示信息消息图标。
vbDefaultButton10第一个按钮为默认按钮。
vbDefaultButton2256第二个按钮为默认按钮。
vbDefaultButton3512第三个按钮为默认按钮。
vbDefaultButton4768第四个按钮为默认按钮。
vbApplicationModal0应用程序模式:用户必须响应消息框才能继续在当前应用程序中工作。
vbSystemModal4096系统模式:在用户响应消息框前,所有应用程序都被挂起。

!!! note "样式 参数说明" 第一组值 (0 - 5) 用于描述对话框中显示的按钮类型与数目;第二组值 (16, 32, 48, 64) 用于描述图标的样式;第三组值 (0, 256, 512) 用于确定默认按钮;而第四组值 (0, 4096) 则决定消息框的样式。在将这些数字相加以生成 按钮 参数值时,只能从每组值中取用一个数字。 例如1+16+256表示显示按钮和取消按钮, 显示临界信息图标, 以第二个按钮为默认值

📤返回

整数型, 返回用户点击的按钮值, 详见下表

常数名常数值描述
vbOK1确定按钮被单击。
vbCancel2取消按钮被单击。
vbAbort3终止按钮被单击。
vbRetry4重试按钮被单击。
vbIgnore5忽略按钮被单击。
vbYes6按钮被单击。
vbNo7按钮被单击。

💡示例

Dim 结果

结果 = MsgBox("紫猫老师是不是很帅!", vbYesNo + vbQuestion)
If 结果 = vbYes Then
TracePrint "你答对了, 紫猫老师真帅~"
Else
TracePrint "你错了, 紫猫老师肯定很帅!"
End If
//高级例子
//功能:
// 具有超时自动关闭的弹窗
//参数:
// 内容: 字符串, 要显示的提示内容
// 标题: 字符串, 要显示的标题
// 样式: 整数型, 与MsgBox命令的样式参数相同
// 超时: 整数型, 弹窗等待超时时长, 单位毫秒, 例如3000表示3秒后自动关闭弹窗
//返回:
// 整数型, 超时后返回-1, 其他情况与MsgBox命令的返回值相同
Function zmMsgBox(内容, 标题, 样式, 超时)
Dim obj
Set obj = CreateObject("WScript.Shell")
zmMsgBox = CInt(obj.Popup(内容, 超时 / 1000, 标题, 样式))
Set obj = Nothing
End Function

📘备注

  • 如果对话框显示取消按钮,则按 ESC 键与单击取消的效果相同。
  • 如果对话框包含帮助按钮,则有为对话框提供的上下文相关帮助。但是在单击其他按钮之前,不会返回任何值。