暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

VBA中MsgBox函数的应用

VBA语言専攻 2022-09-19
140
【分享成果,随喜正能量】月亮,看似忧伤,却充满了慈悲的力量,当我们仰望天空的时候,那清凉的光芒,可以摧毁我们内心坚韧的刀锋,让我们找到真正的平和。。
《VBA之Excel应用》(10178983)是非常经典的,是我推出的第七套教程,定位于初级。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非常容易的掌握相关的知识,这套教程共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。今日讲解的内容是“VBA之EXCEL应用”的第二章:VBA中MsgBox函数的应用

第二节 MsgBox函数的讲解及应用

大家好,我们今天讲解的内容是MsgBox函数。在上一讲,我们讲解了MsgBox对话框的简单应用,今日讲解的是MsgBox函数,两者有什么不同呢?所谓函数,指的是一个Function过程,区别于简单的过程,Function过程是有返回值的。
Excel VBA中的MsgBox函数可以返回结果,而简单的MsgBox语句不能返回结果。

1  MsgBox函数

在对话框中显示消息,等待用户单击按钮,并返回一个整数,指示用户单击的那个按钮.

1)语法:
MsgBox (prompt, [ buttons, ] [ title, ] [ helpfile, context ])
参数:
  prompt        必需项。 字符串表达式在对话框中显示为消息。 prompt 的最大长度约为 1024 个字符,具体取决于所使用的字符的宽度。如果 prompt 包含两行以上,则可以在每行之间使用回车符 (Chr(13))、换行符 (Chr(10)) 或回车换行符组合 (Chr(13) & Chr(10)) 将其分隔。
  buttons       可选。 数值表达式,用于指定要显示按钮的数量和类型、要使用的图标样式、默认按钮的标识和消息框的形式的值之和。 如果省略,则 buttons 的默认值为 0。
title可选。 对话框标题栏中显示的字符串表达式。 如果省略 title,则标题栏中将显示应用程序名称。
  helpfile       可选。 用于标识帮助文件的字符串表达式,前者用于为对话框提供上下文相关的帮助。 如果提供 helpfile,则也必须提供 context。
context       可选。 帮助上下文数值的数值表达式,该数值由帮助作者为相应的帮助主题分配。 如果提供 context,则也必须提供 helpfile。

2buttons 参数设置如下:
常量                      值           说明
vbOKOnly                   0           仅显示“确定”按钮。
vbOKCancel               1           显示“确定”和“取消”按钮。
vbAbortRetryIgnore           2           显示“中止”、“重试”和“忽略”按钮。
vbYesNoCancel               3           显示“是”、“否”和“取消”按钮。
vbYesNo                   4           显示“是”和“否”按钮。
vbRetryCancel               5           显示“重试”和“取消”按钮。
vbCritical                   16           显示“关键消息”图标。
vbQuestion                   32           显示“警告查询”图标。
vbExclamation               48           显示“警告消息”图标。
vbInformation               64           显示“信息消息”图标。
vbDefaultButton1           0           第一个按钮是默认按钮。
vbDefaultButton2           256           第二个按钮是默认按钮。
vbDefaultButton3           512           第三个按钮是默认按钮。
vbDefaultButton4           768           第四个按钮是默认按钮。
vbApplicationModal       0         应用程序模式;用户在继续在当前应用程序中工  作前必须响应消息框。
vbSystemModal                4096         系统模式;在用户响应消息框前,所有应用程序都挂起。
vbMsgBoxHelpButton        16384        在消息框中添加“帮助”按钮。
vbMsgBoxSetForeground        65536        将消息框窗口指定为前景窗口。
vbMsgBoxRight                524288        文本右对齐。
vbMsgBoxRtlReading    1048576  指定文本在希伯来语和阿拉伯语系统中应从右到左显示。

3)第一组值 (0-5) 表示对话框中显示的按钮的数量和类型;第二组值(16、32、48、64)表示图标样式;第三组值(0、256、512)用于确定默认按钮;第四组值(0、4096)用于确定消息框的形式。添加数字以创建最终 buttons 参数值时,只是用每个组中的其中一个数值。

4)关于返回值
常量          值       说明
vbOK           1       确定
vbCancel       2       Cancel
vbAbort       3       中止
vbRetry       4       重试
vbIgnore       5       忽略
vbYes          6       是
vbNo           7       否

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

2  MsgBox函数的应用

为了清空某个工作表,我们可以写一段代码达到我们的目的。但是在运行之前要提供给用户思考的时间,清空后是否有其他的麻烦。我们来看下面的代码:
Sub mynzC()
    answer = MsgBox("你是否要清空工作表?", vbYesNo + vbQuestion, "清空工作表")
    If answer = vbYes Then
        Cells.ClearContents
    Else
        'do nothing
    End If
End Sub

代码截图:

代码解读:
1) answer = MsgBox("你是否要清空工作表?", vbYesNo + vbQuestion, "清空工作表")
使用括号时,MsgBox函数有三个参数。第一部分用于消息框中的消息。使用第二部分指定要在消息框中显示的按钮和图标。第三部分显示在消息框的标题栏中。

l注意:将光标放在Visual Basic编辑器中的vbYesNo上,然后单击F1查看可以使用的其他按钮和图标。也可以使用相应的值4和32,而不是常量vbYesNo和vbQuestion。

2)  If answer = vbYes Then
      Cells.ClearContents
Else
      'do nothing
End If
如果用户单击“是”按钮,Excel VBA将清空工作表。如果用户单击No按钮,则不会发生任何事情。

代码的运行情况

我们先在工作表中建立一个运行按钮,并关联上上述的“mynzC”过程,并在工作表中随便录入些数值、符号,之后在点击后会清除。如下图:

我们点击运行,会弹出下面的窗口:

我们选择“是”。
这个时候的工作表就被清空了。

今日内容回向:
   1) MsgBox函数的语法了解吗?
   2) MsgBox函数在应用时分几部分?
   3)  清空工作表是那句代码?


本讲内容参考程序文件:工作簿02.xlsm
   
 
我20多年的VBA成果全在下面的资料中:
【分享成果,随喜正能量】得之我幸,失之我命,随缘顺心,知足的人最有福。
文章转载自VBA语言専攻,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论