VBA - 消息框

MsgBox功能显示一个消息框,等待用户点击按钮,然后根据用户点击的按钮执行操作.

语法

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

参数说明

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

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

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

  • 帮助文件 : 一个可选参数.一个String表达式,用于标识用于为对话框提供上下文相关帮助的帮助文件.

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

按钮参数可以采用以下任何一种方式值 :

  • 0 vbOKOnly  - 仅显示OK按钮.

  • 1 vbOKCancel  - 显示OK和Cancel按钮.

  • 2 vbAbortRetryIgnore  - 显示Abort,Retry和Ignore按钮.

  • 3 vbYesNoCancel  - 显示"是","否"和"取消"按钮.

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

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

  • 16 vbCritical  -  Displays关键消息图标.

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

  • 48 vbExclamation - 显示警告信息图标.

  • 64 vbInformation  - 显示信息信息图标.

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

  • 256 vbDefaultButton2  -  Secon d按钮是默认值.

  • 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  - 单击Abort

  • 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中的消息框