msgbox用法

msgbox用法

2010-06-12 09:55:46 阅读10 评论0 字号:




1、作用

在消息框中显示信息,并等待用户单击按钮,可返回单击的按钮值(比如“确定”或者“取消”)。通常用作显示变量值的一种方式。

2、语法

MsgBox(Prompt[,Buttons][,Title][,Helpfile,Context])

参数说明:

(1)Prompt,必需的参数,为字符串,作为显示在消息框中的消息文本。其{zd0}长度约为1024个字符,由所用字符的宽度决定。如果prompt的内容超过一行,则可以在每一行之间用回车符(Chr(13))、换行符(Chr(10))或是回车与换行符的组合(Chr(13)&Chr(10))将各行分隔开来。

(2)Buttons,可选的参数,为数值表达式的值之和,指定显示的按钮的数目及形式、使用的图标样式、缺省按钮及消息框的强制回应等,可以此定制消息框。若省略该参数,则其缺省值为0。设置值见下表。

(3)Title,可选的参数,表示在消息框的标题栏中所显示的文本。若省略该参数,则将应用程序名放在标题栏中。

(4)Helpfile,可选的参数,为字符串表达式,提供帮助文件。若有Helpfile,则必须有Context。

(5)Context,可选的参数,为数值表达式,提供帮助主题。若有Context,则必须有Helpfile。

3、Button参数

用于MsgBox函数中Button参数的常量

常量                  值                 说明

vbOKOnly                0     只显示“确定”按钮

VbOKCancel              1     显示“确定”和“取消”按钮

VbAbortRetryIgnore      2     显示“终止”、“重试”和“忽略” 按钮

VbYesNoCancel           3     显示“是”、“否”和“取消”按钮

VbYesNo                 4     显示“是”和“否”按钮

VbRetryCancel           5     显示“重试”和“取消”按钮

VbCritical              16    显示“关键信息”图标

VbQuestion              32    显示“警告询问”图标

VbExclamation           48    显示“警告消息”图标

VbInformation           64    显示“通知消息”图标

vbDefaultButton1         0    {dy}个按钮是缺省值(缺省设置)

vbDefaultButton2        256第二个按钮是缺省值

vbDefaultButton3        512第三个按钮是缺省值

vbDefaultButton4        768第四个按钮是缺省值

vbApplicationModal        0应用程序强制返回;应用程序一直被挂起,直到用户对消息框

作出响应才继续工作

vbSystemModal           4096系统强制返回;全部应用程序都被挂起,直到用户对消息框作

出响应才继续工作

vbMsgBoxHelpButton       16384将Help按钮添加到消息框

VbMsgBoxSetForeground 65536指定消息框窗口作为前景窗口

vbMsgBoxRight            524288文本为右对齐

vbMsgBoxRtlReading      1048576指定文本应为在希伯来和阿拉伯语系统中的从右到左显示

说明:

(1){dy}组值(0–5)描述了消息框中显示的按钮的类型与数目;第二组值(16,32,48,64)描述了图标的样式;第三组值(0,256,512,768)说明哪一个按钮是缺省值;而第四组值(0,4096)则决定消息框的强制返回性。将这些数字相加以生成Buttons参数值的时候,只能由每组值取用一个数字。

(2)这些常数都是VBA指定的,可以在程序代码中使用这些常数名称代替实际数值。

4、返回值

用于MsgBox函数返回值的常量

常数            值         说明

vbOK             1          确定

vbCancel         2          取消

vbAbort          3          终止

vbRetry          4          重试

vbIgnore         5          忽略

vbYes            6          是

vbNo             7          否

5、相关说明

(1) 如果同时提供了Helpfile与Context参数,可以按F1键来查看与Context相应的帮助主题,Excel通常会在输入框中自动添加一个帮助(Help)按钮。

(2)若在消息框中显示“取消”按钮,则按下ESC键与单击“取消”按钮效果相同。若消息框中有“帮助”按钮,则提供相关的帮助信息。

(3)如果要输入多个参数并省略中间的某些参数,则必须在相应位置加入逗号分界符。

6、示例

(1)使用 MsgBox 函数,在具有“是”及“否”按钮的对话框中显示一条严重错误信息。示例中的缺省按钮为“否”,MsgBox函数的返回值视用户按哪一个钮而定。并假设DEMO.HLP为一帮助文件,其中有一个帮助主题代码为1000。

Dim Msg,Style,Title,Help,Ctxt,Response,MyString

Msg="Do you want to continue ?"       ’定义消息文本

Style = vbYesNo + vbCritical + vbDefaultButton2       ' 定义按钮

Title = "MsgBox Demonstration"       ' 定义标题文本

Help = "DEMO.HLP"       ' 定义帮助文件

Ctxt = 1000       ' 定义帮助主题

Response = MsgBox(Msg, Style, Title, Help, Ctxt)

If Response = vbYes Then       ' 用户按下“是”

       MyString = "Yes"       ' 完成某操作

Else       ' 用户按下“否”

       MyString = "No"       ' 完成某操作

End If

(2)只显示某消息

MsgBox “Hello!”

(3)将消息框返回的结果赋值给变量

Ans=MsgBox(“Continue?”,vbYesNo)

If MsgBox(“Continue?”,vbYesNo)<>vbYes Then Exit Sub

(4)使用常量的组合,赋值组Config变量,并设置第二个按钮为缺省按钮

Config=vbYesNo+vbQuestion+vbDefaultButton2

(5)若要在消息中强制换行,可在文本中使用vbCrLf(或vbNewLine)常量,用&加空格与字符隔开。如

MsgBox “This is the first line.” & vbNewLine & “Second line.”

(6)可以在消息框中使用vbTab常量插入一个制表符。下面的过程使用一个消息框来显示5×5单元格区域中的所有值,用vbTab常量分隔列并使用vbCrLf常量插入一个新行。注意在MsgBox函数最多只显示1024个字符,因此限制了可显示的单元格数。

Option Explicit

Sub ShowRangeValue()

Dim Msg As String

Dim r As Integer, c As Integer

Msg = ""

For r = 1 To 5

     For c = 1 To 5

       Msg = Msg & Cells(r, c) & vbTab

     Next c

     Msg = Msg & vbCrLf

Next r

MsgBox Msg

End Sub

(7)在消息框语句中运用工作表函数以及设置显示的数置格式,如下面语句所示:

MsgBox " selection has " & m & " cells ." & Chr(13) & " the sum is :" & Application.WorksheetFunction.Sum(Selection) & Chr(13) & "the average is :" & Format(Application.WorksheetFunction.Average(Selection), "#,##0.00"), vbInformation, "selection count & sum & average" & Chr(13)问题的提出及解决

在VBE编辑器中输入下面的代码后,

MsgBox "I am "a" boy."

光标移出该句代码后,将会提示“编译错误:缺少:语句结束”。

即,如何在信息中显示双引号(“ “)?

解决的方法是,在要显示双引号的字符或字符串外面使用双层双引号,如上面的代码,正确的输入如下:

MsgBox "I am ""a"" boy."

信息框中的各种图标

在MsgBox函数中为参数buttons指定常量值,可以显示相应的图标。其中,常量vbExclamation显示“警告消息”图标,常量vbQuestion显示“警告询问”图标,常量vbCritical显示“关健信息”图标并伴有提示声,常量vbInformation显示“信息”图标。注意,这四个常量若相互组合,将不会显示任何图标。

控制换行和云?

在MsgBox函数中,可以使用常量vbCrLf或者常量vbNewLine在显示的消息框中强制换行。下面的代码运行后将显示如图3所示的有4行文本的消息框。

Sub testLine()

     MsgBox "{dy}行" & vbCrLf _

         & "第二行" & vbCrLf _

         & "第三行" & vbNewLine _

         & "第四行"

End Sub

同时,还可以使用常量vbTab来插入一个制表符分隔列,达到使消息框中各列对齐的效果。下例用一个消息框显示当前工作表中A1至F11单元格区域中的内容,结果如图4所示。

Sub 测试排列()

     Dim msg As String

     Dim r As Long, c As Long

     msg = ""

     For r = 1 To 11

       For c = 1 To 6

         msg = msg & Cells(r, c) & vbTab

       Next c

       msg = msg & vbCrLf

     Next r

     MsgBox msg, vbInformation

End Sub

但是,MsgBox函数最多只能接受1023个字符,即限制了可以在消息框中显示内容的长度。



<#--{zx1}日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--相关文章--> <#--历史上的今天--> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构-->
郑重声明:资讯 【msgbox用法】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——