本文由日文译成中文。

Excel VBA 使用 “MsgBox ”函数在对话框中显示一条信息。

“MsgBox” 函数在对话框中显示一条信息,并返回一个值,表示点击了哪个按钮。

< Sponsored Links >





句法 “MsgBox”文

MsgBox(prompt[, buttons] [, title] [, helpfile, context])

prompt = 信息文本
buttons = 按钮类型
title = 对话框标题
我不使用 “helpfile” 和 “context”

msgbox

“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

如下图所示

msgbox

顺便问一下,如果我指定了一个常量值,结果会怎样?我试过了!

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

结果与恒定

msgbox

 

返回值

返回一个值,表示点击了哪个按钮。

常数 说明
 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

如果点击 “是”,则

vbyes

如果点击 “否”,则

vbno

如果点击 “取消”,则

vbcancel

如果不需要返回值,只需写入。

Sub test()
    MsgBox “留言”
End Sub

 

备忘录

如果您想在信息中另起一行

  • 回车 (Chr(13))
  • 换行 (Chr(10))

使用

Sub test()
    MsgBox “留言” & Chr(13) & “新线路”
End Sub

chr

 

< Sponsored Links >