VBA - MsgBox 消息框

MsgBox 函数显示一个消息框并等待用户单击按钮,然后根据用户单击的按钮执行操作。

语法

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

参数说明

  • Prompt − 必需参数。 在对话框中显示为消息的字符串。 提示的最大长度约为 1024 个字符。 如果消息超出一行,则可以在每行之间使用回车符 (Chr(13)) 或换行符 (Chr(10)) 分隔行。

  • Buttons − 可选参数。 一个数字表达式,指定要显示的按钮类型、要使用的图标样式、默认按钮的标识以及消息框的形式。 如果留空,则按钮的默认值为 0。

  • Title − 可选参数。 显示在对话框标题栏中的字符串表达式。 如果标题留空,则应用程序名称将放置在标题栏中。

  • Helpfile − 可选参数。 一个字符串表达式,标识用于为对话框提供上下文相关帮助的帮助文件。

  • Context − 可选参数。 一个数字表达式,用于标识帮助作者分配给相应帮助主题的帮助上下文编号。 如果提供了上下文,则还必须提供帮助文件。

Buttons 参数可以采用以下任意值 −

  • 0 vbOKOnly - 仅显示"确定"按钮。

  • 1 vbOKCancel - 显示"确定"和"取消"按钮。

  • 2 vbAbortRetryIgnore - 显示中止、重试和忽略按钮。

  • 3 vbYesNoCancel - 显示"是"、"否"和"取消"按钮。

  • 4 vbYesNo - 显示"是"和"否"按钮。

  • 5 vbRetryCancel - 显示重试和取消按钮。

  • 16 vbCritical - 显示关键消息图标。

  • 32 vbQuestion - 显示警告查询图标。

  • 48 vbExclamation - 显示警告消息图标。

  • 64 vbInformation - 显示信息消息图标。

  • 0 vbDefaultButton1 - 第一个按钮是默认按钮。

  • 256 vbDefaultButton2 - 第二个按钮是默认按钮。

  • 512 vbDefaultButton3 - 第三个按钮是默认按钮。

  • 768 vbDefaultButton4 - 第四个按钮是默认按钮。

  • 0 vbApplicationModal 应用程序模式 - 在用户响应消息框之前,当前应用程序将无法运行。

  • 4096 vbSystemModal 系统模态 - 在用户响应消息框之前,所有应用程序都不会工作。

以上值在逻辑上分为四组: 第一组(0到5)表示要在消息框中显示的按钮。 第二组(16,32,48,64)描述了要显示的图标的样式,第三组 (0, 256, 512, 768) 指示哪个按钮必须是默认按钮,第四组 (0, 4096) 确定消息框的模式 。

返回值

MsgBox 函数可以返回以下值之一,这些值可用于标识用户在消息框中单击的按钮。

  • 1 - vbOK - 单击"确定"
  • 2 - vbCancel - 单击"取消"
  • 3 - vbAbort - 单击中止
  • 4 - vbRetry - 单击重试
  • 5 - vbIgnore - 单击"忽略"
  • 6 - vbYes - 单击"是"
  • 7 - vbNo - 没有被点击

示例

Function MessageBox_Demo() 
   'Message Box with just prompt message 
   MsgBox("Welcome")     
   
   'Message Box with title, yes no and cancel Butttons  
   int a = MsgBox("Do you like blue color?",3,"Choose options") 
   ' Assume that you press No Button  
   msgbox ("The Value of a is " & a) 
End Function

输出

步骤 1 − 可以通过单击 VBA 窗口上的"运行"按钮或从 Excel 工作表调用该函数来执行上述函数,如下图所示。

VBA 中的消息框

步骤 2 − 将显示一个简单消息框,其中包含消息"欢迎"和"确定"按钮

VBA 中的消息框

步骤 3 − 单击"确定"后,将显示另一个对话框,其中包含一条消息以及"是、否和取消"按钮。

VBA 中的消息框

步骤 4 − 单击"否"按钮后,该按钮 (7) 的值将存储为整数,并以消息框的形式向用户显示,如以下屏幕截图所示。 使用这个值,可以了解用户点击了哪个按钮。

VBA 中的消息框