一、題目:
要求編寫一段代碼,用MsgBox函數來顯示一個具有「是」及「否」按鈕的對話框,並根據用戶對於消息框的不同選擇進行相關的操作。
二、代碼:
Sub 示例_1_030()
Dim Msg, An, Bt, Yhhy
Msg = "你要繼續嗎 ?"
An = vbYesNo + vbCritical + vbDefaultButton1
Bt = "MsgBox 示例" ' 定義標題。
Yhhy = MsgBox(Msg, An, Bt)
If Yhhy = vbYes Then ' 用戶按下「是」。
MsgBox "你按下的是「是」按鈕。" ' 完成某操作。
Else ' 用戶按下「否」。
MsgBox "你按下的是「否」按鈕。" ' 完成某操作。
End If
End Sub
三、代碼詳解
1、Sub 示例_1_030():宏程序的開始語句。宏名為示例_1_030。
2、Dim Msg, An, Bt, Yhhy :聲明變量均為可變型變量。
3、Msg = "你要繼續嗎 ?" :把指定的信息賦給變量Msg。
4、An = vbYesNo + vbCritical + vbDefaultButton1 :把指定的按鈕賦給變量An。這句也可寫為An=4+16,第3個參數是默認的,為0,可省略。
5、Bt = "MsgBox 示例" :把消息框的標題賦給變量Bt。
6、Yhhy = MsgBox(Msg, An, Bt) :把MsgBox函數的返回值(即用戶按了哪個按鈕)賦給變量Yhhy。
7、If Yhhy = vbYes Then : 如果用戶按下「是」,那麼執行下面的語句;
8、MsgBox "你按下的是「是」按鈕。" 用MsgBox函數返回信息,因為不需要函數的返回值,所以可以去掉函數參數的括號。
MsgBox 函數
在對話框中顯示消息,等待用戶單擊按鈕,並返回一個 Integer ,說明用戶單擊了哪一個按鈕。
MsgBox(prompt[,buttons] [, title] [, helpfile, context])
MsgBox 函數的語法具有以下幾個命名參數:
Prompt 必需的。字符串表達式,作為顯示在對話框中的消息。prompt 的最大長度大約為 1024 個字符,由所用字符的寬度決定。如果 prompt 的內容超過一行,則可以在每一行之間用回車符 (Chr(13))、換行符 (Chr(10)) 或是回車與換行符的組合 (Chr(13) & Chr(10)) 將各行分隔開來。
Buttons 可選的。數值表達式是值的總和,指定顯示按鈕的數目及形式,使用的圖標樣式,預設按鈕是什麼以及消息框的強制回應等。如果省略,則 buttons 的預設值為 0。
Title可選的。在對話框標題欄中顯示的字符串表達式。如果省略 title,則將應用程式名放在標題欄中。
Helpfile可選的。字符串表達式,識別用來向對話框提供上下文相關幫助的幫助文件。如果提供了 helpfile,則也必須提供 context。
Context 可選的。數值表達式,由幫助文件的作者指定給適當的幫助主題的幫助上下文編號。如果提供了 context,則也必須提供 helpfile。
設置值
buttons 參數有下列設置值:
常數 值 描述
vbOKOnly 0 只顯示 OK 按鈕。
VbOKCancel 1 顯示 OK 及 Cancel 按鈕。
VbAbortRetryIgnore 2 顯示 Abort、Retry 及 Ignore 按鈕。
VbYesNoCancel 3 顯示 Yes、No 及 Cancel 按鈕。
VbYesNo 4 顯示 Yes 及 No 按鈕。
VbRetryCancel 5 顯示 Retry 及 Cancel 按鈕。
VbCritical 16 顯示 Critical Message 圖標。
VbQuestion 32 顯示 Warning Query 圖標。
VbExclamation 48 顯示 Warning Message 圖標。
VbInformation 64 顯示 Information Message 圖標。
vbDefaultButton1 0 第一個按鈕是預設值。
vbDefaultButton2 256 第二個按鈕是預設值。
vbDefaultButton3 512 第三個按鈕是預設值。
vbDefaultButton4 768 第四個按鈕是預設值。
vbApplicationModal 0 應用程式強制返回;應用程式一直被掛起直到用戶對消息框作出響應才繼續工作。
vbSystemModal 4096 系統強制返回;全部應用程式都被掛起,直到用戶對消息框作出響應才繼續工作。
vbMsgBoxHelpButton 16384 將Help按鈕添加到消息框
VbMsgBoxSetForeground 65536 指定消息框窗口作為前景窗口
vbMsgBoxRight 524288 文本為右對齊
vbMsgBoxRtlReading 1048576指定文本應為在希伯來和阿拉伯語系統中的從右到左顯示
第一組值 (0–5) 描述了對話框中顯示的按鈕的類型與數目;
第二組值 (16, 32,48, 64) 描述了圖標的樣式;
第三組值 (0, 256,512) 說明哪一個按鈕是預設值;
第四組值 (0, 4096)則決定消息框的強制返回性。將這些數字相加以生成 buttons 參數值的時候,只能由每組值取用一個數字。
第五組值 (16384,65536,524288,1048576)是附加選項。
注意 這些常數都是 Visual Basic for Applications (VBA) 指定的。結果,可以在程序代碼中到處使用這些常數名稱,而不必使用實際數值。
返回值
常數 值 描述
vbOK 1 確定
vbCancel2 取消
vbAbort 3 放棄
vbRetry 4 重試
vbIgnore5 忽略
vbYes 6 是
vbNo 7 否
說明
在提供了 helpfile 與 context 的時候,用戶可以按 F1(Windows) or HELP(Macintosh) 來查看與 context 相應的幫助主題。像 Microsoft Excel 這樣一些主應用程式也會在對話框中自動添加一個 幫助按鈕。
如果對話框顯示 取消按鈕,則按下 ESC 鍵與單擊 取消 按鈕的效果相同。如果對話框中有 Help 按鈕,則對話框中提供有上下文相關的幫助。但是,直到其它按鈕中有一個被單擊之前,都不會返回任何值。
注意如果還要指定第一個命名參數以外的參數,則必須在表達式中使用 MsgBox。為了省略某些位置參數,必須加入相應的逗號分界符。