VB:MsgBox示例
━━━━━━━━━━━━━━━━━━━━━━━━━━
(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.”
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."
(8) 信息框中的各种图标
在MsgBox函数中为参数buttons指定常量值,可以显示相应的图标。其中,常量 vbExclamation显示“警告消息”图标,常量vbQuestion显示“警告询问”图标,常量vbCritical显示“关健信息”图标并伴有提示声,常量vbInformation显示“信息”图标。注意,这四个常量若相互组合,将不会显示任何图标。
(9) 控制换行
在MsgBox函数中,可以使用常量vbCrLf或者常量vbNewLine在显示的消息框中强制换行。下面的代码运行后将显示如图3所示的有4行文本的消息框。
Sub testLine()
MsgBox "第一行" & vbCrLf _
& "第二行" & vbCrLf _
& "第三行" & vbNewLine _
&n爱情公寓4bsp; & "第四行"
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个字符,即限制了可以在消息框中显示内容的长度。
━━━━━━━━━━━━━━━━━━━━━━━━━━
(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."
(8) 信息框中的各种图标
在MsgBox函数中为参数buttons指定常量值,可以显示相应的图标。其中,常量 vbExclamation显示“警告消息”图标,常量vbQuestion显示“警告询问”图标,常量vbCritical显示“关健信息”图标并伴有提示声,常量vbInformation显示“信息”图标。注意,这四个常量若相互组合,将不会显示任何图标。
(9) 控制换行
在MsgBox函数中,可以使用常量vbCrLf或者常量vbNewLine在显示的消息框中强制换行。下面的代码运行后将显示如图3所示的有4行文本的消息框。
Sub testLine()
MsgBox "第一行" & vbCrLf _
& "第二行" & vbCrLf _
& "第三行" & vbNewLine _
&n爱情公寓4bsp; & "第四行"
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个字符,即限制了可以在消息框中显示内容的长度。