常用VBA函數——MsgBox 函數

2021-02-20 埃恩軟體

一、題目:

要求編寫一段代碼,用MsgBox函數來顯示一個具有「是」及「否」按鈕的對話框,並根據用戶對於消息框的不同選擇進行相關的操作。

二、代碼:

Sub 示例_1_030()

    Dim Msg, An, Bt, Yhhy

    Msg = "你要繼續嗎 ?"   

    An = vbYesNo + vbCritical + vbDefaultButton1   

    Bt = "MsgBox 示例"    ' 定義標題。

     Yhhy = MsgBox(Msg, An, Bt)

    If Yhhy = vbYes Then    ' 用戶按下「是」。

     MsgBox "你按下的是「是」按鈕。"    ' 完成某操作。

    Else    ' 用戶按下「否」。

       MsgBox "你按下的是「否」按鈕。"    ' 完成某操作。

    End If

End Sub

三、代碼詳解

1、Sub 示例_1_030():宏程序的開始語句。宏名為示例_1_030。

2、Dim Msg, An, Bt, Yhhy  :聲明變量均為可變型變量。

3、Msg = "你要繼續嗎 ?"      :把指定的信息賦給變量Msg。       

4、An = vbYesNo + vbCritical + vbDefaultButton1      :把指定的按鈕賦給變量An。這句也可寫為An=4+16,第3個參數是默認的,為0,可省略。

5、Bt = "MsgBox 示例"  :把消息框的標題賦給變量Bt。

6、Yhhy = MsgBox(Msg, An, Bt) :把MsgBox函數的返回值(即用戶按了哪個按鈕)賦給變量Yhhy。

7、If Yhhy = vbYes Then  : 如果用戶按下「是」,那麼執行下面的語句;

8、MsgBox "你按下的是「是」按鈕。"    用MsgBox函數返回信息,因為不需要函數的返回值,所以可以去掉函數參數的括號。

 

MsgBox 函數

在對話框中顯示消息,等待用戶單擊按鈕,並返回一個 Integer ,說明用戶單擊了哪一個按鈕。

 

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

 

MsgBox 函數的語法具有以下幾個命名參數:

 

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

Buttons   可選的。數值表達式是值的總和,指定顯示按鈕的數目及形式,使用的圖標樣式,預設按鈕是什麼以及消息框的強制回應等。如果省略,則 buttons 的預設值為 0。

Title可選的。在對話框標題欄中顯示的字符串表達式。如果省略 title,則將應用程式名放在標題欄中。

Helpfile可選的。字符串表達式,識別用來向對話框提供上下文相關幫助的幫助文件。如果提供了 helpfile,則也必須提供 context。

Context   可選的。數值表達式,由幫助文件的作者指定給適當的幫助主題的幫助上下文編號。如果提供了 context,則也必須提供 helpfile。

 

設置值

buttons 參數有下列設置值:

常數                       值   描述

vbOKOnly             0     只顯示 OK 按鈕。

VbOKCancel        1     顯示 OK 及 Cancel 按鈕。

VbAbortRetryIgnore     2     顯示 Abort、Retry 及 Ignore 按鈕。

VbYesNoCancel            3     顯示 Yes、No 及 Cancel 按鈕。

VbYesNo                 4      顯示 Yes 及 No 按鈕。

VbRetryCancel            5       顯示 Retry 及 Cancel 按鈕。

VbCritical             16      顯示 Critical Message 圖標。

VbQuestion         32      顯示 Warning Query 圖標。

VbExclamation           48      顯示 Warning Message 圖標。

VbInformation      64      顯示 Information Message 圖標。

vbDefaultButton1  0     第一個按鈕是預設值。

vbDefaultButton2  256  第二個按鈕是預設值。

vbDefaultButton3  512  第三個按鈕是預設值。

vbDefaultButton4  768  第四個按鈕是預設值。

 

 

vbApplicationModal     0     應用程式強制返回;應用程式一直被掛起直到用戶對消息框作出響應才繼續工作。

vbSystemModal            4096       系統強制返回;全部應用程式都被掛起,直到用戶對消息框作出響應才繼續工作。

vbMsgBoxHelpButton   16384     將Help按鈕添加到消息框

VbMsgBoxSetForeground    65536     指定消息框窗口作為前景窗口

vbMsgBoxRight            524288   文本為右對齊

vbMsgBoxRtlReading   1048576指定文本應為在希伯來和阿拉伯語系統中的從右到左顯示

 

第一組值 (0–5) 描述了對話框中顯示的按鈕的類型與數目;

第二組值 (16, 32,48, 64) 描述了圖標的樣式;

第三組值 (0, 256,512) 說明哪一個按鈕是預設值;

第四組值 (0, 4096)則決定消息框的強制返回性。將這些數字相加以生成 buttons 參數值的時候,只能由每組值取用一個數字。

第五組值 (16384,65536,524288,1048576)是附加選項。

 

注意 這些常數都是 Visual Basic for Applications (VBA) 指定的。結果,可以在程序代碼中到處使用這些常數名稱,而不必使用實際數值。

 

返回值

常數              值   描述

vbOK             1     確定

vbCancel2     取消

vbAbort          3     放棄

vbRetry          4     重試

vbIgnore5     忽略

vbYes             6     是

vbNo              7     否

 

說明

在提供了 helpfile 與 context 的時候,用戶可以按 F1(Windows) or HELP(Macintosh) 來查看與 context 相應的幫助主題。像 Microsoft Excel 這樣一些主應用程式也會在對話框中自動添加一個 幫助按鈕。

如果對話框顯示 取消按鈕,則按下 ESC 鍵與單擊 取消 按鈕的效果相同。如果對話框中有 Help 按鈕,則對話框中提供有上下文相關的幫助。但是,直到其它按鈕中有一個被單擊之前,都不會返回任何值。

注意如果還要指定第一個命名參數以外的參數,則必須在表達式中使用 MsgBox。為了省略某些位置參數,必須加入相應的逗號分界符。

相關焦點

  • Excel VBA輸出msgbox函數,這個輸出函數你知道多少
    大家好,前面示例中涉及過輸出msgbox函數,使用最簡單的形式,本節就將這個函數的內容擴充一下,學習其完整的結構,內容重在理解。首先說明一下語句和函數兩種形式的區別,msgbox語句形式,僅顯示內容,點擊確定不會產生其他結果。那麼增加變量i,將上面的示例改成函數格式看下結果。
  • VBA中,利用MSGbox函數實現人機對話
    在之前的文章中講過了VBA中人機對話函數中的INPUTBOX函數,今日將msgbox函數,同樣也是一個人機對話的函數,不過,這個函數不能解決錄入的問題,只能解決確認的問題,比如當程序運行到一定的程度,需要你判斷是否需要繼續進行;再比如,由於避免誤操作需要你再次判斷某個動作時,這時就會用到這個函數了。
  • VBA中的MsgBox函數
    使用MsgBox函數,可以創造一個對話框,告訴用戶某些信息,並等待用戶單機其中的某個按鈕後繼續運行。
  • 你真的會用MsgBox函數了麼?
    你真的會用MsgBox函數了麼?使用MsgBox函數可打開一個對話框,在對話框中顯示一個提示信息,並讓用戶單擊對話框中的按鈕,使程序繼續執行。MsgBox函數語法格式如下:Value=MsgBox(prompt[,buttons][,title][,helpfile,context])各參數的含義如下:—    Prompt:為對話框消息出現的字符串表達式。其最大長度為1024個字符。
  • VBA代碼中Msgbox函數的美觀排版效果
    大家好,今日內容仍是和大家分享VBA編程中常用的簡單「積木」過程代碼,這些內容大多是取至我編寫的「VBA代碼解決方案」教程中內容。NO.157-NO.158內容是:NO.157:如何對MsgBox對話框的內容進行排版,達到美觀的效果NO.158:使用InputBox函數顯示一個對話框供用戶在對話框中輸入數據 VBA過程代碼157:如何對MsgBox對話框的內容進行排版,達到美觀的效果
  • 利用VBA代碼實現Msgbox函數定製化消息框
    大家好,今日內容仍是和大家分享VBA編程中常用的簡單「積木」過程代碼,這些內容多是取至我的「VBA代碼解決方案」教程中內容。NO.155-NO.156內容是:NO.155:Msgbox函數實現定製化人機對話消息框NO.156:在關閉工作簿前使用MsgBox函數顯示一個消息框,並根據用戶的回應用進行相應的操作。
  • Excel中的常用函數Match
    Excel中的常用函數Match  我們先這習一下Row、Column函數,最後講Match函數Row函數:返回行號:第1種用法:括號裡有參數,返回括號裡這個參數的行號,如=Row(A9)返回9第2種用法:括號裡沒有參數,返回個公式所在的單元格的行號
  • 常用VBA函數——Mid 函數
    一、題目:要求編寫一段代碼,用Mid 函數來返回某個字符串中的幾個字符。
  • #Excel VBA#解讀(20):用戶交互初體驗—MsgBox函數
    》微信公眾帳號:excelperfect 下面,繼續做一些有趣的事情。讓VBA能夠給我們彈出對話框,讓用戶作出響應,實現與用戶交互。這裡要使用VBA的內置函數:MsgBox函數和InputBox函數。 與Excel工作表函數一樣,VBA也包含有各種內置函數,以簡化計算和操作,而MsgBox函數和InputBox函數就是其中常用的函數。這裡,先介紹MsgBox函數。
  • VBA與函數公式的一生一世,若如初見,怎奈何不再見
    因此今天和您分享的是如何在VBA中間使用函數公式和他們的前世今生。在每天的工作過程中,相信Excel裡面很多函數我們都用過,也是非常熟悉的,那在VBA中該怎麼使用函數達到你的目的呢?現在我們有如下的數據,本文將以以下元數據來說明如何使用函數公式。
  • EXCEL表格詳解vlookup第五彈-VBA自己寫myLookup函數
    我們在前四彈詳細介紹了vlookup函數,以及vlookup函數實現不了後,使用index為主函數加match,small,if等函數的組合拳來實現複雜的條件查找。由於大家從事的工作領域不同,有時候還需要實現更加複雜的查找,這時往往在幾個函數之間相互切換,相互套用,難免給一些相對固定的查找帶來不必要的麻煩。下面我就手把手地帶大家寫一個自己的函數myLookup() ,使用這一個函數來實現前四彈的所有功能。
  • Excel VBA工作薄 6.2利用msgbox窗口 實現簡易用戶對話功能
    前景提要昨天我們分享了vba中msgbox的簡單的使用方法,在昨天的學習中,我們知道了msgbox的幾個不常用的參數,當時我們說在簡單的彈窗提示的時候
  • Excel函數技巧與VBA初步入門
    2019年11月28日IF函數IF函數語法IF(logical_test,value_if_true,value_if_false)功能IF函數是條件判斷函數:如果指定條件的計算結果為
  • vba編程常用英文單詞100個
    vba編程常用英文單詞100個大家好,部分朋友在公眾號留言,建議把vba
  • 【VBA自定義函數】315個自定義函數
    166、工齡計算:167、計算日期差,除去星期六、星期日的自定義函數168、這是一個將英文字反轉的自定函數169、關於個人所得稅的170、一個能計算是否有重複單元的函數171、試編寫數字金額轉中文大寫的函數172、人民幣大小寫轉換函數173、獲取區域顏色值自定義函數174、獲取活動工作表名的自定義函數175、顯示在「插入函數」對話框的「或選擇類別」下拉列表中176、複合函數STATFUNCTION177
  • vba編程,如何找出計算機ID,磁碟空間信息,一個函數的事情
    NO.1vba編程中,有時候需要獲取計算機系統信息,比如計算機名稱、ID、磁碟容量、磁碟類型等等,那麼如何來實現這個功能呢?下面講一下,關於獲取本地信息的一個簡單方法。這裡我們會用到一些很重要的函數(GetObject),這些函數內置在Excel應用中,只要調用即可。其中還用到Win32_LogicalDisk class,也就是WMI下的一個類。
  • Excel VBA入門教程 1.6 過程和函數
    調用 Sub 過程的是一個獨立的語句,而調用函數過程只是表達式的一部分。另外,自定義函數並不允許修改工作表和單元格格式 (A UDF will only return a value it won't allow you to change the properties of a cell/sheet/workbook. )。
  • Excel常用函數:max函數、min函數
    Hello,大家好,今天為大家帶來Excel常用函數分享,最值函數,即max函數和min函數。接下來就讓我們具體來看看吧。
  • 根據顏色求和與計數,好難啊,使用vba自定義函數即可輕鬆搞定
    Hello,今天有粉絲遇到這樣的一個問題,就是老闆給他很多帶有顏色的表格,想讓他根據顏色求和以及計數,他一個一個做了很久也沒做出來,問我有沒有什麼簡單的方法,當然有了,我們覺得最快捷的方法就是使用vba自定義函數來計算,操作也非常的簡單,下面就讓我們來一起操作下吧
  • VBA代碼中,Msgbox函數如何實現個性化對話框
    朋友們好,今日我們講解VBA代碼解決方案的第39講:VBA 代碼中如何實現Msgbox函數定製化人機對話消息框。在上篇文章中簡單實現了MSGBOX對話框,但是界面不是很友好,那麼,如果希望MsgBox函數顯示的消息框具有特定的按鈕、圖標和標題欄,實現相對友好的人機對話界面該怎麼辦呢?