vb之msgbox用法(转)

1、作用

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

2、语法

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

参数说明:

(1)Prompt,必需的参数,为字符串,作为显示在消息框中的消息文本。其最大长度约为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    第一个按钮是缺省值(缺省设置)

vbDefaultButton2        256第二个按钮是缺省值

vbDefaultButton3        512第三个按钮是缺省值

vbDefaultButton4        768第四个按钮是缺省值

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

作出响应才继续工作

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

出响应才继续工作

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

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

vbMsgBoxRight            524288文本为右对齐

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

说明:

(1)第一组值(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 "第一行" & 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个字符,即限制了可以在消息框中显示内容的长度。

MSGBOX是Visual Basic.NET中的一个函数,用于弹出消息,并显示指定的文本和按钮。MSGBOX用法如下: 1. 显示一个简单的消息 MSGBOX("Hello World!") 这将弹出一个消息,显示"Hello World!"。 2. 显示一个带标题的消息 MSGBOX("Hello World!", MsgBoxStyle.Information, "Welcome") 这将弹出一个消息,显示"Hello World!",并在标题栏显示"Welcome"。 3. 显示一个带有多个按钮的消息 MSGBOX("Are you sure you want to delete this file?", MsgBoxStyle.YesNoCancel) 这将弹出一个消息,显示"Are you sure you want to delete this file?",并显示"Yes"、"No"和"Cancel"三个按钮。 4. 获取用户的响应 Dim response As MsgBoxResult response = MsgBox("Are you sure you want to delete this file?", MsgBoxStyle.YesNo) If response = MsgBoxResult.Yes Then '用户点击了"Yes"按钮,执行删除操作 Else '用户点击了"No"按钮,取消删除操作 End If 这将弹出一个消息,显示"Are you sure you want to delete this file?",并显示"Yes"和"No"两个按钮。代码通过获取用户的响应来判断用户是否点击了"Yes"按钮,如果是,则执行删除操作;如果是"No"按钮,则取消删除操作。 5. 显示一个带有自定义按钮文本的消息 Dim buttons() As String = {"Yes, please", "No, thank you", "Maybe later"} Dim result As Integer = MsgBox("Would you like some tea?", MsgBoxStyle.YesNoCancel, "Tea Time") If result = MsgBoxResult.Yes Then MsgBox("Great, I'll make some tea for you.") ElseIf result = MsgBoxResult.No Then MsgBox("Okay, maybe next time.") Else MsgBox("No problem, enjoy your day.") End If 这将弹出一个消息,显示"Would you like some tea?",并显示三个自定义按钮文本"Yes, please"、"No, thank you"和"Maybe later"。代码通过获取用户的响应来判断用户点击了哪个按钮,并执行相应的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值