本文由日文译成中文。
Excel VBA 使用 “MsgBox ”函数在对话框中显示一条信息。
“MsgBox” 函数在对话框中显示一条信息,并返回一个值,表示点击了哪个按钮。
< Sponsored Links >
句法 “MsgBox”文
MsgBox(prompt[, buttons] [, title] [, helpfile, context])
prompt = 信息文本
buttons = 按钮类型
title = 对话框标题
我不使用 “helpfile” 和 “context”

“buttons”设置值
第一组是按钮类型
| 常数 | 值 | 显示按钮 |
| vbOKOnly | 0 | [OK] |
| vbOKCancel | 1 | [OK] [Cancel] |
| vbAbortRetryIgnore | 2 | [停止] [重试] [置之不理] |
| vbYesNoCancel | 3 | [是] [没有] [取消] |
| vbYesNo | 4 | [是] [没有] |
| vbRetryCancel | 5 | [重试] [取消] |
第二组是图标类型
| 常数 | 值 | 要显示的图标 |
| vbCritical | 16 | 警告信息图标 |
| vbQuestion | 32 | 查询信息图标 |
| vbExclamation | 48 | 注意信息图标 |
| vbInformation | 3 | 信息消息图标 |
第三组是哪些按钮应处于选定状态
| 常数 | 值 | 按钮选择状态 |
| vbDefaultButton1 | 0 | 选择第 1 个按钮 |
| vbDefaultButton2 | 256 | 选择第 2 个按钮 |
| vbDefaultButton3 | 512 | 选择第 3 个按钮 |
| vbDefaultButton4 | 768 | 选择第 4 个按钮 |
第四组指定方框是否为模态方框
| 常数 | 值 | 模态 |
| vbApplicationModal | 0 | 设置为应用程序模式 |
| vbSystemModal | 4096 | 设置为系统模式 |
其他团体
| 常数 | 值 | 目录 |
| vbMsgBoxHelpButton | 16384 | 添加帮助按钮 |
| VbMsgBoxSetForeground | 65536 | 显示为最前面的窗口 |
| vbMsgBoxRight | 524288 | 文本右对齐 |
| vbMsgBoxRtlReading | 1048576 | 文字从右向左排列 |
指定从上述各组中每次选择一个数值相加的总和
示例 “MsgBox”
- 对话框的标题是 “MSG Title”。
- 信息 “右对齐”。
- 按钮类型为 “vbYesNoCancel” [是] [没有] [取消]
- 图标类型 “vbQuestion” 询问信息图标
- 按钮选择状态为 “vbDefaultButton3” 选择第三个按钮
- 模式状态为 “vbSystemModal” 系统模式状态
- “vbMsgBoxRight” 从其他组向右对齐字符
如果你设置了这个。
Sub test()
Dim msg As Integer
msg = MsgBox(“右对齐”, _
vbYesNoCancel + _
vbQuestion + _
vbDefaultButton3 + _
vbSystemModal + _
vbMsgBoxRight, “MSG Title”)
End Sub
如下图所示

顺便问一下,如果我指定了一个常量值,结果会怎样?我试过了!
vbYesNoCancel 的值为 3
vbQuestion 的值为 32
vbDefaultButton3 的值为 512
vbSystemModal 的值为 4096
vbMsgBoxRight 的值为 524288
3 + 32 + 512 + 4096 + 524288 = 528931
Sub test()
Dim msg As Integer
msg = MsgBox(“右对齐”, 528931, “MSG Title”)
End Sub
结果与恒定

返回值
返回一个值,表示点击了哪个按钮。
| 常数 | 值 | 说明 |
| vbOK | 1 | [OK] |
| vbCancel | 2 | [Cancel] |
| vbAbort | 3 | [停止] |
| vbRetry | 4 | [重试] |
| vbIgnore | 5 | [置之不理] |
| vbYes | 6 | [是] |
| vbNo | 7 | [没有] |
让我们把它添加到之前的程序中
Sub test()
Dim msg As Integer
msg = MsgBox(“右对齐”, ?
vbYesNoCancel + _
vbQuestion + _
vbDefaultButton3 + _
vbSystemModal + _
vbMsgBoxRight, “MSG Title”)
If msg = vbYes Then
MsgBox “点击是”
ElseIf msg = vbNo Then
MsgBox “点击否”
ElseIf msg = vbCancel Then
MsgBox “点击取消”
End If
End Sub
如果点击 “是”,则

如果点击 “否”,则

如果点击 “取消”,则

如果不需要返回值,只需写入。
Sub test()
MsgBox “留言”
End Sub
备忘录
如果您想在信息中另起一行
- 回车 (Chr(13))
- 换行 (Chr(10))
使用
Sub test()
MsgBox “留言” & Chr(13) & “新线路”
End Sub

< Sponsored Links >
