#Excel VBA#解讀(20):用戶交互初體驗—MsgBox函數

2021-03-02 完美Excel

《完美Excel》微信公眾帳號:excelperfect

下面,繼續做一些有趣的事情。讓VBA能夠給我們彈出對話框,讓用戶作出響應,實現與用戶交互。這裡要使用VBA的內置函數:MsgBox函數和InputBox函數。

與Excel工作表函數一樣,VBA也包含有各種內置函數,以簡化計算和操作,而MsgBox函數和InputBox函數就是其中常用的函數。這裡,先介紹MsgBox函數。

顯示信息

MsgBox函數可以為我們提供輸出信息,將VBA代碼的運行結果告訴我們。看下面簡單的示例,代碼運行後會彈出一個對話框,如圖右側所示。

此時,Excel告訴我們相關信息,並會等待我們作出響應,單擊「確定」,對話框消失。當然,這只是MsgBox函數最基本的用法。我們可以讓它顯示更豐富的信息,例如,顯示更有意義的標題、更多的選擇按鈕、圖標,甚至獲取用戶響應後的值。

將上面的程序代碼修改如下:

Sub MsgBoxTest()

Dim i As Long

i = 5

MsgBox Prompt:="變量i的值是"& i, Buttons:=vbOKCancel + vbCritical, Title:="顯示變量的值"

End Sub

運行後的結果如下圖:

圖中附加說明了MsgBox函數中各參數在對話框中對應的顯示。

MsgBox函數的語法

MsgBox函數的語法如下:

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

其中,方括號內的參數為可選參數。參數說明如下圖所示:

還有兩個參數helpfile和context,我們暫且不要管它。

下表列出了參數buttons的值及說明:

常量

說明

vbOKOnly

0

只顯示「確定」按鈕

vbOKCancel

1

顯示「確定」和「取消」按鈕

vbAbortRetryIgnore

2

顯示「終止」、「重試」和「忽略」按鈕

vbYesNoCancel

3

顯示「是」、「否」和「取消」按鈕

vbYesNo

4

顯示「是」和「否按鈕

vbRetryCancel

5

顯示」重試「和」取消「按鈕

vbCritical

16

顯示」關鍵信息「圖標

vbQuestion

32

顯示」警告詢問「圖標

vbExclamation

48

顯示」警告消息「圖標

vbInformation

64

顯示」通知消息「圖標

vbDefaultButton1

0

第一個按鈕為默認按鈕

vbDefaultButton2

256

第二個按鈕為默認按鈕

vbDefaultButton3

512

第三個按鈕為默認按鈕

vbDefaultButton4

768

第四個按鈕為默認按鈕

vbSystemModel

4096

所有應用程式都暫停,直至用戶對消息框作出反應

vbMsgBoxHelpButton

16384

顯示幫助按鈕

獲取響應的值

在用戶單擊了MsgBox函數對話框中的按鈕後,我們可以獲取用戶的行為,即用戶單擊了哪個按鈕。這樣,我們可以根據用戶的選擇作出相應的處理。

我們可以將MsgBox函數的結果賦給某個變量,此時需要將參數放在括號中,例如:

Sub MsgBoxTest1()

Dim Msg As Integer

Msg = MsgBox("您要繼續運行嗎?",vbYesNo)

MsgBox Msg

End Sub

代碼運行結果如下圖所示:

接下來,我們就可以編寫代碼對用戶單擊的選擇進行相應的回應。這種情形經常使用在條件判斷語句中,在講述相關內容時,我們再給出使用示例。

下表列出了MsgBox函數的返回值:

常量

相應的按鈕

vbOK

1

確定

vbCancel

2

取消

vbAbort

3

終止

vbRetry

4

重試

vbIgnore

5

忽略

vbYes

6

vbNo

7

---

通過下列方式可以更快地了解完美Excel更新:

關注《完美Excel》微信公眾帳號:

方法1—點擊右上角的按鈕,選擇「查看公眾號」,點擊關注

方法2—在添加朋友中搜索excelperfect

方法3—微信掃一掃下面網址中的二維碼

http://www.excelperfect.com/wordpress/wp-content/uploads/2014/02/excelperfect.jpg

新浪微博名:完美Excel

個人博客:www.excelperfect.com

文章轉載請註明出處!

相關焦點

  • Excel VBA工作薄 6.2利用msgbox窗口 實現簡易用戶對話功能
    前景提要昨天我們分享了vba中msgbox的簡單的使用方法,在昨天的學習中,我們知道了msgbox的幾個不常用的參數,當時我們說在簡單的彈窗提示的時候
  • Excel VBA輸出msgbox函數,這個輸出函數你知道多少
    大家好,前面示例中涉及過輸出msgbox函數,使用最簡單的形式,本節就將這個函數的內容擴充一下,學習其完整的結構,內容重在理解。首先說明一下語句和函數兩種形式的區別,msgbox語句形式,僅顯示內容,點擊確定不會產生其他結果。那麼增加變量i,將上面的示例改成函數格式看下結果。
  • VBA中,利用MSGbox函數實現人機對話
    在之前的文章中講過了VBA中人機對話函數中的INPUTBOX函數,今日將msgbox函數,同樣也是一個人機對話的函數,不過,這個函數不能解決錄入的問題,只能解決確認的問題,比如當程序運行到一定的程度,需要你判斷是否需要繼續進行;再比如,由於避免誤操作需要你再次判斷某個動作時,這時就會用到這個函數了。
  • Excel VBA解讀:基礎入門篇
    微信公眾號:excelperfect 在這裡,我們匯總了《
  • excel VBA是什麼?VBA編程入門教程
    本篇將介紹excel vba是什麼?vba編程入門教程,有興趣的朋友可以了解一下!一、excel vba是什麼?VBA的英文全稱是Visual Basic for Applications,是一門標準的宏語言。VBA語言不能單獨運行,只能被office軟體(如:Word、Excel等)所調用。
  • VBA學習筆記 1-2
    用戶自定義數據類型需要創建一個customerinfo 自定義數據類型。dim customers(1 to 100) as customerinfo內置函數excel 中的sqrt工作表函數。emmmmm  書上的和我寫的 我他娘 具體原因我也不知道msgbox 是最有的vba函數之一簡單自定義對話框的一個很好替代品。
  • VBA學習筆記 1-1
    ''  ActiveCell.Font.Bold = True    ActiveCell.FormulaR1C1 = "穆澤"    ActiveCell.Offset(1, 0).Range("A1").Select  End Sub測試顯示:當前滑鼠位置輸入名字excel
  • vba第十八課
    vba第十八課調用工作表函數在vba中我經常會對工作表的數據進行一些運算,雖然通過代碼進行循環或判斷也可以完成,但是通vba調用函數可以更簡單更直接進行運算提高代碼的運行效率,比如countif、sumif等需要進行判斷統計和求和的運算。
  • 【Excel分享】if函數的基本用法
    在excel中if函數是最經常用到的判斷函數,通過它可以減少很多繁瑣複雜的工作,判斷單元格內容滿足什麼條件則對應返回相應的值。excel中的if函數是判斷函數,表達的意思是當滿足某條件時,返回一個值,否則返回另一個值語法:if(logical_test,[value_if_true],[value_if_false]) 第1參數:logical_test表示要判斷的條件 第2參數:value_if_true表示當滿足判斷的條件時返回的值 第3參數:value_if_false表示當不滿足判斷的條件時返回的值
  • Excel vba 利用定義名稱實現用戶登錄功能
    文/江覓易見在vba 中實現用戶登錄,並對登錄用戶進行身份識別,然後對用戶進行分組管理,此類功能值得進一步思考。這裡介紹一種方法,利用Excel中的名稱管理來進行身份識別,起到用戶登錄次數以及增減用戶的功能。
  • vba第十六課
    vba第十六課錯誤分支語句1On error resume next 例:sub onerror()Dim a!End Sub此段代碼的主要意思是讓發生錯誤時跳轉到msgbox這條語句,然後告知工作表錯誤的行數
  • 常用VBA函數——MsgBox 函數
    一、題目:要求編寫一段代碼,用MsgBox函數來顯示一個具有「是」及「否」按鈕的對話框,並根據用戶對於消息框的不同選擇進行相關的操作
  • Excel VBA從新手到高手系列課程
    五、 教學目錄:第一章 新手篇-走進excel vba的世界      1.1 什麼是VBA      1.2 EXCEL中的宏      1.3 認識VISUAL BASIC編輯器        1.4 vba程序結構      1.5 數據類型         1.6
  • VBA中的MsgBox函數
    使用MsgBox函數,可以創造一個對話框,告訴用戶某些信息,並等待用戶單機其中的某個按鈕後繼續運行。
  • excel函數:乘實現and函數 加實現or函數 技巧案例解讀
    前面的文章中介紹了excel中的邏輯函數,邏輯函數實現多條件判斷比使用if函數嵌套理解起來相對簡單多了。其中經常使用的邏輯函數就是and函數和or函數。今天小編給大家分享的這兩個案例就巧妙的使用「乘*」來實現and函數的功能,「+加」來實現or函數的功能。
  • excel if函數初體驗陪你過元旦
    條件判斷在excel裡面是經常會用到,在之前的介紹是通過技巧來實現判斷,再進行數據篩選。其實在excel中給我們提供了更加強大的if函數。如果B3>=4000 條件成立得到的平均值就是1 ;如果B3>=4000 條件不成立得到的平均值就是0.5;0.5*100 得到結果是 50 ;1*100得到的結果就是100;總結 : 對於同一個excel
  • LAMBDA函數,讓EXCEL自定義函數告別VBA
    一提起自定義函數(UDF),很多表哥表姐想到的Alt+F11打開VBE編輯器,寫一個Function.隨著EXCEL版本的更新,EXCEL也像其它程式語言一樣,推出了表達式函數LAMBDA,通過這個函數加名稱管理器,我們可以在編寫簡短的自定義函數時,不再需要使用VBE窗體。
  • 你真的會用MsgBox函數了麼?
    你真的會用MsgBox函數了麼?使用MsgBox函數可打開一個對話框,在對話框中顯示一個提示信息,並讓用戶單擊對話框中的按鈕,使程序繼續執行。MsgBox函數語法格式如下:Value=MsgBox(prompt[,buttons][,title][,helpfile,context])各參數的含義如下:—    Prompt:為對話框消息出現的字符串表達式。其最大長度為1024個字符。
  • Hlookup函數的用法【Excel分享】
    」,我為什麼今天會分享這個函數呢?,是我們一個vip學員,在別的會計班聽課時,聽到這個函數,說我們這裡沒有提到這個函數,別的都有,就這個不會。謝謝這位學員反饋,這位學員名字叫「林夕」,為什麼我們函數初班沒有這個函數,因為它的用法和vlookup基本一樣,vlookup函數首列查找,Hlookup函數首行查找,它們兩個可以看成一對姐妹函數一、Hlookup作用查找查找值,到首行中進行查找,返回第幾行和這個查找值所在的列交叉的好那個值二、參數講解
  • EXCEL表格詳解vlookup第五彈-VBA自己寫myLookup函數
    我們在前四彈詳細介紹了vlookup函數,以及vlookup函數實現不了後,使用index為主函數加match,small,if等函數的組合拳來實現複雜的條件查找。由於大家從事的工作領域不同,有時候還需要實現更加複雜的查找,這時往往在幾個函數之間相互切換,相互套用,難免給一些相對固定的查找帶來不必要的麻煩。下面我就手把手地帶大家寫一個自己的函數myLookup() ,使用這一個函數來實現前四彈的所有功能。