版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第8,1,PPT學(xué)習(xí)交流,第8章 模塊,本章要求 了解類(lèi)模塊和標(biāo)準(zhǔn)模塊的概念 會(huì)在模塊中執(zhí)行宏 熟悉VBE界面 掌握變量、常量、運(yùn)算符和表達(dá)式的相關(guān)知識(shí) 掌握流程控制語(yǔ)句的書(shū)寫(xiě)和應(yīng)用 掌握過(guò)程調(diào)用和參數(shù)傳遞的方法 會(huì)調(diào)試程序,2,PPT學(xué)習(xí)交流,8.1 模塊的基本概念 模塊是Access中的一個(gè)重要對(duì)象,它是以VBA聲明、語(yǔ)句和過(guò)程作為一個(gè)獨(dú)立單元的結(jié)合。每個(gè)模塊獨(dú)立保存并對(duì)應(yīng)于其中的VBA代碼。 模塊分為兩大類(lèi):類(lèi)模塊和標(biāo)準(zhǔn)模塊。 一、類(lèi)模塊 類(lèi)模塊是指包含新對(duì)象定義的模塊。 當(dāng)用戶新建一個(gè)類(lèi)的實(shí)例的同時(shí),也就創(chuàng)建了新的對(duì)象,在模塊定義的任何過(guò)程都會(huì)變成這個(gè)對(duì)象的屬性和方法。 類(lèi)模塊分為:窗
2、體模塊、報(bào)表模塊和獨(dú)立的類(lèi)模塊,3,PPT學(xué)習(xí)交流,二、標(biāo)準(zhǔn)模塊 標(biāo)準(zhǔn)模塊是指存放整個(gè)數(shù)據(jù)庫(kù)可用的函數(shù)和過(guò)程的模塊。 標(biāo)準(zhǔn)模塊和類(lèi)模塊的主要區(qū)別在于其范圍和生命周期方面。 三、將宏轉(zhuǎn)換為模塊 Access中,用戶可以根據(jù)需要,將設(shè)計(jì)好的宏對(duì)象轉(zhuǎn)換成模塊代碼形式。 步驟:在“宏”對(duì)象中選擇要轉(zhuǎn)換的宏,執(zhí)行菜單“工具” “宏” “將宏轉(zhuǎn)換為Visual Basic代碼”命令,打開(kāi)“轉(zhuǎn)換宏”對(duì)話框,單擊“轉(zhuǎn)換”按鈕,即可完成宏到模塊的轉(zhuǎn)換。,4,PPT學(xué)習(xí)交流,8.2 創(chuàng)建模塊 一、在模塊中加入過(guò)程 過(guò)程:是模塊的單元組成,由VBA代碼編寫(xiě)而成,分為Sub子過(guò)程和Function函數(shù)過(guò)程。 進(jìn)入窗體
3、或報(bào)表的設(shè)計(jì)視圖,單擊工具欄中的“代碼”按鈕,即可進(jìn)入類(lèi)模塊的設(shè)計(jì)和編輯窗口; 單擊數(shù)據(jù)庫(kù)窗體中的“模塊”對(duì)象標(biāo)簽,再單擊“新建”按鈕,即可進(jìn)入標(biāo)準(zhǔn)模塊的設(shè)計(jì)和編輯窗口。 模塊的聲明區(qū)域用于聲明模塊使用的變量等項(xiàng)目,每個(gè)模塊都包含一個(gè)聲明區(qū)域,其中包含一個(gè)或幾個(gè)Sub子過(guò)程或Function函數(shù)過(guò)程。,5,PPT學(xué)習(xí)交流,Sub子過(guò)程 只執(zhí)行一系列的操作,不返回任何值。格式: Sub 過(guò)程名 程序代碼 End Sub Function函數(shù)過(guò)程 執(zhí)行一系列操作,有返回值。格式: Function 過(guò)程名 As(返回值)類(lèi)型 程序代碼 End Function Sub子過(guò)程可以用Call關(guān)鍵字調(diào)用
4、,F(xiàn)unction函數(shù)過(guò)程則不能用Call調(diào)用執(zhí)行,需要直接引用函數(shù)過(guò)程名,6,PPT學(xué)習(xí)交流,模塊的創(chuàng)建 創(chuàng)建一個(gè)名為“模塊入門(mén)”的新模塊,保存為“模塊入門(mén)”,7,PPT學(xué)習(xí)交流,過(guò)程的創(chuàng)建 在“模塊入門(mén)”模塊中創(chuàng)建一個(gè)Hello過(guò)程,用戶輸入,8,PPT學(xué)習(xí)交流,二、在模塊中執(zhí)行宏 在模塊中執(zhí)行宏,可以使用DoCmd對(duì)象的RunMacro方法。 格式: DoCmd.RunMacro MacroName,RepeatCount,RepeatExpression 說(shuō)明: MacroName表示宏的有效名稱(chēng)。 RepeatCount用于計(jì)算宏運(yùn)行次數(shù)。 RepeatExpression為數(shù)值表達(dá)
5、式,在結(jié)果不等于False(0)時(shí)一直進(jìn)行計(jì)算,在結(jié)果等于False時(shí)停止運(yùn)行宏。,9,PPT學(xué)習(xí)交流,8.3 VBA程序設(shè)計(jì)基礎(chǔ) 一、面向?qū)ο蟮幕靖拍?對(duì)象和集合 對(duì)象指由描述該對(duì)象屬性的數(shù)據(jù)以及可以對(duì)這些數(shù)據(jù)施加的所有操作封裝在一起構(gòu)成的統(tǒng)一體,可以看成是一個(gè)獨(dú)立的單元。 集合表示的是某類(lèi)對(duì)象所包含的實(shí)例的構(gòu)成。 屬性和方法 屬性是類(lèi)中用于描述對(duì)象特征的數(shù)據(jù),是對(duì)客觀世界實(shí)質(zhì)性質(zhì)的抽象。 屬性的應(yīng)用方式為:對(duì)象.屬性,10,PPT學(xué)習(xí)交流,方法是對(duì)象所能執(zhí)行的操作,VBA中的方法由過(guò)程或函數(shù)組成。 方法的引用方式為: 對(duì)象.方法 Access還提供了一個(gè)DoCmd對(duì)象,其主要功能是通過(guò)調(diào)
6、用內(nèi)部方法來(lái)實(shí)現(xiàn)VBA對(duì)Access中的操作。 調(diào)用格式: DoCmd.OpenReport reportname ,view,filtername,wherecondition 事件是指Access中的對(duì)象可以識(shí)別的動(dòng)作,如單擊鼠標(biāo)、窗體等。,11,PPT學(xué)習(xí)交流,Access中,有兩種方式來(lái)處理窗體、報(bào)表或控件的事件響應(yīng),一種是使用宏對(duì)象來(lái)設(shè)置事件屬性,另一種是事件過(guò)程,即為某個(gè)事件編寫(xiě)VBA代碼過(guò)程。 事件過(guò)程是指為某個(gè)事件編寫(xiě)VBA代碼過(guò)程,完成指定動(dòng)作。 關(guān)于窗體、報(bào)表、命令按鈕控件、標(biāo)簽控件、文本框控件、組合框控件、選項(xiàng)組控件、單選按鈕及復(fù)選框控件的主要事件過(guò)程詳見(jiàn)教材P21521
7、6,12,PPT學(xué)習(xí)交流,例:在新建窗體中添加一個(gè)命令按鈕,并創(chuàng)建“單擊”事件響應(yīng)過(guò)程。,13,PPT學(xué)習(xí)交流,二、Visual Basic編輯環(huán)境 VBE(Visual Basic Editor)是Access提供的編程界面,VBE窗口主要由工具欄、工程窗口、屬性窗口和代碼窗口組成。 標(biāo)準(zhǔn)工具欄如下圖所示,14,PPT學(xué)習(xí)交流,進(jìn)入VBE編程環(huán)境 Access模塊分為類(lèi)模塊和標(biāo)準(zhǔn)模塊,它們進(jìn)入VBE編程環(huán)境的方式也是不同的。 類(lèi)模塊進(jìn)入VBE環(huán)境的方法: 單擊窗體“屬性”窗口的“事件”選項(xiàng)卡,單擊任一“事件過(guò)程”右側(cè)的“”按鈕,進(jìn)入“選擇生成器”窗體,選擇“代碼生成器”項(xiàng),單擊“確定”按鈕,
8、進(jìn)入VBE編程環(huán)境。 標(biāo)準(zhǔn)模塊進(jìn)入VBE環(huán)境的方法有3種: 選擇“模塊”對(duì)象,雙擊要查看的模塊對(duì)象 單擊“新建”按鈕,創(chuàng)建新模塊 執(zhí)行“工具” “宏” “Visual Basic編輯器”命令,15,PPT學(xué)習(xí)交流,VBE界面,工程窗口,屬性窗口,代碼窗口,立即窗口,對(duì)象選定器,過(guò)程選定器,16,PPT學(xué)習(xí)交流,VBE環(huán)境中編寫(xiě)VBA代碼 VBA代碼是由語(yǔ)句組成的,一條語(yǔ)句就是一行代碼。 例如: intCount=3 將3賦值給變量intCount Debug.Print intCount 在立即窗口打印變量 intCount的值3 操作時(shí),在代碼窗口左邊組合框選定一個(gè)對(duì)象后,右邊過(guò)程組合框中會(huì)
9、列出該對(duì)象的所有事件過(guò)程,再?gòu)脑搶?duì)象事件過(guò)程列表選項(xiàng)中選擇某個(gè)事件名稱(chēng),系統(tǒng)會(huì)自動(dòng)生成相應(yīng)的事件過(guò)程模版,用戶添加代碼即可。,17,PPT學(xué)習(xí)交流,程序語(yǔ)句書(shū)寫(xiě)規(guī)則 (1)語(yǔ)句書(shū)寫(xiě)規(guī)定: 通常一個(gè)語(yǔ)句寫(xiě)一行。語(yǔ)句較長(zhǎng),一行寫(xiě)不下時(shí),可使用續(xù)行符(一個(gè)空格加下劃線“_”),將語(yǔ)句連續(xù)寫(xiě)在下一行。 可以使用冒號(hào)(:),將幾個(gè)語(yǔ)句分隔寫(xiě)在一行中。 當(dāng)輸入一行語(yǔ)句并按下回車(chē)鍵后,若該行代碼以紅色顯示,則表明改行語(yǔ)句有錯(cuò)誤,應(yīng)更正。 (2)注釋語(yǔ)句(可以通過(guò)以下兩種方式實(shí)現(xiàn)) 使用Rem語(yǔ)句,格式為:Rem注釋語(yǔ)句(在語(yǔ)句之后Rem前面要加冒號(hào)) 用單引號(hào)“”,格式為:注釋語(yǔ)句,18,PPT學(xué)習(xí)交流,(
10、3)采用縮進(jìn)格式書(shū)寫(xiě)程序 采用正確的縮進(jìn)格式,以顯示出流程中的結(jié)構(gòu)。也可以利用“編輯”菜單下的“縮進(jìn)”或“凸出”命令進(jìn)行設(shè)置。 (4)F1幫助信息 用戶可以將鍵盤(pán)光標(biāo)停留在某個(gè)語(yǔ)句命令上,按下F1鍵,系統(tǒng)會(huì)提供相關(guān)的幫助。,19,PPT學(xué)習(xí)交流,三、數(shù)據(jù)類(lèi)型和數(shù)據(jù)庫(kù)對(duì)象 1.標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型,VBA數(shù)據(jù)類(lèi)型列表,20,PPT學(xué)習(xí)交流,2.用戶定義的數(shù)據(jù)類(lèi)型 不同類(lèi)型的變量可以組合起來(lái)創(chuàng)建用戶定義的數(shù)據(jù)類(lèi)型。 創(chuàng)建自定義的數(shù)據(jù)類(lèi)型的語(yǔ)句是Type,用戶自定義類(lèi)型可包含一個(gè)或多個(gè)基本數(shù)據(jù)類(lèi)型的數(shù)據(jù)元素、數(shù)組或一個(gè)先前定義的用戶自定義類(lèi)型。 Type語(yǔ)句的基本格式: Private|Public Typ
11、e 數(shù)據(jù)類(lèi)型名 元素1 As 數(shù)據(jù)類(lèi)型 元素2 As 數(shù)據(jù)類(lèi)型 End Type,21,PPT學(xué)習(xí)交流,例如: 定義一個(gè)名稱(chēng)為MyType的數(shù)據(jù)類(lèi)型: Type MyType MyName As String*10 定義字符串變量存儲(chǔ)一個(gè)名字 MyBirthDate As Date 定義日期變量存儲(chǔ)一個(gè)生日 MySex As Integer 定義整型變量存儲(chǔ)性別(0為女,1為男) End Type 聲明變量: Dim NewVal as MyType 引用數(shù)據(jù)(使用“變量名.元素名”的格式): NewVal.MyName=“劉星” NewVal.MyBirthDate=#10/10/1991#
12、 NewVal.MySex=1,22,PPT學(xué)習(xí)交流,3.數(shù)據(jù)庫(kù)對(duì)象 數(shù)據(jù)庫(kù)、表、查詢、窗體和報(bào)表等,也有對(duì)應(yīng)的VBA對(duì)象數(shù)據(jù)類(lèi)型,這些對(duì)象數(shù)據(jù)類(lèi)型由引用的對(duì)象庫(kù)定義,常用VBA對(duì)象數(shù)據(jù)類(lèi)型和對(duì)象庫(kù)中所包括的對(duì)象 詳見(jiàn)教材P222 表8-13,23,PPT學(xué)習(xí)交流,四、變量與常量 變量是指程序運(yùn)行時(shí)值會(huì)發(fā)生變化的數(shù)據(jù)。 每個(gè)變量都有變量名(變量命名不能含有空格或除了下劃線“_“外的任何其他的標(biāo)點(diǎn)符號(hào),長(zhǎng)度不能超過(guò)255個(gè)字符),使用前可以指定數(shù)據(jù)類(lèi)型(即采用顯式聲明),也可以不指定(即采用隱式聲明)。 常量是在程序中可以直接引用的實(shí)際值,其值在程序運(yùn)行中不變。 VBA中有3種常量:直接常量、符
13、號(hào)常量和系統(tǒng)常量。,24,PPT學(xué)習(xí)交流,1.變量的聲明 (1)顯式聲明 格式:Dim 變量名 As 數(shù)據(jù)類(lèi)型 例如:Dim number As Integer 等價(jià)于:Dim number% 可以使用Dim語(yǔ)句在一行中聲明多個(gè)變量。 如:Dim intx As Integer,Strz As String 定義了1個(gè)整型變量intx和1個(gè)字符型變量Strz (2)隱式聲明 格式:變量名=值 例如:Data=123 所有隱式聲明的變量都是Variant數(shù)據(jù)類(lèi)型。VBA根據(jù)程序中賦予變量的值來(lái)自動(dòng)調(diào)整變量的類(lèi)型。 Dim I,j,k As integer 只有k是integer型,I與j都是va
14、riant型,25,PPT學(xué)習(xí)交流,2.強(qiáng)制聲明 良好的編程習(xí)慣都應(yīng)該是“先聲明變量,后使用變量”,這樣做可以提高程序的效率,同時(shí)也使程序易于調(diào)試。VBA中可以強(qiáng)制顯式聲明,在窗體模塊、標(biāo)準(zhǔn)模塊和類(lèi)模塊的通用聲明段中加入:Option Explicit,26,PPT學(xué)習(xí)交流,3.變量的作用域 在VBA中,定義變量的位置和方式不同,其存在的時(shí)間和作用范圍也不同,也就是它的生命周期和作用域不同。根據(jù)變量的作用域,可把變量分為3種類(lèi)型:局部變量、模塊變量和全局變量 3種變量的使用規(guī)則與作用域見(jiàn)下表:,27,PPT學(xué)習(xí)交流,變量的作用域和生命周期舉例,x全局變量 y過(guò)程變量 z過(guò)程靜態(tài)變量,28,PP
15、T學(xué)習(xí)交流,4.數(shù)據(jù)庫(kù)對(duì)象變量 可以引用Access中的窗體對(duì)象和報(bào)表對(duì)象。 格式:Forms!窗體名稱(chēng)!控件名.屬性名 Reports!報(bào)表名稱(chēng)!控件名.屬性名 若屬性名稱(chēng)缺省,則默認(rèn)為控件基本屬性。 例如: Forms!學(xué)生!姓名 =“張域” 若在本窗體的模塊中引用,可以用Me代替Forms!學(xué)生,語(yǔ)句變?yōu)椋?Me!姓名 =“張域” 如果要多次引用某一值,則可用一個(gè)變量名代替窗體控件對(duì)象。 例如: Dim Name As Control 定義控件類(lèi)型變量 Set Name= Forms!學(xué)生!姓名 指定引用窗體控件對(duì)象 Name=“張域” 操作對(duì)象變量,29,PPT學(xué)習(xí)交流,5.數(shù)組 數(shù)組
16、變量由變量名和數(shù)組下標(biāo)組成。 格式:Dim 數(shù)組名(下標(biāo)下限 to下標(biāo)上限) 缺省狀態(tài)下,下標(biāo)下限為0。 例如:Dim Array(5) As String 定義了由6個(gè)字符串構(gòu)成的數(shù)組,數(shù)組元素為Array(0),,Array(5)。 Dim Array(1 to 5) As String 定義了由5個(gè)字符串構(gòu)成的數(shù)組,數(shù)組元素為Array(1),,Array(5)。 Dim Array(5,5,5) As String 定義了一個(gè)多維數(shù)組,包含666個(gè)數(shù)組元素,30,PPT學(xué)習(xí)交流,Dim Array() As Integer 定義了一個(gè)動(dòng)態(tài)數(shù)組。在使用動(dòng)態(tài)數(shù)組時(shí),先不指名數(shù)組元素?cái)?shù)目,需
17、要時(shí)再用ReDim關(guān)鍵字定義。當(dāng)不需要使用時(shí),可以用ReDim將其設(shè)置為0,釋放內(nèi)存空間。如:ReDim Array(5,5,5) As Integer 將上面的動(dòng)態(tài)數(shù)組設(shè)置為666個(gè)數(shù)組元素。 6.變量命名規(guī)則 一般用小寫(xiě)字母作為變量名的第一個(gè)字符; 長(zhǎng)度小于255個(gè)字符; 變量名是字母、數(shù)字與下劃線(_)的組合,并且必須以字母開(kāi)頭,不區(qū)分大小寫(xiě),不能包含其他字符; 不能使用VBA關(guān)鍵字; 在同一作用域內(nèi),變量名必須是唯一的。,31,PPT學(xué)習(xí)交流,7.符號(hào)常量 對(duì)一些使用較為頻繁的常量,可以用符號(hào)常量表示。 格式:Const 符號(hào)常量名稱(chēng)=常量值 例如 定義圓周率: Const PI=3.
18、1415926 注意:符號(hào)常量一般要求大寫(xiě)命名。 8.系統(tǒng)常量 系統(tǒng)定義的常量有7個(gè):True、False、Null、Yes、No、On和Off等,系統(tǒng)常量可以在計(jì)算機(jī)上的所有應(yīng)用程序中使用。,32,PPT學(xué)習(xí)交流,五、常用標(biāo)準(zhǔn)函數(shù) 標(biāo)準(zhǔn)函數(shù)一般用于表達(dá)式中。 格式:函數(shù)名(,參數(shù)3,參數(shù)4,參數(shù)5) 說(shuō)明:其中函數(shù)名是不可或缺的。參數(shù)可以常量、變量、表達(dá)式,參數(shù)個(gè)數(shù)也可以根據(jù)需要自行設(shè)定。每個(gè)函數(shù)被調(diào)用時(shí),都會(huì)返回一個(gè)返回值。需要指出的是,函數(shù)的參數(shù)和返回值都有特定的數(shù)據(jù)類(lèi)型對(duì)應(yīng)。 常用函數(shù)分為算術(shù)函數(shù)、字符串函數(shù)、日期/事件函數(shù)、類(lèi)型轉(zhuǎn)換函數(shù),具體詳見(jiàn)教材P225227。,33,PPT學(xué)習(xí)
19、交流,六、運(yùn)算符和表達(dá)式 1.運(yùn)算符 1)算術(shù)運(yùn)算符:,注意:整數(shù)除法()運(yùn)算,如果操作數(shù)有小數(shù),系統(tǒng)會(huì)舍去再運(yùn)算,如果結(jié)果中有小數(shù)也將舍去;求模運(yùn)算,如果操作數(shù)有小數(shù),系統(tǒng)會(huì)四舍五入再運(yùn)算,如果被除數(shù)是負(fù)數(shù),余數(shù)也是負(fù)數(shù)。,34,PPT學(xué)習(xí)交流,2)關(guān)系運(yùn)算符 運(yùn)算的結(jié)果為邏輯值:True或False,Is關(guān)系運(yùn)算符用于兩個(gè)對(duì)象變量引用比較。常用語(yǔ)法為:result=object1 Is object2 如果object1和object2兩者引用相同的對(duì)象,result為T(mén)rue,否則為False。,35,PPT學(xué)習(xí)交流,3)邏輯運(yùn)算符 邏輯運(yùn)算也稱(chēng)布爾運(yùn)算,包括與(And)、或(Or)和非
20、(Not)共3個(gè)運(yùn)算符。 0:False 1:True 邏輯運(yùn)算符的優(yōu)先級(jí)由高到低依次為Not、And、Or。,36,PPT學(xué)習(xí)交流,4)連接運(yùn)算符 有 & 和 +,連接兩個(gè)字符串。 區(qū)別: +(連接運(yùn)算):兩個(gè)操作數(shù)均應(yīng)為字符串類(lèi)型; &(連接運(yùn)算):兩個(gè)操作數(shù)既可為字符型也可為數(shù)值型,當(dāng)是數(shù)值型時(shí),系統(tǒng)自動(dòng)先將其轉(zhuǎn)換為數(shù)字字符,然后進(jìn)行連接操作。 例: “100”+“123” 結(jié)果為 100123 “Abc”+ 123 出錯(cuò) “100”& 123 結(jié)果為 100123 100 & 123 結(jié)果為 100123 “Abc”& 123 結(jié)果為 Abc123,37,PPT學(xué)習(xí)交流,2.表達(dá)式和優(yōu)
21、先級(jí) 表達(dá)式:用運(yùn)算符將常量和變量連接在一起構(gòu)成的式子。 運(yùn)算符的優(yōu)先級(jí)規(guī)則如下: 算術(shù)運(yùn)算符連接運(yùn)算符關(guān)系運(yùn)算符邏輯運(yùn)算符。 優(yōu)先級(jí)相同,按從左向右順序進(jìn)行。 括號(hào)優(yōu)先級(jí)最高。,VBA表達(dá)式 3*33/3 的輸出結(jié)果為_(kāi) (2006.4),9,38,PPT學(xué)習(xí)交流,設(shè)a=2, b=3, c=4, d=5, 則表達(dá)式 NOT aa+c 的值為_(kāi),5,6,7,False,39,PPT學(xué)習(xí)交流,8.4 VBA流程控制語(yǔ)句 計(jì)算機(jī)程序的執(zhí)行控制流程有3種基本結(jié)構(gòu):順序結(jié)構(gòu)、條件判斷結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。 順序結(jié)構(gòu):順序執(zhí)行程序語(yǔ)句 條件判斷結(jié)構(gòu):按照給定的條件進(jìn)行判斷,再按判斷結(jié)果分別執(zhí)行程序中不同部分的
22、代碼。 循環(huán)結(jié)構(gòu):按照條件反復(fù)執(zhí)行一系列語(yǔ)句。 根據(jù)循環(huán)的條件,可以把循環(huán)結(jié)構(gòu)分為兩類(lèi): 當(dāng)型循環(huán)結(jié)構(gòu):當(dāng)條件成立時(shí),反復(fù)執(zhí)行語(yǔ)句。 直到型循環(huán)結(jié)構(gòu):反復(fù)執(zhí)行語(yǔ)句直到條件成立為止。,40,PPT學(xué)習(xí)交流,三種基本結(jié)構(gòu),41,PPT學(xué)習(xí)交流,三種基本結(jié)構(gòu),42,PPT學(xué)習(xí)交流,一、賦值語(yǔ)句 賦值語(yǔ)句主要用于為變量指定一個(gè)值或者表達(dá)式,通常以“=”連接。 格式:Let變量名=值或者表達(dá)式 Let為可選項(xiàng) 例如:定義一個(gè)單精度數(shù)值,并賦值為1.23456。 Dim i as single i=1.23456 二、條件語(yǔ)句 1.單分支結(jié)構(gòu)(IfThen語(yǔ)句) If測(cè)試指定的條件,如果條件為真(True
23、),則執(zhí)行Then后面的語(yǔ)句。 格式1:If 條件表達(dá)式 Then 語(yǔ)句,43,PPT學(xué)習(xí)交流,格式2: If 條件表達(dá)式 Then 語(yǔ)句塊 End If 注意:IfThen的單行格式不用End If。但如果條件表達(dá)式為真(True)時(shí),要執(zhí)行多行代碼,則必須使用多行IfThenEnd If語(yǔ)法。 例:已知兩個(gè)數(shù)x和y,比較它們的大小,使得x大于y。 If x=80 Then Debug.Print 良好“ ElseIf x=70 Then Debug.Print 中等“ ElseIf x=60 Then Debug.Print 及格 Else Debug.Print 不及格 End If,4
24、9,PPT學(xué)習(xí)交流,4.Select語(yǔ)句 Select Case選擇結(jié)構(gòu):根據(jù)表達(dá)式求值結(jié)果,選擇執(zhí)行幾個(gè)分支中的一個(gè)。 格式: Select Case 條件表達(dá)式 Case 表達(dá)式1 語(yǔ)句1 Case 表達(dá)式2 To 表達(dá)式3 語(yǔ)句2 Case Is 關(guān)系運(yùn)算符表達(dá)式4 語(yǔ)句3 Case Else語(yǔ)句n End select,注意: 按照在 Select.Case 結(jié)構(gòu)中出現(xiàn)的順序,將表達(dá)式的值和 Case 語(yǔ)句中的值進(jìn)行比較。 如果發(fā)現(xiàn)一個(gè)匹配項(xiàng)或一條 Case Else 語(yǔ)句,則執(zhí)行相應(yīng)的語(yǔ)句塊。 在任何情況下,隨后都會(huì)將控制轉(zhuǎn)移到 End Select 語(yǔ)句后面的語(yǔ)句。,50,PPT學(xué)
25、習(xí)交流,說(shuō)明: 表示可以不包含括號(hào)中的內(nèi)容。 表達(dá)式列表的形式有以下3種: Case表達(dá)式:如Case10,15,判斷測(cè)試表達(dá)式的值是否為10或15。 Case表達(dá)式1 To 表達(dá)式2:如Case 10 To 15,判斷測(cè)試表達(dá)式的值是否在1015之間。 Case Is關(guān)系運(yùn)算符表達(dá)式:如Case Is0,1,x=0,0,x0,1) 根據(jù)x的值來(lái)為y賦值 (3)Choose語(yǔ)句 格式:Choose(索引式,選項(xiàng)1,選項(xiàng)2,選項(xiàng)n) 說(shuō)明:Choose語(yǔ)句是根據(jù)“索引式”的值來(lái)返回選項(xiàng)列表的某個(gè)值。“索引式”值為1,則返回“選項(xiàng)1”的值,“索引式”值為n,則返回“選項(xiàng)n”的值。 如:Y=Choo
26、se(x,7,5,9) 根據(jù)x的值,為變量Y賦值 教材P234 例8-13涉及If語(yǔ)句的嵌套使用,練習(xí)并理解,54,PPT學(xué)習(xí)交流,三、循環(huán)語(yǔ)句 1.ForNext語(yǔ)句 ForNext循環(huán)結(jié)構(gòu):將一段程序重復(fù)執(zhí)行指定的次數(shù),其中使用一個(gè)計(jì)數(shù)變量,統(tǒng)計(jì)執(zhí)行的次數(shù)。 格式:For 循環(huán)變量=初值 To 終值Step步長(zhǎng) 語(yǔ)句組1 Exit For 語(yǔ)句組2 Next循環(huán)變量 功能:循環(huán)變量先被賦初值。判斷循 環(huán)變量是否在終值內(nèi),如果是,執(zhí)行 循環(huán)體,然后循環(huán)變量加步長(zhǎng)值繼續(xù) ;如果否,結(jié)束循環(huán),執(zhí)行Next后的語(yǔ)句,55,PPT學(xué)習(xí)交流,說(shuō)明: 1)循環(huán)控制變量的類(lèi)型必須是數(shù)值型。 2)步長(zhǎng)可以是
27、正數(shù)(終值應(yīng)大于初值),也可以是負(fù)數(shù)(終值小于初值),如果步長(zhǎng)為1,Step參數(shù)可以省略。步長(zhǎng)不能為0,否則造成“死循環(huán)” 3)根據(jù)初值、終值和步長(zhǎng),可以計(jì)算出循環(huán)的次數(shù),因此For語(yǔ)句一般用于循環(huán)次數(shù)已知的情況。 4)使用Exit For語(yǔ)句可以提前退出循環(huán)。 如:Dim i as integer,Sum as integer Sum=0 For i=1 to 10 Sum=Sum+i Next i 計(jì)算整數(shù)110的和,56,PPT學(xué)習(xí)交流,例:假定有以下程序段 (2005.9) n=0 for i=1 to 3 for j=-4 to -1 n=n+1 next j next i 運(yùn)行完畢
28、后,n的值是 A)0 B)3 C)4 D)12,Right!,57,PPT學(xué)習(xí)交流,2.Do WhileLoop語(yǔ)句和DoLoop While語(yǔ)句 格式1:(先判斷條件是否成立,再開(kāi)始循環(huán)) Do While|Until 條件表達(dá)式 語(yǔ)句 Exit Do 語(yǔ)句 Loop Do WhileLoop循環(huán)結(jié)構(gòu):先判斷后執(zhí)行,有可能一次也不執(zhí)行。While關(guān)鍵字用于指明條件為真時(shí)執(zhí)行循環(huán)體內(nèi)語(yǔ)句;Until當(dāng)條件為假時(shí),執(zhí)行循環(huán)體內(nèi)語(yǔ)句?!皘”表示括號(hào)內(nèi)任意一個(gè)。,58,PPT學(xué)習(xí)交流,格式2:先循環(huán),再判斷條件是否成立。 Do 語(yǔ)句 Exit Do 語(yǔ)句 Loop While|Until 條件表達(dá)式
29、 DoLoop While循環(huán)結(jié)構(gòu):先執(zhí)行后判斷,循環(huán)語(yǔ)句至少執(zhí)行一次;While關(guān)鍵字用于指明條件為真時(shí)執(zhí)行循環(huán)體內(nèi)語(yǔ)句;Until當(dāng)條件為假時(shí),執(zhí)行循環(huán)體內(nèi)語(yǔ)句。 注意:在循環(huán)體中必須有修改循環(huán)變量的語(yǔ)句,如n=n+1,否則循環(huán)條件始終不發(fā)生改變,循環(huán)將永遠(yuǎn)不會(huì)結(jié)束,即死循環(huán)。,59,PPT學(xué)習(xí)交流,例:?jiǎn)螕舸绑w,消息框的結(jié)果為_(kāi) (2006.4) Private Sub Form_Click() Dim x as Integer, y as Integer x=2: y=4 Do x=x*y y=y+1 Loop while y6 num=num+2.4 Loop MsgBox num
30、End Sub,num=1 num=3.4 num=5.8 num=8.2,此種結(jié)構(gòu),先判斷條件,再執(zhí)行循環(huán)體,當(dāng)until后的條件表達(dá)式為假時(shí),執(zhí)行循環(huán)體,為真時(shí),跳出循環(huán)體。,61,PPT學(xué)習(xí)交流,3.WhileWend語(yǔ)句 格式:While 條件表達(dá)式 語(yǔ)句 Wend WhileWend語(yǔ)句與Do WhileLoop結(jié)構(gòu)類(lèi)似,當(dāng)條件滿足時(shí),執(zhí)行循環(huán)體,只是在循環(huán)體內(nèi)不能使用Exit Do語(yǔ)句。 四、GoTo語(yǔ)句 GoTo語(yǔ)句用于實(shí)現(xiàn)無(wú)條件跳轉(zhuǎn)。 格式:GoTo 標(biāo)號(hào) 標(biāo)號(hào): 注意:標(biāo)號(hào)名字從代碼行的最左列開(kāi)始寫(xiě)。一般不建議用GoTo語(yǔ)句。,62,PPT學(xué)習(xí)交流,8.5 過(guò)程調(diào)用和參數(shù)傳遞
31、 在VBA中,過(guò)程是由一系列可以完成某項(xiàng)指定的操作、計(jì)算語(yǔ)句和方法組成。根據(jù)過(guò)程是否返回值,分為Sub過(guò)程和Function過(guò)程。 一、過(guò)程調(diào)用 1.過(guò)程的定義和調(diào)用(用Sub語(yǔ)句聲明一個(gè)新的過(guò)程) 格式:Public|PrivateStatic Sub 過(guò)程名(參數(shù) As 數(shù)據(jù)類(lèi)型 過(guò)程語(yǔ)句 Exit Sub 過(guò)程語(yǔ)句 End Sub 使用Public關(guān)鍵字可以使該過(guò)程適用于所有模塊中的所有其他過(guò)程;用Private關(guān)鍵字則使該程序只適用于同一模塊中的其他過(guò)程。,63,PPT學(xué)習(xí)交流,過(guò)程調(diào)用形式有以下兩種: Call過(guò)程名(實(shí)參) 過(guò)程名(實(shí)參) 例:先編寫(xiě)一個(gè)子過(guò)程“MsgBox”,然后
32、寫(xiě)成調(diào)用該子過(guò)程的語(yǔ)句。 程序代碼: Sub MsgBox(FormName as String) MsgBox“請(qǐng)輸入用戶名!”,vbOKOnly+vbInformation,“提示” End Sub 調(diào)用名為“登陸”的窗體,可以用下列語(yǔ)句 Call Sub MsgBox(“登陸”),64,PPT學(xué)習(xí)交流,2.函數(shù)的定義和調(diào)用 用Function語(yǔ)句可以聲明一個(gè)新函數(shù),它接受參數(shù)、返回變量類(lèi)型及運(yùn)行該函數(shù)過(guò)程的代碼。 格式: Public|PrivateStatic Function 函數(shù)名(參數(shù)) As 數(shù)據(jù)類(lèi)型 函數(shù)語(yǔ)句 函數(shù)名=表達(dá)式 Exit Function 函數(shù)語(yǔ)句 函數(shù)名=表達(dá)
33、式 End Function 說(shuō)明:對(duì)函數(shù)使用Public關(guān)鍵字,則所有模塊的過(guò)程都可以調(diào)用它。 用Private關(guān)鍵字使這個(gè)函數(shù)只適用于同一模塊中的其他過(guò)程;當(dāng)把一個(gè)函數(shù)說(shuō)明為模塊中的私有函數(shù)時(shí),就不能從查詢、宏或另一個(gè)模塊中的函數(shù)這個(gè)函數(shù)。 包含Static關(guān)鍵字時(shí),只要含有這個(gè)過(guò)程的模塊是打開(kāi)的,則所有在這個(gè)過(guò)程中的顯式和隱含說(shuō)明的變量值都將被保留。 函數(shù)的調(diào)用:變量名 = 函數(shù)過(guò)程名(參數(shù)列表),65,PPT學(xué)習(xí)交流,Private Sub CmdOK() Call S) S End Sub,Private Sub S%) Dim temp% Temp=X X=Y Y=Temp End
34、 Sub,示例 過(guò)程調(diào)用的執(zhí)行過(guò)程:,66,PPT學(xué)習(xí)交流,二、參數(shù)傳遞 過(guò)程或函數(shù)定義可以設(shè)置一個(gè)或多個(gè)參數(shù),這個(gè)參數(shù)稱(chēng)為形參,多個(gè)參數(shù)之間用逗號(hào)分隔。 格式: OptionalByVal|ByRefParamArray Varname ()As type=Defaultvalue 各參數(shù)的含義: Varname:必須的,形參名稱(chēng)。遵循標(biāo)準(zhǔn)的變量命名約定 Type:可選項(xiàng),傳遞給該過(guò)程的參數(shù)的數(shù)據(jù)類(lèi)型 Optional:可選項(xiàng),表示參數(shù)不是必須的。如果使用了 ParamArray,則任何參數(shù)都不能使用Optional ByVal:可選項(xiàng),表示該參數(shù)按值傳遞 ByRef:可選項(xiàng),表示該參數(shù)按地址傳遞。ByRef是VBA的缺省選項(xiàng),67,PPT學(xué)習(xí)交流,含參數(shù)的過(guò)程被調(diào)用時(shí),主調(diào)用過(guò)程中的調(diào)用式必須提供相應(yīng)的實(shí)參(實(shí)際參數(shù)的簡(jiǎn)稱(chēng)),并通過(guò)實(shí)參向形參傳遞的方式完成過(guò)程操作。 關(guān)于實(shí)參向形參的數(shù)據(jù)傳遞,還想了解
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年阜新高等專(zhuān)科學(xué)校單招職業(yè)傾向性測(cè)試題庫(kù)及參考答案詳解一套
- 2026年青海省海西蒙古族藏族自治州單招職業(yè)適應(yīng)性測(cè)試題庫(kù)及參考答案詳解
- 2026年云南省曲靖市單招職業(yè)適應(yīng)性測(cè)試題庫(kù)及完整答案詳解1套
- 2026年蘭考三農(nóng)職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案詳解一套
- 2026年黑龍江農(nóng)墾職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)及答案詳解1套
- 2026年潞安職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)含答案詳解
- 公務(wù)員面試題及正確答案
- 銀行設(shè)計(jì)崗面試題及答案
- 2025年中國(guó)科學(xué)院深??茖W(xué)與工程研究所招聘?jìng)淇碱}庫(kù)(十三)及答案詳解一套
- 2026小學(xué)教師個(gè)人工作計(jì)劃(2篇)
- 2025年駕考科目三安全考試題庫(kù)
- 熔鹽儲(chǔ)熱技術(shù)原理
- IATF16949中英文對(duì)照版2025-10-13新版
- 肩關(guān)節(jié)脫位的護(hù)理
- 電子商務(wù)數(shù)據(jù)分析-數(shù)據(jù)采集
- 2025年保安員資格考試題目及答案(共100題)
- 大學(xué)家屬院物業(yè)管理辦法
- 防火、防爆、防雷、防靜電課件
- 海選活動(dòng)策劃方案
- 經(jīng)濟(jì)法學(xué)-003-國(guó)開(kāi)機(jī)考復(fù)習(xí)資料
- 照明工程施工組織方案
評(píng)論
0/150
提交評(píng)論