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 | 只顯示“確定”按鈕。(預設) | |
vbOKCancel | 1 | 顯示“確定”和“取消”按鈕。 |
vbAbortRetryIgnore | 2 | 顯示“終止”、“重試”和“忽略”按鈕。 |
vbYesNoCancel | 3 | 顯示“是”、“否”和“取消”按鈕。 |
vbYesNo | 4 | 顯示“是”和“否”按鈕。 |
vbRetryCancel | 5 | 顯示“重試”和“取消”按鈕。 |
圖標的樣式(根據系統設置,可能伴有聲音) | ||
vbCritical | 16 | 顯示“錯誤信息”圖標。 |
vbQuestion | 32 | 顯示“詢問信息”圖標。 |
vbExclamation | 48 | 顯示“警告消息”圖標。 |
vbInformation | 64 | 顯示“通知消息”圖標。 |
默認按鈕 | ||
vbDefaultButton1 | 第一個按鈕是默認按鈕。(預設) | |
vbDefaultButton2 | 256 | 第二個按鈕是默認按鈕。 |
vbDefaultButton3 | 512 | 第三個按鈕是默認按鈕。 |
vbDefaultButton4 | 768 | 第四個按鈕是默認按鈕。 |
對話框的強制返回性 | ||
vbApplicationModal | 應用程序強制返回;應用程序一直被掛起,直到用戶對消息框作出響應才繼續工作。 | |
vbSystemModal | 4096 | 系統強制返回;全部應用程序都被掛起,直到用戶對消息框作出響應才繼續工作。 |
對話框特殊設置 | ||
vbMsgBoxHelpButton | 16384 | 將幫助按鈕添加到消息框。 |
vbMsgBoxSetForeground | 65536 | 指定消息框窗口作為前景窗口。 |
vbMsgBoxRight | 524288 | 文本為右對齊。 |
vbMsgBoxRtlReading | 1048576 | 指定文本應為在希伯來和阿拉伯語系統中的從右到左顯示。 |
這些常數都是Visual Basic for Applications(VBA)指定的。所以,可以在程序代碼中使用這些常數名稱,而不使用實際數值。
MsgBox函數返回值 | ||
---|---|---|
常數 | 值 | 描述 |
vbOK | 1 | 單擊了“確定”按鈕。 |
vbCancel | 2 | 單擊了“取消”按鈕。 |
vbAbort | 3 | 單擊了“終止”按鈕。 |
vbRetry | 4 | 單擊了“重試”按鈕。 |
vbIgnore | 5 | 單擊了“忽略”按鈕。 |
vbYes | 6 | 單擊了“是”按鈕。 |
vbNo | 7 | 單擊了“否”按鈕。 |
MsgBox函數效果
如果對話框顯示“取消”按鈕,則按下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常數在消息內容中換行。
1 | MsgBox "第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函數返回值" |