你也許一直認(rèn)為顯示消息框需要長(zhǎng)時(shí)間的程序設(shè)計(jì),這種觀點(diǎn)是完全錯(cuò)誤的。要?jiǎng)?chuàng)建消息框,可用如下VBA代碼:
Msgbox "Do you wish to save the changes to '" &_
ThisWorkbook.Name &" '", vbYesNoCancel + vbExclamation
代碼中的ThisWorkbook.Name用來獲取當(dāng)前工作簿的名字。
MsgBox函數(shù)可用于在對(duì)話框中顯示信息。一旦顯示出來,消息框?qū)⒁恢北3?,直至用戶單擊某個(gè)按鈕為止。根據(jù)用戶單擊的按鈕,會(huì)返回不同的整數(shù)值。 MsgBox函數(shù)的語法如下:
MsgBox(prompt[,buttons][,title][,helpfile,context])
這個(gè)函數(shù)必須具有的參數(shù)只有prompt。prompt的值是將在對(duì)話框中作為信息顯示的字符串。注意在給出的語法中括號(hào)的運(yùn)用。MsgBox是一個(gè)函數(shù),這意味著它將返回一個(gè)值。在前面給出的例子中并沒有括號(hào)。如果去掉函數(shù)參數(shù)的括號(hào),就是在告訴 V B A不需要函數(shù)的返回值。如果希望獲得返回值,可使用和下面相似的代碼:
Dim iResponse As Integer
IResponse=MsgBox("Do you wish to save the changes to '" & _
This Workbook.Name &" '", vbYesNoCancel + vbExclamation) 現(xiàn)在MsgBox語句被分成了兩行。VBA中的續(xù)行號(hào)是空格加下劃線。
如果沒有為buttons參數(shù)提供數(shù)值,默認(rèn)設(shè)置下,VBA假設(shè)你只希望在創(chuàng)建的對(duì)話框中添加“確定”按鈕??蛇x參數(shù)buttons是一個(gè)非常有用的參數(shù),它允許你控制:
* 消息框中包括的按鈕的數(shù)目。
* 消息框中包括的按鈕的類型。
* 消息框中顯示的圖標(biāo)。
* 消息框的默認(rèn)按鈕。
* 消息框的特征。
表5-1列出了buttons參數(shù)的可能的各種設(shè)置。在這張表格中,你會(huì)發(fā)現(xiàn)參數(shù)分成了幾組。
第一組設(shè)置對(duì)話框顯示的按鈕數(shù)目和類型,第二組選擇圖標(biāo)的風(fēng)格,第三組設(shè)置默認(rèn)按鈕,第四組設(shè)置對(duì)話框的特征。當(dāng)添加數(shù)值創(chuàng)建最終的buttons參數(shù)時(shí),從各組數(shù)值中只能選擇一個(gè)。 表1 可用的MsgBox函數(shù)的buttons參數(shù)值
參數(shù)組
常量
數(shù)值
描述
第一組
vbOKOnly
0
只顯示“確定”按鈕(默認(rèn)設(shè)置)
vbOKCancel
1
顯示“確定”和“取消”按鈕
vbAbortRetryIgnore
2
顯示“放棄”、“重試”和“忽略”按鈕
vbYesNoCancel
3
顯示“是”、“否”和“取消”按鈕
vbYesNo
4
顯示“是”和“否”按鈕
vbRetryCancel
5
顯示“重試”和“取消”按鈕
第二組
vbCritical
16
顯示危險(xiǎn)消息圖標(biāo)
vbQuestion
32
顯示警告詢問圖標(biāo)
vbExclamation
48
顯示警告消息圖標(biāo)
vbInformation
64
顯示信息消息圖標(biāo)
第三組
vbDefaultButton1
0
第一個(gè)按鈕為默認(rèn)按鈕
vbDefaultButton2
256
第二個(gè)按鈕為默認(rèn)按鈕
vbDefaultButton3
512
第三個(gè)按鈕為默認(rèn)按鈕
vbDefaultButton4
768
第四個(gè)按鈕為默認(rèn)按鈕
第四組
vbApplication Modal
0
應(yīng)用程序模式:用戶必須對(duì)消息框作出響應(yīng)才能繼續(xù)使用當(dāng)前的應(yīng)用程序
vbSystemModal
4096
系統(tǒng)模式;所有應(yīng)用程序都被掛起直至用戶對(duì)消息框作出響應(yīng)
附加選項(xiàng)
vbMsgBoxHelpButton
16384
在消息框上添加“幫助”按鈕
vbMsgBoxSetForeground
65536
將消息框設(shè)置為前景窗口
vbMsgBoxRight
524288
顯示右對(duì)齊的消息框
vbMsgBoxRtlReading
1048576
指定在希伯萊和阿拉伯系統(tǒng)中顯示的文本應(yīng)當(dāng)從右向左閱讀
要查看MsgBox函數(shù)和其他VisualBasic內(nèi)置常數(shù)的列表,可使用ObjectBrowser。尋找以VB開始的類,也可查看Constant類,也可找到Excel的內(nèi)置常數(shù)。
可選的標(biāo)題常數(shù)可以設(shè)置對(duì)話框標(biāo)題欄顯示的字符串表達(dá)式。如果不提供title常數(shù)的值,MicrosoftExcel將顯示在標(biāo)題欄中。
helpfile和context都是可選常數(shù),當(dāng)你為應(yīng)用程序創(chuàng)建了自己的幫助文件時(shí)可以使用它們。
MsgBox是一個(gè)函數(shù),這就意味著它將返回一個(gè)數(shù)值。表5-2列出了MsgBox函數(shù)可能返回的數(shù)值。返回值完全取決于用戶所選擇的按鈕。 表2 MsgBox函數(shù)的返回值
常數(shù)
值
說明
vbOK
1
確定
vbCancel
2
取消
vbAbort
3
終止
vbRetry
4
重試
vbIgnore
5
忽略
vbYes
6
是
vbNo
7
否
查看MsgBox函數(shù)的返回值,你認(rèn)為需要?jiǎng)?chuàng)建哪種類型的變量來保存返回值?定義用來保存MsgBox函數(shù)的返回值的變量時(shí),可以使用的最好數(shù)據(jù)類型是Integer。