TABLE OF CONTENTS
二、範例
一、語法
官方連結:英文
Function MsgBox(
Prompt As Variant
[,Buttons As VbMsgBoxStyle = vbOKOnly]
[,Title As Variant = "Microsoft Excel" 或 "Microsoft Word" 等]
[,HelpFile As Variant, Context As Variant]
) As VbMsgBoxResult
參數
名稱 | 型別 | 性質 | 說明 |
---|---|---|---|
Prompt | String | 必要性 | 訊息內容。 |
Buttons | VbMsgBoxStyle | 選擇性 | 外觀樣式,如按鈕類型、圖示樣式、預設按鈕、形式等等。 |
Title | String | 選擇性 | 標題。 |
HelpFile | String | 選擇性 | 說明主題的檔案,需搭配 VbMsgBoxStyle.vbMsgBoxHelpButton 一起使用。 |
Context | Long | 選擇性 | 說明主題的編號。 |
VbMsgBoxResult 型別
# | Constant | 說明 |
---|---|---|
1 | vbOK | 使用者按了 按鈕 |
2 | vbCancel | 使用者按了 按鈕 |
3 | vbAbort | 使用者按了 按鈕 |
4 | vbRetry | 使用者按了 按鈕 |
5 | vbIgnore | 使用者按了 按鈕 |
6 | vbYes | 使用者按了 按鈕 |
7 | vbNo | 使用者按了 按鈕 |
VbMsgBoxStyle 型別
▼ 按鈕類型
# | Constant | 值(HEX) | 說明 |
---|---|---|---|
1 | vbOKOnly | 000000 | 顯示 按鈕 |
2 | vbOKCancel | 000001 | 顯示 按鈕 |
3 | vbAbortRetryIgnore | 000002 | 顯示 按鈕 |
4 | vbYesNoCancel | 000003 | 顯示 按鈕 |
5 | vbYesNo | 000004 | 顯示 按鈕 |
6 | vbRetryCancel | 000005 | 顯示 按鈕 |
7 | vbMsgBoxHelpButton | 004000 | 在最右側,顯示 按鈕 |
※ 規則:第1~6項不可同時使用。
▼ 圖示樣式
# | Constant | 值(HEX) | 說明 |
---|---|---|---|
1 | vbCritical | 000010 | 在訊息區中,顯示「重大訊息」圖示,如右圖 |
2 | vbQuestion | 000020 | 在訊息區中,顯示「警告查詢」圖示,如右圖 |
3 | vbExclamation | 000030 | 在訊息區中,顯示「警告訊息」圖示,如右圖 |
4 | vbInformation | 000040 | 在訊息區中,顯示「資訊訊息」圖示,如右圖 |
5 | vbSystemModal | 001000 | 在標題列中,顯示「應用程式」圖示,如右圖 。 |
※ 規則:第1~4項不可同時使用。
▼ 預設按鈕
# | Constant | 值(HEX) | 說明 |
---|---|---|---|
1 | vbDefaultButton1 | 000000 | |
2 | vbDefaultButton2 | 000100 | |
3 | vbDefaultButton3 | 000200 | |
4 | vbDefaultButton4 | 000300 |
※ 規則:第1~4項不可同時使用。
▼ 形式
# | Constant | 值(HEX) | 說明 |
---|---|---|---|
1 | vbMsgBoxSetForeground | 010000 | 設定前景。(only useful in VB6, not in VBA) |
2 | vbMsgBoxRight | 080000 | 文字向右對齊,包含標題與訊息。 |
3 | vbMsgBoxRtlReading | 100000 | 配置左右相反,包含標題列、按鈕列 |
二、範例
範例 1:基本的訊息方塊
MsgBox Prompt:="第1行訊息" & vbCrLf & "第2行訊息", Title:="標題"
或簡寫成
MsgBox "第1行訊息" & vbCrLf & "第2行訊息", , "標題"
範例 2:進階的訊息方塊
Response = MsgBox("訊息內容", vbYesNo + vbInformation + vbDefaultButton2, "標題")
If Response = VbMsgBoxResult.vbYes Then
Debug.Print "You choose Yes."
ElseIf Response = VbMsgBoxResult.vbNo Then
Debug.Print "You choose No."
End If