VBA訊息框(MsgBox)


MsgBox函式顯示一個訊息框,並等待使用者點選一個按鈕,然後根據使用者點選的按鈕執行相關的操作。

語法

MsgBox(prompt[,buttons][,title][,helpfile,context])

引數說明

  • prompt - 必需的引數。在對話方塊中顯示為訊息的字串。提示的最大長度大約為1024個字元。 如果訊息擴充套件為多行,則可以使用每行之間的回車符(Chr(13))或換行符(Chr(10))來分隔行。
  • buttons - 可選引數。一個數位表示式,指定要顯示的按鈕的型別,要使用的圖示樣式,預設按鈕的標識以及訊息框的形式。如果留空,則按鈕的預設值為0
  • title - 可選引數。 顯示在對話方塊的標題列中的字串表示式。 如果標題留空,應用程式名稱將被放置在標題列中。
  • helpfile - 可選引數。一個字串表示式,標識用於為對話方塊提供上下文相關幫助的幫助檔案。
  • Context - 可選引數。一個數位表示式,用於標識由幫助作者分配給相應幫助主題的幫助上下文編號。 如果提供上下文,則還必須提供helpfile

Buttons 引數可以使用以下任何值 -

  • 0 vbOKOnly - 僅顯示「確定」 按鈕。
  • 1 vbOKCancel - 顯示「確定」「取消」 按鈕。
  • 2 vbAbortRetryIgnore - 顯示「中止」「重試」「忽略」 按鈕。
  • 3 vbYesNoCancel - 顯示「是」「否」「取消」 按鈕。
  • 4 vbYesNo - 顯示「是」「否」按鈕。
  • 5 vbRetryCancel - 顯示「重試」「取消」按鈕。
  • 16 vbCritical - 顯示嚴重訊息圖示。
  • 32 vbQuestion - 顯示警告查詢圖示。
  • 48 vbExclamation - 顯示警告訊息圖示。
  • 64 vbInformation - 顯示資訊訊息圖示。
  • 0 vbDefaultButton1 - 第一個按鈕是預設的。
  • 256 vbDefaultButton2 - 第二個按鈕是預設的。
  • 512 vbDefaultButton3 - 第三個按鈕是預設的。
  • 768 vbDefaultButton4 - 第四個按鈕是預設的。
  • 0 vbApplicationModal 應用程式模式 - 當前的應用程式將不會工作,直到使用者響應訊息框。
  • 4096 vbSystemModal 系統模式 - 所有的應用程式將不會工作,直到使用者響應訊息框。

上述值在邏輯上分為四組:第一組(05)指示要在訊息框中顯示的按鈕。第二組(16,32,48,64)描述要顯示的圖示的樣式,第三組(0,256,512,768)指示哪個按鈕必須是預設的,第四組(0,4096 )確定訊息框的形式。

返回值

MsgBox函式可以返回以下值之一,可用於標識使用者在訊息框中單擊的按鈕。

  • vbOK - 確定 按鈕被點選。
  • vbCancel - 取消 按鈕被點選。
  • vbAbort - 中止 按鈕被點選。
  • vbIgnore - 忽略 按鈕被點選。
  • vbYes - 按鈕被點選。
  • vbNo - 按鈕被點選。

範例

Function MessageBoxDemo() 
   'Message Box with just prompt message '
   MsgBox("歡迎您~")     

   'Message Box with title, yes no and cancel Butttons  '
   result = MsgBox("你喜歡藍色嗎?", 3, "選擇一個選項") 

   ' Assume that you press No Button  '
   MsgBox ("返回 result 的值是:" &result) 
End Function

輸出結果

第1步 - 上述功能函式可以通過單擊VBA視窗上的「執行」按鈕或通過從Excel工作表呼叫函式來執行,如以下螢幕截圖所示 -

執行子程式 -

第2步 - 顯示一個簡單的訊息框,並顯示訊息「歡迎」和「確定」按鈕

第3步 - 點選確定後,另一個對話方塊會顯示一個訊息,同時顯示「是,否和取消」按鈕。

第4步 - 點選「否」按鈕後,該按鈕(7)的值將被儲存為一個整數,並顯示為一個訊息框給使用者,如以下螢幕截圖所示。使用這個值,可以理解使用者點選了哪個按鈕。