Visual Basic 和 VBS 中的函數(shù),可實現(xiàn)彈出窗口.
作用:在對話框中顯示消息,等待用戶單擊按鈕,并返回一個 Integer 告訴用戶單擊哪一個按鈕。
語法:
MsgBox(prompt[, buttons] [, title] [, helpfile, context])
參數(shù)說明:
MsgBox 函數(shù)的語法具有以下幾個命名參數(shù):
Prompt-------必需的。字符串表達(dá)式,作為顯示在對話框中的消息。prompt 的最大長度大約為 1024 個字符,由所用字符的寬度決定。如果 prompt 的內(nèi)容超過一行,則可以在每一行之間用回車符 (Chr(13))、換行符 (Chr(10)) 或是回車與換行符的組合 (Chr(13) & Chr(10)) 將各行分隔開來。
Buttons-------可選的。數(shù)值表達(dá)式是值的總和,指定顯示按鈕的數(shù)目及形式,使用的圖標(biāo)樣式,缺省按鈕是什么以及消息框的強制回應(yīng)等。如果省略,則 buttons 的缺省值為 0。
Title-------可選的。在對話框標(biāo)題欄中顯示的字符串表達(dá)式。如果省略 title,則將應(yīng)用程序名放在標(biāo)題欄中。
Helpfile--------可選的。字符串表達(dá)式,識別用來向?qū)υ捒蛱峁┥舷挛南嚓P(guān)幫助的幫助文件。如果提供了 helpfile,則也必須提供 context。
Context-------可選的。數(shù)值表達(dá)式,由幫助文件的作者指定給適當(dāng)?shù)膸椭黝}的幫助上下文編號。如果提供了 context,則也必須提供 helpfile。
用于MsgBox函數(shù)中Buttons參數(shù)的常量
常量值 說明
vbOKOnly 0 只顯示“確定”按鈕(缺省值)
VbOKCancel 1 顯示“確定”和“取消”按鈕
VbAbortRetryIgnore 2 顯示“終止”、“重試”和“忽略” 按鈕
VbYesNoCancel 3 顯示“是”、“否”和“取消”按鈕
VbYesNo 4 顯示“是”和“否”按鈕
VbRetryCancel 5 顯示“重試”和“取消”按鈕
VbCritical 16 顯示“關(guān)鍵信息”圖標(biāo)
VbQuestion 32 顯示“警告詢問”圖標(biāo)
VbExclamation 48 顯示“警告消息”圖標(biāo)
VbInformation 64 顯示“通知消息”圖標(biāo)
vbDefaultButton1 0 第一個按鈕是缺省值(缺省設(shè)置)
vbDefaultButton2 256 第二個按鈕是缺省值
vbDefaultButton3 512 第三個按鈕是缺省值
vbDefaultButton4 768 第四個按鈕是缺省值
vbApplicationModal 0 應(yīng)用程序強制返回;應(yīng)用程序一直被掛起,直到用戶對消息框
作出響應(yīng)才繼續(xù)工作
vbSystemModal 4096 系統(tǒng)強制返回;全部應(yīng)用程序都被掛起,直到用戶對消息框作
出響應(yīng)才繼續(xù)工作
vbMsgBoxHelpButt 16384 將Help按鈕添加到消息框
on
VbMsgBoxSetFore 65536 指定消息框窗口作為前景窗口
ground
vbMsgBoxRight 524288 文本為右對齊
vbMsgBoxRtlRe 1048576 指定文本應(yīng)為在希伯來和阿拉伯語系統(tǒng)中的從右到左顯示
ading
說明:
(1)第一組值(0–5)描述了消息框中顯示的按鈕的類型與數(shù)目;第二組值(16,32,48,64)描述了圖標(biāo)的樣式;第三組值(0,256,512,768)說明哪一個按鈕是缺省值;而第四組值(0,4096)則決定消息框的強制返回性。將這些數(shù)字相加以生成Buttons參數(shù)值的時候,只能由每組值取用一個數(shù)字。
(2)這些常數(shù)都是 Visual Basic for Applications (VBA) 指定的。結(jié)果,可以在程序代碼中到處使用這些常數(shù)名稱,而不必使用實際數(shù)值。實際數(shù)值與常數(shù)名稱是等價的。
返回值
用于MsgBox函數(shù)返回值的常量
常數(shù)值 說明
vbOK 1 確定
vbCancel 2 取消
vbAbort 3 終止
vbRetry 4 重試
vbIgnore 5 忽略
vbYes 6 是
vbNo 7 否
(1) 如果同時提供了Helpfile與Context參數(shù),可以按F1鍵來查看與Context相應(yīng)的幫助主題,Excel通常會在輸入框中自動添加一個幫助(Help)按鈕。
(2)若在消息框中顯示“取消”按鈕,則按下ESC鍵與單擊“取消”按鈕效果相同。若消息框中有“幫助”按鈕,則提供相關(guān)的幫助信息。
(3)如果要輸入多個參數(shù)并省略中間的某些參數(shù),則必須在相應(yīng)位置加入逗號分界符。
示例
(1)(1)使用 MsgBox 函數(shù),在具有“是”及“否”按鈕的對話框中顯示一條嚴(yán)重錯誤信息。示例中的缺省按鈕為“否”,MsgBox函數(shù)的返回值視用戶按哪一個鈕而定。并假設(shè)DEMO.HLP為一幫助文件,其中有一個幫助主題代碼為1000。
Dim Msg,Style,Title,Help,Ctxt,Response,MyString
Msg="Do you want to continue ?" ’定義消息文本
Style = vbYesNo + vbCritical + vbDefaultButton2 ' 定義按鈕
Title = "MsgBox Demonstration" ' 定義標(biāo)題文本
Help = "DEMO.HLP" ' 定義幫助文件
Ctxt = 1000 ' 定義幫助主題
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' 用戶按下“是”
MyString = "Yes" ' 完成某操作
Else ' 用戶按下“否”
MyString = "No" ' 完成某操作
End If
(2)只顯示某消息
MsgBox “Hello!”
(3)將消息框返回的結(jié)果賦值給變量
Ans=MsgBox(“Continue?”,vbYesNo)
If MsgBox(“Continue?”,vbYesNo)<>vbYes Then Exit Sub
(4)使用常量的組合,賦值組Config變量,并設(shè)置第二個按鈕為缺省按鈕
Config=vbYesNo+vbQuestion+vbDefaultButton2
(5)若要在消息中強制換行,可在文本中使用vbCrLf(或vbNewLine)常量,用&(或+)加空格與字符隔開。如
MsgBox “This is the first line.” & vbNewLine & “Second line.”
(6)可以在消息框中使用vbTab常量插入一個制表符。下面的過程使用一個消息框來顯示5×5單元格區(qū)域中的所有值,用vbTab常量分隔列并使用vbCrLf常量插入一個新行。注意在MsgBox函數(shù)最多只顯示1024個字符,因此限制了可顯示的單元格數(shù)。
Option Explicit
Sub ShowRangeValue()
Dim Msg As String
Dim r As Integer, c As Integer
Msg = ""
For r = 1 To 5
For c = 1 To 5
Msg = Msg & Cells(r, c) & vbTab
Next c
Msg = Msg & vbCrLf
Next r
MsgBox Msg
End Sub
(7)在消息框語句中運用工作表函數(shù)以及設(shè)置顯示的數(shù)置格式,如下面語句所示:
MsgBox " selection has " & m & " cells ." & Chr(13) & " the sum is :" & Application.WorksheetFunction.Sum(Selection) & Chr(13) & "the average is :" & Format(Application.WorksheetFunction.Average(Selection), "#,##0.00"), vbInformation, "selection count & sum & average" & Chr(13)
例
private sub form_load() '事件窗體加載
msgbox("彈出窗口") '設(shè)定彈出窗口
end sub '