vba中MsgBox的參數及用法


1、作用

   在消息框中顯示信息,並等待用戶單擊按鈕,可返回單擊的按鈕值(比如“確定”或者“取消”)。通常用作顯示變量值的一種方式。
2、語法
       MsgBox(Prompt[,Buttons][,Title][,Helpfile,Context])

       參數說明:

(1)Prompt,必需的參數,為字符串,作為顯示在消息框中的消息文本。其最大長度約為1024個字符,由所用字符的寬度決定。如果prompt的內容超過一行,則可以在每一行之間用回車符(Chr(13))、換行符(Chr(10))或是回車與換行符的組合(Chr(13)&Chr(10))將各行分隔開來。

(2)Buttons,可選的參數,為數值表達式的值之和,指定顯示的按鈕的數目及形式、使用的圖標樣式、缺省按鈕及消息框的強制回應等,可以此定制消息框。若省略該參數,則其缺省值為0。設置值見下表。

(3)Title,可選的參數,表示在消息框的標題欄中所顯示的文本。若省略該參數,則將應用程序名放在標題欄中。

(4)Helpfile,可選的參數,為字符串表達式,提供幫助文件。若有Helpfile,則必須有Context。

(5)Context,可選的參數,為數值表達式,提供幫助主題。若有Context,則必須有Helpfile。

3Button參數
       用於MsgBox函數中Button參數的常量

符號常量 作用
按鈕類型 vbokonly 0 只顯示“確定”按鈕
vbokcancel 1 顯示“確定”及“取消”按鈕
vbabortretryignore 2 顯示“終止”、“重試”及“忽略”按鈕
vbyesnocancel 3 顯示“是”、“否”及“取消”按鈕
vbyesno 4 顯示“是”、“否”按鈕
vbretrycancel 5 顯示“重試”及“取消”按鈕
 
圖標樣式 vbcritical 16 顯示critical message圖標(系統叉號圖標)
vbquestion 32 顯示warning query圖標(系統問號圖標)
vbexclamation 48 顯示warning message圖標(系統感嘆號圖標)
vbinformation 64 顯示information message圖標(系統信息圖標)
       
默認按鈕 vbdefauitbutton1 0 第一個按鈕是默認值
vbdefauitbutton2 256 第二個按鈕是默認值
vbdefauitbutton3 512 第三個按鈕是默認值
vbdefauitbutton4 768 第四個按鈕是默認值
       
強制返回 vbapplicationmode1 0 應用程序強制返回
vbsystemmode1 4096 系統強制返回
       
其他類型 vbmsgboxhelpbutton 16384 在對話框中添加一個“幫助”按鈕
vbmsgboxsetforeground 65535 指定對話框窗口作為前景窗口
vbmsgboxright 524288 對話框的文本為右對齊
vbmsgboxrtireading 1048576 指定對話框中的元素從右到左顯示
 


說明:
(1)第一組值(0–5)描述了消息框中顯示的按鈕的類型與數目;第二組值(16,32,48,64)描述了圖標的樣式;第三組值(0,256,512,768)說明哪一個按鈕是缺省值;而第四組值(0,4096)則決定消息框的強制返回性。將這些數字相加以生成Buttons參數值的時候,只能由每組值取用一個數字。
(2)這些常數都是VBA指定的,可以在程序代碼中使用這些常數名稱代替實際數值。
4、返回值
用於MsgBox函數返回值的常量

 

常數

說明

vbOK

1

確定

vbCancel

2

取消

vbAbort

3

終止

vbRetry

4

重試

vbIgnore

5

忽略

vbYes

6

vbNo

7

 

 

5、相關說明
(1) 如果同時提供了Helpfile與Context參數,可以按F1鍵來查看與Context相應的幫助主題,Excel通常會在輸入框中自動添加一個幫助(Help)按鈕。
(2)若在消息框中顯示“取消”按鈕,則按下ESC鍵與單擊“取消”按鈕效果相同。若消息框中有“幫助”按鈕,則提供相關的幫助信息。
(3)如果要輸入多個參數並省略中間的某些參數,則必須在相應位置加入逗號分界符。
6、示例
(1)使用 MsgBox 函數,在具有“是”及“否”按鈕的對話框中顯示一條嚴重錯誤信息。示例中的缺省按鈕為“否”,MsgBox函數的返回值視用戶按哪一個鈕而定。並假設DEMO.HLP為一幫助文件,其中有一個幫助主題代碼為1000。

 
  1. Dim Msg,Style,Title,Help,Ctxt,Response,MyString  
  2. '定義消息文本  
  3. Msg="Do you want to continue ?"  
  4. ' 定義按鈕  
  5. Style = vbYesNo + vbCritical + vbDefaultButton2  
  6. ' 定義標題文本  
  7. Title = "MsgBox Demonstration"  
  8. ' 定義幫助文件   
  9. Help = "DEMO.HLP"  
  10. ' 定義幫助主題   
  11. Ctxt = 1000      
  12. Response = MsgBox(Msg, Style, Title, Help, Ctxt)  
  13. If Response = vbYes Then    ' 用戶按下“是”  
  14.     MyString = "Yes"  
  15. Else    ' 用戶按下“否”  
  16.     MyString = "No"  
  17. End If  

 

 

(2)只顯示某消息

 
  1. MsgBox “Hello!”   


(3)將消息框返回的結果賦值給變量

  1. Ans=MsgBox(“Continue?”,vbYesNo)  
  2. If MsgBox(“Continue?”,vbYesNo)<>vbYes Then Exit Sub  

 

(4)使用常量的組合,賦值組Config變量,並設置第二個按鈕為缺省按鈕

  

  1. Config=vbYesNo+vbQuestion+vbDefaultButton2  


(5)若要在消息中強制換行,可在文本中使用vbCrLf(或vbNewLine)常量,用&加空格與字符隔開。如

 
  1. MsgBox “This is the first line.” & vbNewLine & “Second line.”  

 

(6)可以在消息框中使用vbTab常量插入一個制表符。下面的過程使用一個消息框來顯示5×5單元格區域中的所有值,用vbTab常量分隔列並使用vbCrLf常量插入一個新行。注意在MsgBox函數最多只顯示1024個字符,因此限制了可顯示的單元格數。

  1. Option Explicit  
  2. Sub ShowRangeValue()  
  3.   Dim Msg As String  
  4.   Dim r As Integer, c As Integer  
  5.   Msg = ""  
  6.   For r = 1 To 5  
  7.     For c = 1 To 5  
  8.       Msg = Msg & Cells(r, c) & vbTab  
  9.     Next c  
  10.     Msg = Msg & vbCrLf  
  11.   Next r  
  12.   MsgBox Msg  
  13. End Sub  

 

(7)在消息框語句中運用工作表函數以及設置顯示的數置格式,如下面語句所示:

 
  1. 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)  

 

 

出處:http://blog.csdn.net/bright_chen7/article/details/6248715

參考:https://www.baidu.com/link?url=lRwVSdVDBPcm5ww-CkxqlyM4ColOU1VodWiHGsA-LgQnmYahXESn7nydeZmAo9rz&wd=&eqid=c33f9e7100001a8b00000004584f93a7


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM