msgbox

信息提示框

MsgBox是Visual Basic和VBS中的一個函數,功能是彈出一個對話框,等待用戶單擊按鈕,並返回一個Integer值表示用戶單擊了哪一個按鈕。

“MsgBox”即為“Message Box”的縮寫,在英語中意為“信箱”。

使用方法


語法

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

參數

MsgBox函數參數
部分描述
Prompt
必選。字元串表達式,顯示在對話框中的消息。Prompt的最大長度大約為
1024個字元,由所用字元的位元組大小決定。如果Prompt的內容超過一行,則可以在每一行之間用回車符(Chr(13))、換行符(Chr(10))或是回車與換行符的組合(Chr(13) & Chr(10),即vbCrLf)將各行分隔開來。
Buttons可選。數值表達式,是一些數值的總和,指定所顯示的按鈕的數目及形式、使用的圖標樣式(及聲音),預設按鈕以及消息框的強制性等。如果省略,則其預設值為0。具體數值見“參數設置值”表格。
Title可選。字元串表達式,在對話框標題欄中顯示的內容。如果省略Title,則將應用程序標題(App.Title)放在標題欄中。
Helpfile可選。字元串表達式,用來向對話框提供上下文相關幫助的幫助文件。如果提供了Helpfile,則也必須提供Context。
Context可選。數值表達式,由幫助文件的作者指定給適當的幫助主題的幫助上下文編號。如果提供了Context,則也必須提供Helpfile。

參數設置值

Buttons參數設置值
常數描述
對話框中顯示的按鈕的類型與數目
vbOKOnly只顯示“確定”按鈕。(預設)
vbOKCancel1顯示“確定”和“取消”按鈕。
vbAbortRetryIgnore2顯示“終止”、“重試”和“忽略”按鈕。
vbYesNoCancel3顯示“是”、“否”和“取消”按鈕。
vbYesNo4顯示“是”和“否”按鈕。
vbRetryCancel5顯示“重試”和“取消”按鈕。
圖標的樣式(根據系統設置,可能伴有聲音)
vbCritical16顯示“錯誤信息”圖標。
vbQuestion32顯示“詢問信息”圖標。
vbExclamation48顯示“警告消息”圖標。
vbInformation64顯示“通知消息”圖標。
默認按鈕
vbDefaultButton1第一個按鈕是默認按鈕。(預設)
vbDefaultButton2256第二個按鈕是默認按鈕。
vbDefaultButton3512第三個按鈕是默認按鈕。
vbDefaultButton4768第四個按鈕是默認按鈕。
對話框的強制返回性
vbApplicationModal應用程序強制返回;應用程序一直被掛起,直到用戶對消息框作出響應才繼續工作。
vbSystemModal4096系統強制返回;全部應用程序都被掛起,直到用戶對消息框作出響應才繼續工作。
對話框特殊設置
vbMsgBoxHelpButton16384將幫助按鈕添加到消息框。
vbMsgBoxSetForeground65536指定消息框窗口作為前景窗口。
vbMsgBoxRight524288文本為右對齊。
vbMsgBoxRtlReading1048576指定文本應為在希伯來和阿拉伯語系統中的從右到左顯示。
這些常數都是Visual Basic for Applications(VBA)指定的。所以,可以在程序代碼中使用這些常數名稱,而不使用實際數值。

返回值

MsgBox函數返回值
常數描述
vbOK1單擊了“確定”按鈕。
vbCancel2單擊了“取消”按鈕。
vbAbort3單擊了“終止”按鈕。
vbRetry4單擊了“重試”按鈕。
vbIgnore5單擊了“忽略”按鈕。
vbYes6單擊了“是”按鈕。
vbNo7單擊了“否”按鈕。

說明

MsgBox函數效果
MsgBox函數效果
在提供了Helpfile與Context參數的時候,用戶可以按F1來查看由Context參數指定的幫助主題。像Microsoft Excel這樣的一些主機應用程序就會在 對話框中自動添加一個幫助按鈕。
如果對話框顯示“取消”按鈕,則按下Esc鍵與單擊“取消”按鈕的效果相同。如果對話框中有幫助按鈕,則對話框中提供與上下文相關的幫助。但是,直到其它按鈕中有一個被單擊之前,都不會返回任何值。

代碼示例


一、使用MsgBox函數,在具有“是”及“否”按鈕的對話框中顯示一條錯誤信息。示例中的預設按鈕為“否”,並假設Demo.hlp為一幫助文件,其中有一個幫助主題編號為1000。
1
2
3
4
5
6
7
8
9
10
11
12
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "程序發生錯誤,繼續?" '定義消息文本
Style = vbYesNo + vbCritical + vbDefaultButton2 '定義對話框樣式
Title = "錯誤信息" '定義標題文本
Help = "Demo.hlp" '定義幫助文件
Ctxt = 1000 '定義幫助主題編號
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then '用戶按下“是”按鈕
MyString = "Yes" '進行某些操作
Else '用戶按下“否”按鈕
MyString = "No" '進行某些操作
End If
二、使用vbCrLf常數在消息內容中換行。
1MsgBox "第1行" & vbCrLf & "第2行"
三、使用vbTab常數顯示多行對齊的文本。
1
2
3
4
5
6
MsgBox "常數" & vbTab & "值" & vbCrLf & _
"vbOK" & vbTab & 1 & vbCrLf & _
"vbCancel" & vbTab & 2 & vbCrLf & _
"vbAbort" & vbTab & 3 & vbCrLf & _
"……" & vbTab & "……", _
vbOKOnly, "MsgBox函數返回值"