- 1.0了解MsgBox 函數(shù)
1.1 MsgBox 函數(shù)
在對話框中顯示消息,用戶單擊按鈕,并返回一個 Integer 告訴用戶單擊哪一個按鈕。
語法:
MsgBox(prompt[, buttons] [, title] [, helpfile, context])
MsgBox 函數(shù)的語法具有以下幾個命名參數(shù):
lPrompt必需的。字符串表達式,作為顯示在對話框中的消息。prompt 的最大長度大約為 1024 個字符,由所用字符的寬度決定。如果 prompt 的內(nèi)容超過一行,則可以在每一行之間用回車符 (Chr(13))、換行符 (Chr(10)) 或是回車與換行符的組合 (Chr(13) & Chr(10)) 將各行分隔開來。
lButtons可選的。數(shù)值表達式是值的總和,指定顯示按鈕的數(shù)目及形式,使用的圖標樣式,缺省按鈕是什么以及消息框的強制回應等。如果省略,則 buttons 的缺省值為 0。
lTitle可選的。在對話框標題欄中顯示的字符串表達式。如果省略 title,則將應用程序名放在標題欄中。 lHelpfile可選的。字符串表達式,識別用來向?qū)υ捒蛱峁┥舷挛南嚓P(guān)幫助的幫助文件。如果提供了 helpfile,則也必須提供 context。
lContext可選的。數(shù)值表達式,由幫助文件的作者指定給適當?shù)膸椭黝}的幫助上下文編號。如果提供了 context,則也必須提供 helpfile。
1.2 MsgBox 常數(shù)
可在代碼中的任何地方使用下列常數(shù)代替實際值:
MsgBox 參數(shù)
常數(shù)
|
值
|
描述
|
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
|
關(guān)鍵消息
|
vbQuestion
|
32
|
警告詢問
|
vbExclamation
|
48
|
警告消息
|
vbInformation
|
64
|
通知消息
|
vbDefaultButton1
|
0
|
第一個按鈕是缺省的(缺省值)
|
vbDefaultButton2
|
256
|
第二個按鈕是缺省的
|
vbDefaultButton3
|
512
|
第三個按鈕是缺省的
|
vbDefaultButton4
|
768
|
第四個按鈕是缺省的
|
vbApplicationModal
|
0
|
應用程序形態(tài)的消息框(缺省值)
|
vbSystemModal
|
4096
|
系統(tǒng)強制返回的消息框
|
vbMsgBoxHelpButton
|
16384
|
添加Help按鈕到消息框
|
VbMsgBoxSetForeground
|
65536
|
指定消息框窗口作為前景窗口
|
vbMsgBoxRight
|
524288
|
文本是右對齊的
|
vbMsgBoxRtlReading
|
1048576
|
指定在希伯來語和阿拉伯語系統(tǒng)中,文本應當顯示為從右到左讀
|
MsgBox 返回值
常數(shù)
|
值
|
描述
|
vbOK
|
1
|
按下 OK 按鈕
|
vbCancel
|
2
|
按下 Cancel 按鈕
|
vbAbort
|
3
|
按下 Abort 按鈕
|
vbRetry
|
4
|
按下 Retry 按鈕
|
vbIgnore
|
5
|
按下 Ignore 按鈕
|
vbYes
|
6
|
按下 Yes 按鈕
|
vbNo
|
7
|
按下 No 按鈕
|
2.0 MsgBox 函數(shù)實例
2.1 MsgBox 函數(shù)常規(guī)使用實例
MsgBox "這是一個消息框函數(shù)演示實例! ", vbOKOnly + vbInformation, "江羽實例:"
2.2 MsgBox 函數(shù)返回值實例
If MsgBox("提供返回值實例!", vbYesNo, "江羽實例:") = vbYes Then
Debug.Print "你點的是按鈕!"
Else
Debug.Print "你點了否按鈕!"
End If
2.3 MsgBox 函數(shù)所有參數(shù)完整實例
Dim Msg, Title, Help, Ctxt
Dim Style As VbMsgBoxStyle
Dim Response As VbMsgBoxResult
Msg = "消息框函數(shù)完整實例演示!" ' 定義消息信息內(nèi)容。
Style = vbYesNo + vbCritical + _
vbDefaultButton2 + _
vbMsgBoxHelpButton ' 定義消息圖標及相關(guān)按鈕。
Title = "江羽實例:" ' 定義標題。
' 定義幫助文件需指定幫助文件路徑。
Help = CurrentProject.Path & "\help.chm"
Ctxt = 1001 '此ID由定義幫助文件時自定義上下文。
'顯示信息并將函數(shù)返回值賦值給Response
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' 用戶按下“是”。
Debug.Print "你按了是按鈕! " ' 完成某操作。
Else ' 用戶按下“否”。
Debug.Print "你按了否按鈕!" ' 完成某操作。
End If
注意:如需要消息框中提示幫助信息vbMsgBoxHelpButton 按鈕常數(shù)是必須的
3.0 漢化 MsgBox 函數(shù)實現(xiàn)
3.1枚舉常數(shù)
Enum 樣式
'枚舉圖標
出錯 = vbCritical
提問 = vbQuestion
警示 = vbExclamation
提示 = vbInformation
'枚舉按鈕
僅確定 = vbOKOnly
確定取消 = vbOKCancel
終止重試忽略 = vbAbortRetryIgnore
是否取消 = vbYesNoCancel
是否 = vbYesNo
重試取消 = vbRetryCancel
'枚舉默認按鈕
默認按鈕1 = vbDefaultButton1
默認按鈕2 = vbDefaultButton2
默認按鈕3 = vbDefaultButton3
默認按鈕4 = vbDefaultButton4
'幫助按鈕常數(shù)
幫助按鈕 = vbMsgBoxHelpButton
End Enum
'枚舉按鈕常數(shù)
Enum 按鈕
確定 = vbOK
取消 = vbCancel
關(guān)于 = vbAbort
重試 = vbRetry
忽略 = vbIgnore
是 = vbYes
否 = vbNo
End Enum
說明:所謂枚舉變量,就是指用 Enum 類型定義的變量。變量和參數(shù)都可以定義為 Enum 類型。Enum 類型中的元素被初始化為 Enum 語句中指定的常數(shù)值。所賦給的值可以包括正數(shù)和負數(shù),且在運行時不能改變。(具體參看幫助)
3.2自定義漢化消息函數(shù)
Public Function 消息框(ByVal 內(nèi)容 As String, _
Optional 樣式 As 樣式 = 僅確定, _
Optional 標題 As String = "江羽實例:", _
Optional 幫助文件, _
Optional 上下文) As 按鈕
消息框 = MsgBox(內(nèi)容, 樣式, 標題, 幫助文件, 上下文)
End Function
說明:Optional關(guān)鍵字實現(xiàn)可選參數(shù),參數(shù)可以缺省,并可以指定一個缺省值。
3.3 漢化消息函數(shù)實例演示
If 消息框("這是漢化的消息框函數(shù)!", _
確定取消 + 出錯 + 幫助按鈕, , _
"C:\Help.chm", 1001) = 確定 Then
消息框 "你點了【確定】按鈕!", 提示
Else
消息框 "你點了【取消】按鈕!", 提示
End If
說明:C:\Help.chm 應為你指定幫助文件的完整路徑。