第8章 VBA程序設(shè)計(jì)概述_第1頁(yè)
第8章 VBA程序設(shè)計(jì)概述_第2頁(yè)
第8章 VBA程序設(shè)計(jì)概述_第3頁(yè)
第8章 VBA程序設(shè)計(jì)概述_第4頁(yè)
第8章 VBA程序設(shè)計(jì)概述_第5頁(yè)
已閱讀5頁(yè),還剩113頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、計(jì)算中心監(jiān)制計(jì)算中心VBA程序設(shè)計(jì)概述程序設(shè)計(jì)概述計(jì)算中心VBA是是Visual Basic for Application的縮寫(xiě),的縮寫(xiě),是是Microsoft Office系列的內(nèi)置編程語(yǔ)言,是非系列的內(nèi)置編程語(yǔ)言,是非常流行的應(yīng)用開(kāi)發(fā)語(yǔ)言常流行的應(yīng)用開(kāi)發(fā)語(yǔ)言VB(Visual Basic)的)的一個(gè)分支,可供用戶(hù)編寫(xiě)宏,對(duì)一個(gè)分支,可供用戶(hù)編寫(xiě)宏,對(duì)Office進(jìn)行二進(jìn)行二次開(kāi)發(fā)次開(kāi)發(fā)。計(jì)算中心宏與宏與VBA定義:定義:宏(宏(Macro)是一組)是一組VBA語(yǔ)句??梢岳斫鉃橐徽Z(yǔ)句。可以理解為一個(gè)程序段,或一個(gè)子程序。個(gè)程序段,或一個(gè)子程序。方法方法:直接用直接用VBA代碼編寫(xiě),代碼編寫(xiě)

2、,或或通過(guò)通過(guò)錄制錄制形成形成。錄制宏的實(shí)質(zhì):錄制宏的實(shí)質(zhì):錄制宏的過(guò)程,實(shí)際上就是將一系錄制宏的過(guò)程,實(shí)際上就是將一系列操作過(guò)程記錄下來(lái)并由系統(tǒng)自動(dòng)轉(zhuǎn)換為列操作過(guò)程記錄下來(lái)并由系統(tǒng)自動(dòng)轉(zhuǎn)換為VBA語(yǔ)句語(yǔ)句計(jì)算中心例例8-1,用第六章中介紹錄制宏的方法,在,用第六章中介紹錄制宏的方法,在Excel中創(chuàng)建一個(gè)名為中創(chuàng)建一個(gè)名為“Test8_1”的宏,將工作表名的宏,將工作表名“Sheet1”重命名重命名為為“VBAABC”。宏實(shí)際上就是一個(gè)簡(jiǎn)單的宏實(shí)際上就是一個(gè)簡(jiǎn)單的VBA的的Sub過(guò)程,它過(guò)程,它保存在保存在模塊模塊中,以中,以Sub開(kāi)頭,以開(kāi)頭,以End Sub結(jié)尾,執(zhí)結(jié)尾,執(zhí)行時(shí)就從第一條

3、語(yǔ)句執(zhí)行,直到行時(shí)就從第一條語(yǔ)句執(zhí)行,直到End Sub結(jié)束結(jié)束計(jì)算中心VBA與與VB與區(qū)別:與區(qū)別:(1)VB用于創(chuàng)建標(biāo)準(zhǔn)的應(yīng)用程序,用于創(chuàng)建標(biāo)準(zhǔn)的應(yīng)用程序,VBA是使已是使已有的應(yīng)用程序(有的應(yīng)用程序(Office)自動(dòng)化。)自動(dòng)化。(2)VB具有自己的開(kāi)發(fā)環(huán)境,具有自己的開(kāi)發(fā)環(huán)境,VBA寄生于已有寄生于已有的應(yīng)用程序(的應(yīng)用程序(Office)。)。(3)VB開(kāi)發(fā)出的應(yīng)用程序可以是獨(dú)立的可執(zhí)行開(kāi)發(fā)出的應(yīng)用程序可以是獨(dú)立的可執(zhí)行文件,而文件,而VBA開(kāi)發(fā)的程序必須依賴(lài)開(kāi)發(fā)的程序必須依賴(lài)Office。計(jì)算中心宏記錄器宏記錄器存在存在的的局限性局限性:(1)錄制的宏無(wú)判斷或循環(huán)能力。)錄制的宏

4、無(wú)判斷或循環(huán)能力。(2)人機(jī)交互能力差,即用戶(hù)無(wú)法輸入,計(jì))人機(jī)交互能力差,即用戶(hù)無(wú)法輸入,計(jì)算機(jī)無(wú)法給出提示。算機(jī)無(wú)法給出提示。(3)無(wú)法顯示對(duì)話(huà)框和自定義窗口。)無(wú)法顯示對(duì)話(huà)框和自定義窗口。(4)記錄了許多不需要的資料和步驟。)記錄了許多不需要的資料和步驟。計(jì)算中心VBA編輯環(huán)境編輯環(huán)境-VBEVBA語(yǔ)言的開(kāi)發(fā)環(huán)境就是語(yǔ)言的開(kāi)發(fā)環(huán)境就是VBE(Visual Basic Editor)窗口,用戶(hù)可以在該窗口中實(shí)現(xiàn))窗口,用戶(hù)可以在該窗口中實(shí)現(xiàn)VBA程程序的編寫(xiě)序的編寫(xiě)。Word、Excel或或Power Point等等Office軟件中都軟件中都有有VBE,以下主要在,以下主要在Excel

5、VBA編輯器中介紹編輯器中介紹Office VBA的基本概念和使用方法。的基本概念和使用方法。計(jì)算中心打開(kāi)打開(kāi)VBE窗口窗口1記錄一個(gè)宏,然后打開(kāi)記錄一個(gè)宏,然后打開(kāi)VBE窗口窗口例例8-2,通過(guò)錄制宏的方法創(chuàng)建名為,通過(guò)錄制宏的方法創(chuàng)建名為T(mén)est8_2的宏,的宏,完成向完成向A1單元格中輸入數(shù)字單元格中輸入數(shù)字500的的任務(wù)任務(wù)。(1)錄制一個(gè)空白宏)錄制一個(gè)空白宏(2)編輯并輸入宏指令)編輯并輸入宏指令Range(A1).Value = 500計(jì)算中心2命名一個(gè)宏,然后打開(kāi)命名一個(gè)宏,然后打開(kāi)VBE窗口窗口例例8-3,通過(guò)命名宏的方法創(chuàng)建名為,通過(guò)命名宏的方法創(chuàng)建名為T(mén)est8_3的的宏

6、,設(shè)置單元格宏,設(shè)置單元格A1的文字屬性為的文字屬性為隸書(shū)隸書(shū)、14號(hào)號(hào)、加粗加粗。(1)創(chuàng)建宏)創(chuàng)建宏(2)輸入代碼)輸入代碼計(jì)算中心Sub Test8_3() With Range(A1).Font .Name = 隸書(shū)隸書(shū) .Size = 14 .Bold = True End WithEnd Sub計(jì)算中心3在在Office中直接打開(kāi)中直接打開(kāi)VBE窗口窗口打開(kāi)打開(kāi)VBE窗口的最常用方法是按窗口的最常用方法是按Alt+F11快快捷鍵,或在捷鍵,或在“開(kāi)發(fā)工具開(kāi)發(fā)工具”選項(xiàng)卡的選項(xiàng)卡的“代碼代碼”組中,單擊組中,單擊“Visual Basic”按鈕??旖萱I按鈕??旖萱IAlt+F11還可以

7、從還可以從VBE窗口返回窗口返回Excel。計(jì)算中心VBE窗口概述窗口概述在默認(rèn)狀態(tài)下,在默認(rèn)狀態(tài)下,VBE窗口主要由窗口主要由菜單欄菜單欄、工具欄工具欄、工程窗口工程窗口、對(duì)象屬性窗口對(duì)象屬性窗口、代碼窗代碼窗口口、立即窗口立即窗口、本地窗口本地窗口、對(duì)象瀏覽器對(duì)象瀏覽器、監(jiān)監(jiān)視窗口視窗口等各種窗口等各種窗口組成組成。計(jì)算中心1工程窗口工程窗口在在VBE工程窗口中,可以把每一個(gè)打開(kāi)的工程窗口中,可以把每一個(gè)打開(kāi)的Excel工作簿看作為一個(gè)工程,且工程的默認(rèn)工作簿看作為一個(gè)工程,且工程的默認(rèn)名稱(chēng)是名稱(chēng)是“VBAProject(工作簿名稱(chēng))(工作簿名稱(chēng))”。一個(gè)。一個(gè)新建的工作簿只包含新建的工作

8、簿只包含Excel對(duì)象,每個(gè)工程可對(duì)象,每個(gè)工程可以包括插入的以包括插入的用戶(hù)窗體用戶(hù)窗體、模塊模塊和和類(lèi)模塊類(lèi)模塊等。等。計(jì)算中心2屬性窗口屬性窗口屬性窗口列出了所選對(duì)象的屬性窗口列出了所選對(duì)象的屬性屬性。屬性屬性窗口由窗口由“對(duì)象對(duì)象”列表框列表框和和“屬性屬性”列列表表組成,組成,“對(duì)象對(duì)象”列表框列表框列出了選中的對(duì)象列出了選中的對(duì)象名稱(chēng)及類(lèi)型,名稱(chēng)及類(lèi)型,“屬性屬性”列表列表列出了該對(duì)象的列出了該對(duì)象的屬性。屬性。計(jì)算中心3代碼窗口代碼窗口代碼窗口主要用于輸入、顯示和編輯代碼窗口主要用于輸入、顯示和編輯VBA代碼代碼。代碼窗口由代碼窗口由“對(duì)象對(duì)象”列表框列表框、“過(guò)程過(guò)程”列列表框

9、表框及及“邊界邊界”標(biāo)識(shí)條標(biāo)識(shí)條等組成。等組成。計(jì)算中心4立即窗口立即窗口當(dāng)在立即窗口中輸入一行代碼后,按當(dāng)在立即窗口中輸入一行代碼后,按Enter鍵可立即執(zhí)行該鍵可立即執(zhí)行該代碼代碼5本地窗口本地窗口本地窗口可以看到本地窗口可以看到運(yùn)行過(guò)程中運(yùn)行過(guò)程中的對(duì)象、變量、的對(duì)象、變量、數(shù)組的信息數(shù)組的信息計(jì)算中心6對(duì)象瀏覽器對(duì)象瀏覽器對(duì)象瀏覽器列出了各種庫(kù)中的對(duì)象,以及對(duì)象瀏覽器列出了各種庫(kù)中的對(duì)象,以及每一對(duì)象的方法和每一對(duì)象的方法和屬性屬性。對(duì)象瀏覽器主要由對(duì)象瀏覽器主要由“工程工程/庫(kù)庫(kù)”列表框列表框、“搜索文字搜索文字”列表框列表框、“類(lèi)類(lèi)”列表列表、“成員成員”列表列表、“詳細(xì)數(shù)據(jù)詳細(xì)數(shù)

10、據(jù)”框框和和若干工具按鈕若干工具按鈕等組等組成。成。計(jì)算中心7監(jiān)視窗口監(jiān)視窗口監(jiān)視窗口用于顯示當(dāng)前表達(dá)式的值、類(lèi)型和監(jiān)視窗口用于顯示當(dāng)前表達(dá)式的值、類(lèi)型和上下文上下文8工具欄工具欄VBE界面中有界面中有“編輯編輯”、“標(biāo)準(zhǔn)標(biāo)準(zhǔn)”、“調(diào)試調(diào)試”等多等多種工具欄,可通過(guò)種工具欄,可通過(guò)“視圖視圖”菜單中的菜單中的“工具欄工具欄”子菜子菜單中的命令來(lái)控制這些工具欄的顯示或隱藏。單中的命令來(lái)控制這些工具欄的顯示或隱藏。計(jì)算中心在在VBE中編寫(xiě)宏中編寫(xiě)宏例例8-4,編寫(xiě)一個(gè)宏程序,計(jì)算所選工作表區(qū)域之和,編寫(xiě)一個(gè)宏程序,計(jì)算所選工作表區(qū)域之和。Sub Test8_4() Dim rngCell AS R

11、ange Dim iSum As Long For Each rngCell In Selection If IsNumeric(rngCell.Value) Then iSum = iSum + rngCell.Value End If Next MsgBox (Sum of selected range is: & iSum)End Sub計(jì)算中心對(duì)象、屬性、方法和事件對(duì)象、屬性、方法和事件1對(duì)象對(duì)象對(duì)象就是存在的東西,是對(duì)象就是存在的東西,是VBA處理的對(duì)象,如窗體、處理的對(duì)象,如窗體、命令按鈕、工作表、單元格等都是對(duì)象命令按鈕、工作表、單元格等都是對(duì)象。Office各應(yīng)用程序中

12、有許多對(duì)象,各應(yīng)用程序中有許多對(duì)象,Excel中的主要對(duì)中的主要對(duì)象有如下四個(gè):象有如下四個(gè):(1)Application對(duì)象對(duì)象。Application對(duì)象處于對(duì)象處于Excel對(duì)象對(duì)象層次結(jié)構(gòu)的頂層,表示層次結(jié)構(gòu)的頂層,表示Excel自身的運(yùn)行環(huán)境自身的運(yùn)行環(huán)境。計(jì)算中心(2)Workbook對(duì)象。對(duì)象。Workbook對(duì)象直接地處于對(duì)象直接地處于A(yíng)pplication對(duì)象的下層,表示一個(gè)對(duì)象的下層,表示一個(gè)Excel工作薄文工作薄文件。件。(3)Worksheet對(duì)象。對(duì)象。Worksheet對(duì)象包含于對(duì)象包含于Workbook對(duì)象,表示一個(gè)對(duì)象,表示一個(gè)Excel工作表。工作表。(4)

13、Range對(duì)象。對(duì)象。Range對(duì)象包含于對(duì)象包含于Worksheet對(duì)對(duì)象,表示象,表示Excel工作表中的一個(gè)或多個(gè)單元格。工作表中的一個(gè)或多個(gè)單元格。計(jì)算中心在在Excel中,對(duì)象的引用必須遵循從大到小的規(guī)則,如引用名稱(chēng)為中,對(duì)象的引用必須遵循從大到小的規(guī)則,如引用名稱(chēng)為“Mybook.xlsx”的工作簿時(shí)就是:的工作簿時(shí)就是:Application.Workbooks(Mybook.xlsx)引用引用“Mybook.xlsx”中工作表中工作表“Mysheet”時(shí)應(yīng)是:時(shí)應(yīng)是:Application.Workbooks(Mybook.xls).Woksheets (Mysheet)引用引

14、用“Mysheet”中的單元格區(qū)域中的單元格區(qū)域“A1:D4”時(shí)應(yīng)是:時(shí)應(yīng)是:Application.Workbooks(Mybook.xls).Woksheets(Mysheet).Range (A1:D4)如果如果Mybook.xls工作簿是激活的,引用可以簡(jiǎn)化了為:工作簿是激活的,引用可以簡(jiǎn)化了為:Worksheets(Mysheet).Range (A1:D4)如果如果Mysheet當(dāng)前也是激活的,引用還可以簡(jiǎn)化為:當(dāng)前也是激活的,引用還可以簡(jiǎn)化為:Range (A1:D4)。如果引。如果引用的單元用的單元Range是單個(gè)單元格,還可以用是單個(gè)單元格,還可以用Cells(行號(hào),列號(hào)行號(hào)

15、,列號(hào))的引用方式的引用方式。計(jì)算中心2屬性屬性屬性就是對(duì)象固定的特征。所有的對(duì)象,都有一組描述屬性就是對(duì)象固定的特征。所有的對(duì)象,都有一組描述它們的屬性它們的屬性。通過(guò)通過(guò)程序代碼設(shè)置屬性,其格式為程序代碼設(shè)置屬性,其格式為:對(duì)象對(duì)象名名.屬性名稱(chēng)屬性名稱(chēng)=屬性值屬性值Textbox1.Text=歡迎使用歡迎使用VBAUserForm1.Caption = VBAABCCommand1.Visible=TruerngCell.Value=500計(jì)算中心3方法方法方法就是要執(zhí)行的動(dòng)作,用于完成一定的操作,它實(shí)方法就是要執(zhí)行的動(dòng)作,用于完成一定的操作,它實(shí)際上是執(zhí)行際上是執(zhí)行VBA提供的特殊子程

16、序提供的特殊子程序。其調(diào)用格式為:其調(diào)用格式為:對(duì)象名稱(chēng)對(duì)象名稱(chēng).方法名稱(chēng)方法名稱(chēng)例如:例如:Debug.Print 學(xué)習(xí)學(xué)習(xí)VBA表示使用表示使用Print方法在立即窗口中顯示方法在立即窗口中顯示“學(xué)習(xí)學(xué)習(xí)VBA”。UserForm1.Show表示打開(kāi)窗體表示打開(kāi)窗體UserForm1。方法方法功能功能主要應(yīng)用對(duì)象主要應(yīng)用對(duì)象Print打印文本打印文本立即窗口立即窗口Move移動(dòng)窗體或控件移動(dòng)窗體或控件窗體或控件窗體或控件Show顯示窗體顯示窗體窗體窗體Hide隱藏窗體隱藏窗體窗體窗體Refresh重繪窗體或控件重繪窗體或控件窗體或控件窗體或控件Setfocus將焦點(diǎn)移至指定的控將焦點(diǎn)移至指

17、定的控件或窗體件或窗體窗體或控件窗體或控件計(jì)算中心4事件事件事件是指發(fā)生在對(duì)象上的一件事情,即能事件是指發(fā)生在對(duì)象上的一件事情,即能夠被對(duì)象識(shí)別和響應(yīng)的動(dòng)作夠被對(duì)象識(shí)別和響應(yīng)的動(dòng)作。VBA中的事件可分為中的事件可分為系統(tǒng)事件系統(tǒng)事件和和用戶(hù)事件用戶(hù)事件。系統(tǒng)事件系統(tǒng)事件是由系統(tǒng)觸發(fā)的,例如,是由系統(tǒng)觸發(fā)的,例如,Load事件;事件;用戶(hù)事件用戶(hù)事件是由用戶(hù)觸發(fā)的,例如,單擊鼠標(biāo)。是由用戶(hù)觸發(fā)的,例如,單擊鼠標(biāo)。事件事件動(dòng)作動(dòng)作Click單擊鼠標(biāo)左鍵單擊鼠標(biāo)左鍵DblClick雙擊鼠標(biāo)左鍵雙擊鼠標(biāo)左鍵Change控件的內(nèi)容改變控件的內(nèi)容改變Initialize窗體初始化窗體初始化Activate

18、成為活動(dòng)窗體成為活動(dòng)窗體KeyPress、KeyDown、KeyUp鍵盤(pán)的按下和松開(kāi)、按下、松開(kāi)鍵盤(pán)的按下和松開(kāi)、按下、松開(kāi)MouseDown、MouseUp鼠標(biāo)按鈕的按下、釋放鼠標(biāo)按鈕的按下、釋放MouseMove移動(dòng)鼠標(biāo)移動(dòng)鼠標(biāo)計(jì)算中心事件事件過(guò)程過(guò)程當(dāng)觸發(fā)事件時(shí),應(yīng)用程序啟動(dòng)相應(yīng)的程序模塊來(lái)處當(dāng)觸發(fā)事件時(shí),應(yīng)用程序啟動(dòng)相應(yīng)的程序模塊來(lái)處理當(dāng)前事件,這種程序模塊稱(chēng)作為事件過(guò)程理當(dāng)前事件,這種程序模塊稱(chēng)作為事件過(guò)程。Private Sub Form1_Load() Form1.Caption = 歡迎界面歡迎界面 TextBox1.SetFocusEnd Sub計(jì)算中心用戶(hù)窗體與控件用戶(hù)窗體

19、與控件用戶(hù)窗體用戶(hù)窗體用戶(hù)窗體(用戶(hù)窗體(UserForm對(duì)象)是對(duì)象)是VBA中的一中的一個(gè)對(duì)象,它表現(xiàn)出來(lái)的是一個(gè)窗口或?qū)υ?huà)框個(gè)對(duì)象,它表現(xiàn)出來(lái)的是一個(gè)窗口或?qū)υ?huà)框用于構(gòu)成應(yīng)用的用戶(hù)界面,可以作為控件的用于構(gòu)成應(yīng)用的用戶(hù)界面,可以作為控件的容器。容器。計(jì)算中心1窗體的屬性窗體的屬性屬性名稱(chēng)屬性名稱(chēng)編碼關(guān)鍵字編碼關(guān)鍵字說(shuō)明說(shuō)明標(biāo)題標(biāo)題Caption指定窗體標(biāo)題欄中的文本指定窗體標(biāo)題欄中的文本名稱(chēng)名稱(chēng)Name指定窗體名稱(chēng)指定窗體名稱(chēng)坐標(biāo)坐標(biāo)Left、Top指定窗體左上角的水平、垂直坐標(biāo)指定窗體左上角的水平、垂直坐標(biāo)大小大小Height、Width 指定窗體的高度與寬度指定窗體的高度與寬度有效有

20、效Enabled確定窗體能否對(duì)用戶(hù)的操作作出響確定窗體能否對(duì)用戶(hù)的操作作出響應(yīng)應(yīng)可見(jiàn)可見(jiàn)Visible確定窗體是否可見(jiàn),如確定窗體是否可見(jiàn),如UserForm1.Visible=True字體字體Font設(shè)置窗體中顯示文本的字體設(shè)置窗體中顯示文本的字體計(jì)算中心2窗體的方法窗體的方法窗體的窗體的屬性屬性表示窗體的某種狀態(tài)或樣子,表示窗體的某種狀態(tài)或樣子,是是靜態(tài)靜態(tài)的。而窗體的的。而窗體的方法方法表示窗體可以執(zhí)行表示窗體可以執(zhí)行的動(dòng)作,是的動(dòng)作,是動(dòng)態(tài)動(dòng)態(tài)的的。窗體窗體的操作方法包括插入、顯示與關(guān)閉等。的操作方法包括插入、顯示與關(guān)閉等。計(jì)算中心顯示窗體顯示窗體Public Sub DisplayW

21、indows() UserForm1.ShowEnd Sub關(guān)閉窗體關(guān)閉窗體Unload 窗體名窗體名計(jì)算中心3窗體事件窗體事件窗體事件是對(duì)窗體操作時(shí)而引起程序運(yùn)行窗體事件是對(duì)窗體操作時(shí)而引起程序運(yùn)行的動(dòng)作的動(dòng)作。窗體窗體事件主要有:事件主要有:Click(單擊)事件、(單擊)事件、DblClick(事件)、(事件)、Activate(激活激活)、Deactivate(失去激活)、(失去激活)、Initialize(初始化)(初始化)事件、事件、QueryClose(關(guān)閉)事件等。(關(guān)閉)事件等。計(jì)算中心例例8-5,編寫(xiě)一個(gè)宏程序,當(dāng)用戶(hù)窗體載入時(shí),在窗體標(biāo)題,編寫(xiě)一個(gè)宏程序,當(dāng)用戶(hù)窗體載入時(shí)

22、,在窗體標(biāo)題欄中顯示工作簿名稱(chēng)和工作表的欄中顯示工作簿名稱(chēng)和工作表的個(gè)數(shù)個(gè)數(shù)Private Sub UserForm_Initialize() Dim strName, strCount As String strName = ActiveWorkbook.Name strCount = Sheets.Count Me.Caption = strName & 中有中有 & strCount & 個(gè)工作表個(gè)工作表End Sub計(jì)算中心控件控件控件是控件是VBA中預(yù)先定義好的、程序中能夠中預(yù)先定義好的、程序中能夠直接使用的對(duì)象直接使用的對(duì)象??丶丶ǔR詧D形形式放在控件通

23、常以圖形形式放在控件“工具箱工具箱”中,可將控件放置在窗體上,與窗體共同組中,可將控件放置在窗體上,與窗體共同組成用戶(hù)界面。成用戶(hù)界面。計(jì)算中心1控件的基本控件的基本操作操作控件的基本操作包括控件的基本操作包括打開(kāi)控件工具箱打開(kāi)控件工具箱、將控件插將控件插入到窗體中入到窗體中、控件屬性設(shè)置控件屬性設(shè)置、控件的縮放和移動(dòng)控件的縮放和移動(dòng)等等。2常用控件常用控件按按鈕鈕名稱(chēng)名稱(chēng)功能功能標(biāo)簽標(biāo)簽在窗體中用其在窗體中用其Caption屬性對(duì)其他控件進(jìn)行說(shuō)明、變動(dòng)顯示屬性對(duì)其他控件進(jìn)行說(shuō)明、變動(dòng)顯示文本文本文本框文本框輸入文本、顯示查詢(xún)或計(jì)算結(jié)果輸入文本、顯示查詢(xún)或計(jì)算結(jié)果命令按鈕命令按鈕執(zhí)行、中斷或停

24、止程序的運(yùn)行執(zhí)行、中斷或停止程序的運(yùn)行列表框列表框顯示一個(gè)項(xiàng)目列表,從中可以選擇一項(xiàng)或多項(xiàng)顯示一個(gè)項(xiàng)目列表,從中可以選擇一項(xiàng)或多項(xiàng)組合框組合框功能與列表框相似,區(qū)別是需要打開(kāi)下拉列表才能顯示多個(gè)功能與列表框相似,區(qū)別是需要打開(kāi)下拉列表才能顯示多個(gè)項(xiàng)目項(xiàng)目單選按鈕單選按鈕可以從一組項(xiàng)目中選取其中一個(gè)項(xiàng)目可以從一組項(xiàng)目中選取其中一個(gè)項(xiàng)目復(fù)選框復(fù)選框與單選按鈕不同,復(fù)選框可以從同一框架內(nèi)選取多個(gè)與單選按鈕不同,復(fù)選框可以從同一框架內(nèi)選取多個(gè)圖像圖像顯示固定的圖像來(lái)美化窗體界面顯示固定的圖像來(lái)美化窗體界面計(jì)算中心例例8-6,設(shè)計(jì)如圖,設(shè)計(jì)如圖8 20所示的個(gè)人信息輸入所示的個(gè)人信息輸入表,并將輸入結(jié)果

25、保存到表,并將輸入結(jié)果保存到Excel工作表工作表中中對(duì)象對(duì)象名稱(chēng)名稱(chēng)屬性屬性值或說(shuō)明值或說(shuō)明標(biāo)簽標(biāo)簽lblInforCaption個(gè)人信息輸入表標(biāo)簽標(biāo)簽lblNameCaption姓名:文本框文本框txtNmae存放姓名文本框標(biāo)簽標(biāo)簽lblTitleCaption身份:組合框組合框cmbTitle標(biāo)簽標(biāo)簽lblSexCaption性別:?jiǎn)芜x按鈕單選按鈕optMaleCaption男單選按鈕單選按鈕optFemaleCaption女標(biāo)簽標(biāo)簽lblFavoriteCaption愛(ài)好:復(fù)選框復(fù)選框chkMusicCaption音樂(lè)復(fù)選框復(fù)選框chkInternetCaption上網(wǎng)復(fù)選框復(fù)選框ch

26、kSportCaption運(yùn)動(dòng)命令按鈕命令按鈕cmdInputCaption輸入命令按鈕命令按鈕cmdQuitCaption退出計(jì)算中心窗體初始化代碼窗體初始化代碼:Private Sub UserForm_Initialize() Me.Caption = 信息輸入信息輸入 cmbTitle.AddItem 學(xué)生學(xué)生 cmbTitle.AddItem 教師教師 cmbTitle.AddItem 職員職員 cmbTitle.AddItem 其他其他End Sub計(jì)算中心輸入按鈕輸入按鈕代碼代碼:Private Sub cmdInput_Click() Dim iRow As Integer D

27、im strFavorite As String strFavorite = iRow = Range(A65536).End(xlUp).Row + 1 Cells(iRow, 1) = txtName.Text Cells(iRow, 2) = cmbTitle.Text If optMale.Value = True Then Cells(iRow, 3) = 男男 If optFemale.Value = True Then Cells(iRow, 3) = 女女 If chkMusic.Value = True Then strFavorite = 音樂(lè)音樂(lè) If chkIntern

28、et.Value = True Then strFavorite = strFavorite & 上網(wǎng)上網(wǎng) If chkSport.Value = True Then strFavorite = strFavorite & 運(yùn)動(dòng)運(yùn)動(dòng) Cells(iRow, 4) = strFavoriteEnd Sub計(jì)算中心退出按鈕代碼退出按鈕代碼Private Sub cmdQuit_Click() Unload MeEnd Sub計(jì)算中心VBA編程基礎(chǔ)編程基礎(chǔ)關(guān)鍵字與關(guān)鍵字與標(biāo)識(shí)符標(biāo)識(shí)符關(guān)鍵字就是在關(guān)鍵字就是在Office軟件中已經(jīng)被定義好了、軟件中已經(jīng)被定義好了、有特定含義和用法的有特

29、定含義和用法的字符串字符串。如。如If、Then、Integer等。關(guān)鍵字不能用來(lái)表示變量名、過(guò)等。關(guān)鍵字不能用來(lái)表示變量名、過(guò)程名、函數(shù)名等用戶(hù)定義的標(biāo)識(shí)符,只能根程名、函數(shù)名等用戶(hù)定義的標(biāo)識(shí)符,只能根據(jù)系統(tǒng)規(guī)定的含義使用。據(jù)系統(tǒng)規(guī)定的含義使用。PublicPrivateStaticDimreDimConstAsTypeByteIntegerLongStringBoolean SingleDoubleCurrency DecimalVariantObjectIfElseEndifDoWhileLoopForNextGotoSelectCaseUntilEndsubFunction TrueF

30、alseEmptyNullErrorResumeWithExplicit計(jì)算中心2標(biāo)識(shí)符標(biāo)識(shí)符所謂標(biāo)識(shí)符,就是常量、變量、過(guò)程、參數(shù)的名稱(chēng)。在所謂標(biāo)識(shí)符,就是常量、變量、過(guò)程、參數(shù)的名稱(chēng)。在VBA中,標(biāo)識(shí)符的命名規(guī)則如下:中,標(biāo)識(shí)符的命名規(guī)則如下:(1)第一個(gè)字符必須是英文字母或下劃線(xiàn),由字母、數(shù))第一個(gè)字符必須是英文字母或下劃線(xiàn),由字母、數(shù)字和下劃線(xiàn)組成,如字和下劃線(xiàn)組成,如Test_1。(2)其中不能包含空格、句點(diǎn)()其中不能包含空格、句點(diǎn)(.)、驚嘆號(hào)()、驚嘆號(hào)(!),或),或、&、$、#等字符。等字符。(3)長(zhǎng)度不能超過(guò))長(zhǎng)度不能超過(guò)255個(gè)字符。個(gè)字符。(4)不能與)不能與

31、VBA關(guān)鍵字重名。關(guān)鍵字重名。(5)VBA不區(qū)分大小寫(xiě)。不區(qū)分大小寫(xiě)。計(jì)算中心數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型是程序設(shè)計(jì)中的一個(gè)重要類(lèi)型,一個(gè)變量的數(shù)據(jù)類(lèi)型是程序設(shè)計(jì)中的一個(gè)重要類(lèi)型,一個(gè)變量的數(shù)據(jù)類(lèi)型指出了該變量能存儲(chǔ)數(shù)據(jù)類(lèi)型指出了該變量能存儲(chǔ)何種類(lèi)型何種類(lèi)型的數(shù)據(jù)的數(shù)據(jù)。程序設(shè)計(jì)時(shí),應(yīng)盡量選用占據(jù)程序設(shè)計(jì)時(shí),應(yīng)盡量選用占據(jù)存儲(chǔ)空間較小存儲(chǔ)空間較小的數(shù)據(jù)類(lèi)的數(shù)據(jù)類(lèi)型來(lái)定義變量。型來(lái)定義變量。在存諸空間比較充足的情況下,選擇變量類(lèi)型時(shí),應(yīng)在存諸空間比較充足的情況下,選擇變量類(lèi)型時(shí),應(yīng)留有一定的余地,以免由于空間不夠而發(fā)生留有一定的余地,以免由于空間不夠而發(fā)生數(shù)據(jù)溢出數(shù)據(jù)溢出現(xiàn)象現(xiàn)象數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型類(lèi)型

32、名類(lèi)型名類(lèi)型符類(lèi)型符范圍范圍字節(jié)型字節(jié)型Byte無(wú)0255整型整型Integer%-3276832767邏輯型邏輯型Boolean無(wú)True或False長(zhǎng)整型長(zhǎng)整型Long&-214783648214783647單精度浮單精度浮點(diǎn)型點(diǎn)型Single!負(fù)數(shù):-3.402823E38-1.401298E-45正數(shù):1.01298E-453.402823E38雙精度浮雙精度浮點(diǎn)型點(diǎn)型Double#負(fù) 數(shù) : - 1 . 7 9 7 6 9 3 1 3 E 3 0 8 -4.94065648E-324正 數(shù) : - 4 . 9 4 0 6 5 6 4 8 E -3241.79769313E30

33、8貨幣型貨幣型Currency-922337203685922337203685字符串字符串String$根據(jù)字符串長(zhǎng)度而定日期型日期型Date無(wú)100年1月1日9999年12月31日對(duì)象型對(duì)象型Object無(wú)變體型變體型Variant無(wú)計(jì)算中心常量常量常量是指在程序運(yùn)行過(guò)程中其值不變的量。常量是指在程序運(yùn)行過(guò)程中其值不變的量。VBA的常量包括的常量包括數(shù)值常量數(shù)值常量、字符常量字符常量、符號(hào)符號(hào)常量常量、固有常量固有常量和和系統(tǒng)定義常量系統(tǒng)定義常量等等5種。種。計(jì)算中心1數(shù)值常量數(shù)值常量數(shù)值常量是一種最常用的常量,由數(shù)符、數(shù)字等組成。例如,數(shù)值常量是一種最常用的常量,由數(shù)符、數(shù)字等組成。例如

34、,578,-34.56。2字符常量字符常量字符常量由雙引號(hào)將字符括起來(lái)。例如,字符常量由雙引號(hào)將字符括起來(lái)。例如,“歡迎使用歡迎使用VBA”。3符號(hào)常量符號(hào)常量符號(hào)常量實(shí)際上是由用戶(hù)定義的常量,對(duì)于一些具有特定意義的符號(hào)常量實(shí)際上是由用戶(hù)定義的常量,對(duì)于一些具有特定意義的數(shù)字或字符串,或者在程序代碼中會(huì)多次使用的某些值定義為符數(shù)字或字符串,或者在程序代碼中會(huì)多次使用的某些值定義為符號(hào)常量。號(hào)常量。通常使用通常使用Const語(yǔ)句來(lái)說(shuō)明符號(hào)常量。例如,語(yǔ)句來(lái)說(shuō)明符號(hào)常量。例如,Const PI=3.1415926。計(jì)算中心4固有常量固有常量固有常量可在代碼中的任何地方代替實(shí)際固有常量可在代碼中的任

35、何地方代替實(shí)際值,使程序設(shè)計(jì)變得更加簡(jiǎn)單值,使程序設(shè)計(jì)變得更加簡(jiǎn)單。常量常量值值說(shuō)明說(shuō)明vbBlack0 x0黑色vbRed0 xFF紅色vbGreen0 xFF00綠色vbYellow0 xFFFF黃色vbBlue0 xFF0000藍(lán)色vbMagenta0 xFF00FF紫紅色vbCyan0 xFFFF00青色vbWhite0 xFFFFFF白色計(jì)算中心5系統(tǒng)常量系統(tǒng)常量VBA中有中有4個(gè)系統(tǒng)常量:個(gè)系統(tǒng)常量:True和和False表示邏表示邏輯值,輯值,Empty表示變體型變量尚未指定初始值,表示變體型變量尚未指定初始值,Null表示一個(gè)無(wú)效數(shù)據(jù)。表示一個(gè)無(wú)效數(shù)據(jù)。計(jì)算中心變量變量變量是指

36、在程序運(yùn)行過(guò)程中其值變化的量變量是指在程序運(yùn)行過(guò)程中其值變化的量。1變量的命名變量的命名變量的命名應(yīng)遵守標(biāo)識(shí)符命名的規(guī)則,即以變量的命名應(yīng)遵守標(biāo)識(shí)符命名的規(guī)則,即以字母字母、字符開(kāi)頭字符開(kāi)頭,不超過(guò),不超過(guò)255個(gè)字符個(gè)字符的字符串,而且中間不的字符串,而且中間不能包含句號(hào)或類(lèi)型聲明字符。建義用大小寫(xiě)混合的單能包含句號(hào)或類(lèi)型聲明字符。建義用大小寫(xiě)混合的單詞縮寫(xiě)組成變量名,以便能反映該變量的有效范圍、詞縮寫(xiě)組成變量名,以便能反映該變量的有效范圍、類(lèi)型和用途,符合類(lèi)型和用途,符合“見(jiàn)名知義見(jiàn)名知義”的原則。的原則。計(jì)算中心2變量的聲明變量的聲明通常在使用變量之前,必須先進(jìn)行聲明。變量的聲通常在使用

37、變量之前,必須先進(jìn)行聲明。變量的聲明可簡(jiǎn)單地理解成將使用的變量事先通知程序。明可簡(jiǎn)單地理解成將使用的變量事先通知程序。其其一般格式如下:一般格式如下:Dim 變量名變量名 As 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型Dim iAge As Integer, fPrice As Single, fWeight As DoubleDim a As Integer, b As Long, c As SingleDim a%, B&, c!計(jì)算中心例例8-7,編寫(xiě)一個(gè)宏程序,計(jì)算,編寫(xiě)一個(gè)宏程序,計(jì)算圓面積圓面積。Sub Test8_7() Const PI = 3.14159 定義常量定義常量Pi Dim fRa

38、dius As Single, fCircleArea As Single fRadius = 4.5 fCircleArea = PI * fRadius * fRadius Debug.Print fCircleArea 將將CircleArea中的值顯示在立中的值顯示在立即窗口中即窗口中End Sub計(jì)算中心3變體型變量變體型變量變體型變量是一種特殊的數(shù)據(jù)類(lèi)型,變體型變量是一種特殊的數(shù)據(jù)類(lèi)型,未聲未聲明為其他數(shù)據(jù)類(lèi)型的變量明為其他數(shù)據(jù)類(lèi)型的變量都是變體型都是變體型。變體型變量的聲明有兩種方式,一種是顯變體型變量的聲明有兩種方式,一種是顯式聲明,例如,式聲明,例如,Dim a;另一種是隱式

39、聲明,;另一種是隱式聲明,也就是未經(jīng)聲明數(shù)據(jù)類(lèi)型就直接使用。也就是未經(jīng)聲明數(shù)據(jù)類(lèi)型就直接使用。計(jì)算中心例例8-8,在標(biāo)準(zhǔn)模塊中創(chuàng)建下列過(guò)程,測(cè)試變體型變量的使用。,在標(biāo)準(zhǔn)模塊中創(chuàng)建下列過(guò)程,測(cè)試變體型變量的使用。Sub Test8_8() Dim a a = VBA編程編程 Debug.Print VarType(a) 顯示顯示VarType(A)的值為的值為8,說(shuō)明,說(shuō)明A為字符串型為字符串型 a = 56 Debug.Print VarType(a) 顯示顯示VarType(A)的值為的值為2,說(shuō)明,說(shuō)明A為整數(shù)型為整數(shù)型 b = Time Debug.Print VarType(b) 顯

40、示顯示VarType(A)的值為的值為7,說(shuō)明,說(shuō)明A為日期型為日期型End Sub計(jì)算中心4靜態(tài)變量靜態(tài)變量使用使用Static聲明的變量稱(chēng)為靜態(tài)變量。靜態(tài)聲明的變量稱(chēng)為靜態(tài)變量。靜態(tài)變量的值在整個(gè)代碼運(yùn)行期間都能保留變量的值在整個(gè)代碼運(yùn)行期間都能保留。例例8-9,創(chuàng)建用戶(hù)窗體,并在該窗體上添加,創(chuàng)建用戶(hù)窗體,并在該窗體上添加命令按鈕,要求單擊該命令按鈕,能使整型命令按鈕,要求單擊該命令按鈕,能使整型變量變量A的值依次加的值依次加1。計(jì)算中心Private Sub CommandButton1_Click() Static a As Integer a = a + 1 MsgBox a= &

41、amp; a 在信息框內(nèi)顯示在信息框內(nèi)顯示A的值的值End Sub計(jì)算中心5數(shù)組數(shù)組數(shù)組是指具有相同的數(shù)據(jù)類(lèi)型的有序數(shù)據(jù)的集合,數(shù)組是指具有相同的數(shù)據(jù)類(lèi)型的有序數(shù)據(jù)的集合,即一個(gè)數(shù)組中的所有元素具有相同的數(shù)據(jù)類(lèi)型即一個(gè)數(shù)組中的所有元素具有相同的數(shù)據(jù)類(lèi)型。Dim 數(shù)組名數(shù)組名(數(shù)組下標(biāo)上界數(shù)組下標(biāo)上界) As 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型Dim Number(10) As IntegerDim Price(1 To 10) As IntegerDim Price(1 To 3,1 To 4)計(jì)算中心例例8-10,創(chuàng)建下列過(guò)程,學(xué)習(xí)數(shù)組的聲明及數(shù)組元素的使用。,創(chuàng)建下列過(guò)程,學(xué)習(xí)數(shù)組的聲明及數(shù)組元素的使用。S

42、ub Test8_10() Dim n As Integer Dim Number(5) As Integer For n = 0 To 5 Number(n) = n Debug.Print Number(n) Next nEnd Sub計(jì)算中心運(yùn)算符運(yùn)算符運(yùn)算符是表示實(shí)現(xiàn)某種運(yùn)算功能的符號(hào)。運(yùn)算符是表示實(shí)現(xiàn)某種運(yùn)算功能的符號(hào)。按按運(yùn)算的操作對(duì)象和操作結(jié)果的不同數(shù)據(jù)類(lèi)型,運(yùn)算的操作對(duì)象和操作結(jié)果的不同數(shù)據(jù)類(lèi)型,VBA中的運(yùn)算符可分為算術(shù)運(yùn)算符、連接運(yùn)算符、中的運(yùn)算符可分為算術(shù)運(yùn)算符、連接運(yùn)算符、比較運(yùn)算符和邏輯運(yùn)算符等多種類(lèi)型。比較運(yùn)算符和邏輯運(yùn)算符等多種類(lèi)型。運(yùn)算類(lèi)型運(yùn)算類(lèi)型運(yùn)算符運(yùn)算符運(yùn)

43、算運(yùn)算示例或說(shuō)明示例或說(shuō)明優(yōu)先順優(yōu)先順序序算術(shù)算術(shù)指數(shù)運(yùn)算23結(jié)果為81-取負(fù)運(yùn)算-2結(jié)果為負(fù)22*、/乘除運(yùn)算2*3結(jié)果為63整除運(yùn)算5/2結(jié)果為24Mod取模運(yùn)算5Mod2結(jié)果為15+、-加減運(yùn)算3+2結(jié)果為56連接連接&、+字符串連接ab&cd結(jié)果為abcd7比較比較=相等3=3結(jié)果為T(mén)rue8不等于33結(jié)果為False8小于3大于32結(jié)果為T(mén)rue8=小于等于2=大于等于2=3結(jié)果為False8邏輯邏輯Not非由真變假,由假變真9And與兩個(gè)表達(dá)式同時(shí)為真,則值為真,否則為假10Or或兩個(gè)表達(dá)式中有一個(gè)值為真,則為真,否則為假11Xor異或兩個(gè)表達(dá)式同時(shí)為真或?yàn)榧伲瑒t值

44、為假,否則為真12計(jì)算中心內(nèi)置函數(shù)內(nèi)置函數(shù)函數(shù)就是一個(gè)能完成一定功能的執(zhí)行代碼段函數(shù)就是一個(gè)能完成一定功能的執(zhí)行代碼段。從從用戶(hù)使用角度來(lái)看,函數(shù)分為兩種用戶(hù)使用角度來(lái)看,函數(shù)分為兩種:第一第一種是系統(tǒng)種是系統(tǒng)內(nèi)置函數(shù)內(nèi)置函數(shù),即庫(kù)函數(shù),即庫(kù)函數(shù) 這是由這是由編譯系統(tǒng)提供的,用戶(hù)不必自己定義這些函數(shù),編譯系統(tǒng)提供的,用戶(hù)不必自己定義這些函數(shù),可以直接使用它們可以直接使用它們;第二第二種是用戶(hù)種是用戶(hù)自己定義的函數(shù)自己定義的函數(shù),用以解決用,用以解決用戶(hù)的專(zhuān)門(mén)需要戶(hù)的專(zhuān)門(mén)需要 計(jì)算中心1MsgBox函數(shù)函數(shù)MsgBox函數(shù)可打開(kāi)一個(gè)消息對(duì)話(huà)框,顯示有關(guān)信息,并返回函數(shù)可打開(kāi)一個(gè)消息對(duì)話(huà)框,顯示有

45、關(guān)信息,并返回用戶(hù)所選按鈕的整數(shù)值,作為程序繼續(xù)執(zhí)行的依據(jù)。用戶(hù)所選按鈕的整數(shù)值,作為程序繼續(xù)執(zhí)行的依據(jù)。其格式為:其格式為:MsgBox(prompt,buttons,title)其中:其中:prompt是一個(gè)字符串,用來(lái)指定消息框中顯示的信息。是一個(gè)字符串,用來(lái)指定消息框中顯示的信息。buttons是一些是一些VB符號(hào)常數(shù)或相應(yīng)數(shù)值的符號(hào)常數(shù)或相應(yīng)數(shù)值的“+”號(hào)的組合,用來(lái)指號(hào)的組合,用來(lái)指定消息框中顯示的按鈕、圖標(biāo)和默認(rèn)按鈕等定消息框中顯示的按鈕、圖標(biāo)和默認(rèn)按鈕等。Title 是一個(gè)字符串,用來(lái)指定消息框的標(biāo)題。是一個(gè)字符串,用來(lái)指定消息框的標(biāo)題。范圍范圍常數(shù)常數(shù)相應(yīng)數(shù)值相應(yīng)數(shù)值功能功能

46、按鈕種類(lèi)按鈕種類(lèi)VbOKOnly0僅有僅有“確定確定”按鈕按鈕VbOKCancel1“確定確定”和和“取消取消”按鈕按鈕VbAbortRetryIgore2“終止終止”、“重試重試”和和“忽略忽略”按鈕按鈕VbYesNoCancel3“是是”、“否否”和和“取消取消”按按鈕鈕VbYesNo4“是是”和和“否否”按鈕按鈕 VbRetryCancel5“重試重試”和和“取消取消”按鈕按鈕圖標(biāo)圖標(biāo) VbCritical16“停止停止”圖標(biāo)圖標(biāo) VbQuestion32問(wèn)號(hào)圖標(biāo)問(wèn)號(hào)圖標(biāo) VbExclamation48驚嘆號(hào)圖標(biāo)驚嘆號(hào)圖標(biāo) VbInformation64(i)信息圖標(biāo)信息圖標(biāo)默認(rèn)按鈕默認(rèn)

47、按鈕 vbDefaultButton10第一個(gè)按鈕第一個(gè)按鈕 vbDefaultButton2256第二個(gè)按鈕第二個(gè)按鈕 vbDefaultButton3512第三個(gè)按鈕第三個(gè)按鈕計(jì)算中心例如,下列調(diào)用例如,下列調(diào)用MsgBox函數(shù)的語(yǔ)句可函數(shù)的語(yǔ)句可打開(kāi)打開(kāi)如下如下所所示的消息框:示的消息框:a=Msgbox(是否要?jiǎng)h除是否要?jiǎng)h除?,vbYesNo+vbexclamation,確認(rèn)確認(rèn))計(jì)算中心2InputBox函數(shù)函數(shù)InputBox函數(shù)可打開(kāi)一個(gè)輸入對(duì)話(huà)框,提示用戶(hù)輸入信息,并返函數(shù)可打開(kāi)一個(gè)輸入對(duì)話(huà)框,提示用戶(hù)輸入信息,并返回用戶(hù)在輸入框所輸入的字符串。回用戶(hù)在輸入框所輸入的字符串。其

48、格式為:其格式為: InputBox(prompt,title,default)其中:其中: prompt和和title這兩個(gè)參數(shù)的作用與這兩個(gè)參數(shù)的作用與MsgBox函數(shù)中相應(yīng)的參數(shù)作用函數(shù)中相應(yīng)的參數(shù)作用相同。相同。default是一個(gè)字符串,用來(lái)指定顯示在文本輸入框中的缺省值。是一個(gè)字符串,用來(lái)指定顯示在文本輸入框中的缺省值。如果省略該參數(shù),則文本輸入框中的缺省信息為空。如果省略該參數(shù),則文本輸入框中的缺省信息為空。計(jì)算中心例如,下列調(diào)用例如,下列調(diào)用InputBox函數(shù)的語(yǔ)句可打開(kāi)如圖函數(shù)的語(yǔ)句可打開(kāi)如圖8 24所示的所示的輸入框:輸入框: a=InputBox(請(qǐng)輸入你的姓名請(qǐng)輸入你

49、的姓名,輸入框輸入框)計(jì)算中心表達(dá)式表達(dá)式VBA中的表達(dá)式是由中的表達(dá)式是由常量、變量、運(yùn)算符、函數(shù)和圓括號(hào)常量、變量、運(yùn)算符、函數(shù)和圓括號(hào)組成的有組成的有意義的式子。意義的式子。表達(dá)式表達(dá)式分為分為數(shù)值表達(dá)式數(shù)值表達(dá)式、字符表達(dá)式字符表達(dá)式和和邏輯表達(dá)式(邏輯表達(dá)式(即布爾表達(dá)式)即布爾表達(dá)式)等。等。(1)優(yōu)先順序從高到低排列為:函數(shù))優(yōu)先順序從高到低排列為:函數(shù)算術(shù)運(yùn)算符算術(shù)運(yùn)算符連接運(yùn)算符連接運(yùn)算符比比較運(yùn)算符較運(yùn)算符邏輯運(yùn)算符邏輯運(yùn)算符。(2)當(dāng)加法和減法同時(shí)出現(xiàn)在表達(dá)式中時(shí),按從左到右順序計(jì)算。同)當(dāng)加法和減法同時(shí)出現(xiàn)在表達(dá)式中時(shí),按從左到右順序計(jì)算。同樣,當(dāng)乘法和除法同時(shí)出現(xiàn)在表

50、達(dá)式中時(shí),也按從左到右順序計(jì)算。樣,當(dāng)乘法和除法同時(shí)出現(xiàn)在表達(dá)式中時(shí),也按從左到右順序計(jì)算。(3)可以用括號(hào)改變優(yōu)先順序,括號(hào)內(nèi)表達(dá)式的運(yùn)算優(yōu)先計(jì)算。)可以用括號(hào)改變優(yōu)先順序,括號(hào)內(nèi)表達(dá)式的運(yùn)算優(yōu)先計(jì)算。計(jì)算中心例例8-11,創(chuàng)建下列過(guò)程,學(xué)習(xí)表達(dá)式的使用。,創(chuàng)建下列過(guò)程,學(xué)習(xí)表達(dá)式的使用。Sub Test8_11() Dim a As Integer Const PI = 3.14159265 a = 2 Debug.Print Sin(72 * PI / 180) * a Debug.Print How & are you Debug.Print (a 0) And (a Mod

51、2 = 0)End Sub計(jì)算中心程序基本控制語(yǔ)句程序基本控制語(yǔ)句在在VBA程序代碼中,有程序代碼中,有3種基本控制結(jié)構(gòu),即:種基本控制結(jié)構(gòu),即:順序結(jié)構(gòu)順序結(jié)構(gòu)、分支結(jié)構(gòu)分支結(jié)構(gòu)和和循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)。分支分支結(jié)構(gòu)結(jié)構(gòu)分支結(jié)構(gòu)的執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,分支結(jié)構(gòu)的執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴(yán)格按照語(yǔ)句出現(xiàn)的物理順序。在而不是嚴(yán)格按照語(yǔ)句出現(xiàn)的物理順序。在VBA中,中,使用使用If語(yǔ)句或語(yǔ)句或Select Case語(yǔ)句構(gòu)成分支結(jié)構(gòu),根據(jù)條語(yǔ)句構(gòu)成分支結(jié)構(gòu),根據(jù)條件是否成立來(lái)決定代碼的執(zhí)行流向。件是否成立來(lái)決定代碼的執(zhí)行流向。計(jì)算中心1單行單行If語(yǔ)句語(yǔ)句單行單行If語(yǔ)句的格

52、式為:語(yǔ)句的格式為:If 條件條件 Then 語(yǔ)句塊語(yǔ)句塊1 Else 語(yǔ)句塊語(yǔ)句塊2例例8-12,設(shè)計(jì)一個(gè)過(guò)程,如果,設(shè)計(jì)一個(gè)過(guò)程,如果Sheet1工作表中工作表中A1單元格的單元格的內(nèi)容為內(nèi)容為“q”,則退出,則退出Excel。Sub Test8_12() If Sheet1.Range(A1).Value = q Then Application.QuitEnd Sub計(jì)算中心例例8-13,設(shè)計(jì)一個(gè)過(guò)程,計(jì)算下列分段函數(shù):,設(shè)計(jì)一個(gè)過(guò)程,計(jì)算下列分段函數(shù): 10 X0Sub Test8_13 () Dim x As Integer, y As Integer x = InputBox(請(qǐng)

53、輸入一個(gè)整數(shù)請(qǐng)輸入一個(gè)整數(shù)) If x = b And a = c Then Max = a ElseIf b = a And b = c Then Max = b Else Max = c End If MsgBox 最大數(shù)為:最大數(shù)為: & MaxEnd Sub計(jì)算中心3Select Case語(yǔ)句語(yǔ)句Select Case語(yǔ)句是一個(gè)多路分支語(yǔ)句,其格式為:語(yǔ)句是一個(gè)多路分支語(yǔ)句,其格式為:Select Case 表達(dá)式表達(dá)式Case 表達(dá)式列表表達(dá)式列表1 語(yǔ)句塊語(yǔ)句塊1Case 表達(dá)式列表表達(dá)式列表2 語(yǔ)句塊語(yǔ)句塊2Case 表達(dá)式列表表達(dá)式列表n 語(yǔ)句塊語(yǔ)句塊nCase Els

54、e 語(yǔ)句塊語(yǔ)句塊n+1End Select計(jì)算中心例例8-16,設(shè)計(jì)一個(gè)過(guò)程,對(duì),設(shè)計(jì)一個(gè)過(guò)程,對(duì)A1單元格中的學(xué)生成單元格中的學(xué)生成績(jī)進(jìn)行等級(jí)評(píng)定,成績(jī)與級(jí)別的對(duì)應(yīng)關(guān)系為:績(jī)進(jìn)行等級(jí)評(píng)定,成績(jī)與級(jí)別的對(duì)應(yīng)關(guān)系為:=90 優(yōu)秀優(yōu)秀=80 良好良好=60 合格合格= 90 strLevel = 優(yōu)秀優(yōu)秀 Case 80 To 89 strLevel = 良好良好 Case 60 To 79 strLevel = 合格合格 Case Else strLevel = 不合格不合格 End Select MsgBox 成績(jī)成績(jī) & Marks & 對(duì)應(yīng)的級(jí)別為:對(duì)應(yīng)的級(jí)別為: &

55、; strLevelEnd Sub計(jì)算中心循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)在在VBA中,主要使用中,主要使用For語(yǔ)句和語(yǔ)句和Do語(yǔ)句來(lái)構(gòu)成循環(huán)語(yǔ)句來(lái)構(gòu)成循環(huán)結(jié)構(gòu)。結(jié)構(gòu)。1ForNext語(yǔ)句語(yǔ)句其其格式為:格式為:For 循環(huán)變量循環(huán)變量=初值初值 To 終值終值 Step 步長(zhǎng)值步長(zhǎng)值 語(yǔ)句塊語(yǔ)句塊Next計(jì)算中心例例8-17,設(shè)計(jì)一個(gè)過(guò)程,計(jì)算,設(shè)計(jì)一個(gè)過(guò)程,計(jì)算S=1+2+3+100。Sub Test8_17() Dim i As Integer, iSum As Integer iSum = 0 For i = 1 To 100 iSum = iSum + i Next MsgBox 1+2+3+10

56、0= & iSumEnd Sub計(jì)算中心例例8-18,設(shè)計(jì)一個(gè)過(guò)程,求,設(shè)計(jì)一個(gè)過(guò)程,求A1:A10區(qū)域中的最小值。區(qū)域中的最小值。Sub Test8_18() Dim i As Integer Dim iMin As Integer iMin = Range(A1).Value For i = 2 To 10 If Range(A & i).Value iMin Then iMin = Range(A & i).Value End If Next MsgBox 最小值為:最小值為: & iMinEnd Sub計(jì)算中心2For Each Next語(yǔ)句語(yǔ)句若要對(duì)某

57、集合中的每一個(gè)對(duì)象或數(shù)組中的每一個(gè)元若要對(duì)某集合中的每一個(gè)對(duì)象或數(shù)組中的每一個(gè)元素,重復(fù)執(zhí)行一組語(yǔ)句時(shí),應(yīng)該使用素,重復(fù)執(zhí)行一組語(yǔ)句時(shí),應(yīng)該使用For EachNext循循環(huán)語(yǔ)句環(huán)語(yǔ)句。For Each Next語(yǔ)句格式為:語(yǔ)句格式為:For Each 對(duì)象變量對(duì)象變量 In 對(duì)象集合對(duì)象集合 語(yǔ)句塊語(yǔ)句塊Next 對(duì)象變量對(duì)象變量計(jì)算中心例例8-19,設(shè)計(jì)一個(gè)過(guò)程,檢查選定區(qū)域中每一個(gè)單元格的,設(shè)計(jì)一個(gè)過(guò)程,檢查選定區(qū)域中每一個(gè)單元格的值,如果單元格為負(fù)值,那么將該單元格的填充色設(shè)置為值,如果單元格為負(fù)值,那么將該單元格的填充色設(shè)置為紅色。紅色。Sub Test8_19() Dim rngC

58、ell As Range For Each rngCell In Selection If rngCell.Value 0 Then rngCell.Interior.ColorIndex = 3 Next End Sub計(jì)算中心例例8-20,設(shè)計(jì)一個(gè)過(guò)程,刪除工作薄中所有空白工作表。,設(shè)計(jì)一個(gè)過(guò)程,刪除工作薄中所有空白工作表。Sub Test8_20() Dim ws As Worksheet For Each ws In Worksheets If Application.WorksheetFunction.CountA(ws.Cells) = 0 Then Application.Dis

59、playAlerts = False ws.Delete Application.DisplayAlerts = True End If Next wsEnd Sub計(jì)算中心3WhileWend語(yǔ)句語(yǔ)句WhileWend語(yǔ)句經(jīng)常用于循環(huán)次數(shù)不確定,語(yǔ)句經(jīng)常用于循環(huán)次數(shù)不確定,或者控制循環(huán)的變量的變化情況比較復(fù)雜的或者控制循環(huán)的變量的變化情況比較復(fù)雜的情況,其格式為:情況,其格式為:While條件條件 語(yǔ)句塊語(yǔ)句塊Wend計(jì)算中心例例8-21,設(shè)計(jì)一個(gè)過(guò)程,計(jì)算,設(shè)計(jì)一個(gè)過(guò)程,計(jì)算10!。Sub Test8_21() Dim t, n As Long t = 1 n = 1 While t =

60、0.000001 fSum = fSum + 1 / fItem i = i + 1 fItem = fItem * i Loop MsgBox e近似值為:近似值為: & fSumEnd Sub計(jì)算中心其它其它語(yǔ)句語(yǔ)句1With語(yǔ)句語(yǔ)句其格式為:其格式為:With對(duì)象對(duì)象.屬性屬性 l=屬性值屬性值.屬性屬性2=屬性值屬性值.屬性屬性N=屬性值屬性值Endwith計(jì)算中心例例8-23,設(shè)計(jì)一個(gè)過(guò)程,將單元格,設(shè)計(jì)一個(gè)過(guò)程,將單元格A1的字體設(shè)置為:的字體設(shè)置為:宋體,字體為宋體,字體為14號(hào)、粗體,字體顏色為紅色。不使用號(hào)、粗體,字體顏色為紅色。不使用With語(yǔ)句的代碼如下語(yǔ)句的代碼如下:Sub Test8_23() Range(A1).Font.Name = 宋體宋體 Range(A1).Font.Size = 14 Range(A1).Font.Color

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論