access8VBA編程入門語(yǔ)法市公開(kāi)課金獎(jiǎng)市賽課一等獎(jiǎng)?wù)n件_第1頁(yè)
access8VBA編程入門語(yǔ)法市公開(kāi)課金獎(jiǎng)市賽課一等獎(jiǎng)?wù)n件_第2頁(yè)
access8VBA編程入門語(yǔ)法市公開(kāi)課金獎(jiǎng)市賽課一等獎(jiǎng)?wù)n件_第3頁(yè)
access8VBA編程入門語(yǔ)法市公開(kāi)課金獎(jiǎng)市賽課一等獎(jiǎng)?wù)n件_第4頁(yè)
access8VBA編程入門語(yǔ)法市公開(kāi)課金獎(jiǎng)市賽課一等獎(jiǎng)?wù)n件_第5頁(yè)
已閱讀5頁(yè),還剩85頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第8章VBA編程入門第1頁(yè)內(nèi)容提要8-1VBA概念8-2VBA編程基礎(chǔ)8-3VBA慣用語(yǔ)句8-4VBA程序流程控制8-5數(shù)組8-6VBA與宏8-7小結(jié)及練習(xí)第2頁(yè)VBA(VisualBasicforApplication)是MicrosoftOffice系列軟件內(nèi)置編程語(yǔ)言,其語(yǔ)法結(jié)構(gòu)與VisualBasic編程語(yǔ)言相互兼容,采取是面向?qū)ο缶幊虣C(jī)制和可視化編程環(huán)境。8-1VBA概述8-1-1VBA介紹第3頁(yè)集合和對(duì)象VBA中應(yīng)用程序是由許多對(duì)象組成,如表、窗體、查詢等。對(duì)象是幫助結(jié)構(gòu)應(yīng)用程序元素,以特定方式組織這些對(duì)象,就形成了應(yīng)用程序。數(shù)據(jù)庫(kù)窗口把可供選擇對(duì)象排列在一起,形成不一樣類。8-1-2面向?qū)ο蟪绦蛟O(shè)計(jì)基本概念第4頁(yè)對(duì)象屬性、事件和方法屬性

屬性描述了對(duì)象本身性質(zhì)。其格式為:

對(duì)象名.屬性=屬性值事件事件是指能夠發(fā)生在一個(gè)對(duì)象上且能夠被該對(duì)象所識(shí)別動(dòng)作。如:?jiǎn)螕裟硞€(gè)命令按鈕就產(chǎn)生該按鈕“單擊”事件當(dāng)某個(gè)對(duì)象發(fā)生某一事件后,就會(huì)驅(qū)動(dòng)系統(tǒng)去執(zhí)行預(yù)先編好、與這一事件相對(duì)應(yīng)一段程序。第5頁(yè)方法方法是系統(tǒng)事先設(shè)計(jì)好,能夠完成一定操作特殊過(guò)程,是從屬于對(duì)象行為和動(dòng)作。在需要使用時(shí)候能夠直接調(diào)用。其調(diào)用格式為:

對(duì)象名.方法名第6頁(yè)

Access中除數(shù)據(jù)庫(kù)7個(gè)對(duì)象外,還提供一個(gè)主要對(duì)象:DoCmd對(duì)象除窗體、控件SetFocus(取得控制焦點(diǎn))方法外,用得最多得是DoCmd對(duì)象一些方法。使用這些方法,能夠在VBA中運(yùn)行Access操作。第7頁(yè)打開(kāi)當(dāng)前數(shù)據(jù)庫(kù)中“雇員”窗體

DoCmd.OpenForm"Employees"

在數(shù)據(jù)庫(kù)窗口中選擇“雇員”窗體DoCmd.SelectObjectacForm,"

Employees

",True在數(shù)據(jù)庫(kù)窗口中關(guān)閉“雇員”窗體

DoCmd.CloseacForm,“Employees”,acSaveYes刪除數(shù)據(jù)庫(kù)中“雇員”表

DoCmd.DeleteObject"Employees"

DoCmd對(duì)象慣用方法(參考教材P190頁(yè))第8頁(yè)例8-1新建一個(gè)窗體并添加兩個(gè)命令按鈕,運(yùn)行窗體后,單擊第一個(gè)按鈕,新式一個(gè)消息框;單擊第二個(gè)按鈕,退出當(dāng)前窗體。(參考教材P191頁(yè))

經(jīng)過(guò)此例,體會(huì)可視化編程、面向?qū)ο蟆⑹录^(guò)程、應(yīng)用方法等基本概念。第9頁(yè)進(jìn)入VBE編程環(huán)境VBE窗口組成VBE窗口由工具欄、工程資源管理器窗口、屬性窗口、代碼窗口和馬上窗口組成。在VBE環(huán)境中編寫VBA代碼8-1-3VBA編程環(huán)境第10頁(yè)標(biāo)準(zhǔn)工具條視圖MicrosoftAccess按鈕:切換Access窗口插入按鈕:插入模塊或過(guò)程運(yùn)行子過(guò)程/用戶窗體按鈕:運(yùn)行模塊中程序中止按鈕:中止正在運(yùn)行程序重新設(shè)置按鈕:結(jié)束正在運(yùn)行程序設(shè)置模式按鈕:在設(shè)計(jì)模式和非設(shè)計(jì)模式之間切換工程資源管理器按鈕:用于打開(kāi)工程資源管理器屬性窗口按鈕:用于打開(kāi)屬性窗口對(duì)象瀏覽器按鈕:用于打開(kāi)對(duì)象瀏覽器MicrosoftAccsee插入模塊運(yùn)行子過(guò)程/用戶窗體設(shè)計(jì)模式中止重新設(shè)計(jì)工程資源管理器對(duì)象瀏覽器屬性窗口第11頁(yè)工程窗口-選擇對(duì)象屬性窗口-選擇對(duì)象屬性代碼窗口選擇事件VBE編程環(huán)境第12頁(yè)8-2-1常量、變量8-2VBA編程基礎(chǔ)常量:在程序運(yùn)行中其存放值不會(huì)改變。變量:在程序運(yùn)行中其值能夠改變。VBA使用常量、變量來(lái)存放值。用來(lái)保留在程序運(yùn)行期間數(shù)據(jù)。第13頁(yè)常量

在程序運(yùn)行過(guò)程中,其值不會(huì)被改變量稱為常量。在VBA中有三類常量:直接常量

如:10,20%,123.0,“AB”,“VBA程序設(shè)計(jì)”等

符號(hào)常量系統(tǒng)常量

指VBA系統(tǒng)預(yù)先定義好,用戶能夠直接引用量。如:acForm,acQuery,vbOk,vbRed

第14頁(yè)符號(hào)常量

在程序中,某個(gè)常量屢次被使用,則能夠使用一個(gè)符號(hào)來(lái)代替該常量,這么不但在書寫上方便,而且有效地改進(jìn)了程序可讀性和可維護(hù)性。VBA中使用關(guān)鍵字Const

申明符號(hào)常量。其格式以下:

Const常量名[類型符號(hào)]=常數(shù)表示式如:

ConstPI#=3.1415926第15頁(yè)變量是內(nèi)存中暫時(shí)單元,存放在程序執(zhí)行過(guò)程中產(chǎn)生中間結(jié)果和最終輸出結(jié)果。

在程序中使用變量,就要給變量定義名稱及類型,即對(duì)變量進(jìn)行申明。變量第16頁(yè)

變量命名規(guī)則變量名必須以字母或漢字開(kāi)頭,后可跟字母、漢字、數(shù)字或下劃線組成(不能含有小數(shù)點(diǎn)和空格),長(zhǎng)度不超出255個(gè)字符字符串;不能使用VBA中關(guān)鍵字;VBA中不區(qū)分變量名大小寫;變量名最終一個(gè)字符能夠是%、&、!、#、$等表示數(shù)據(jù)類型申明符。說(shuō)明:常量名命名規(guī)則與變量名命名規(guī)則相同第17頁(yè)8-2-2數(shù)據(jù)類型與變量申明在VBA中,數(shù)據(jù)類型用來(lái)決定變量能夠保留何種數(shù)據(jù)。VBA支持各種數(shù)據(jù)類型,為用戶編程提供了方便。參考教材P196頁(yè)表8-1VBA數(shù)據(jù)類型第18頁(yè)

VBA數(shù)據(jù)類型數(shù)據(jù)類型類型申明符存放空間取值范圍整型(Integer)%2-32768~32767長(zhǎng)整型(Long)&4-2147483648~2147483647單精度浮點(diǎn)型(Single)!4負(fù)數(shù):-3.402823E38~-1.401298E-45正數(shù):1.401298E-45~3.402823E38雙精度浮點(diǎn)型(Double)#8負(fù)數(shù):-1.79769313486232E308~-4.94065645841247E-324正數(shù):4.94065645841247E-324~1.79769313486232E308貨幣型(Currency)@8-922337203685477.5808~922337203685477.5807日期型(Date)811月1日~9999年12月31日字符型(String)$0字符~65400個(gè)字符字節(jié)型(Byte)10~255邏輯型(Boolean)2True或False對(duì)象型(Object)4任何引用對(duì)象變體型(Variant)第19頁(yè)變量申明用Dim|Static語(yǔ)句顯式申明局部變量格式:Dim變量名[AS類型]或Dim變量名類型符語(yǔ)句中“As類型”子句是可選。假如使用該子句,就能夠定義變量數(shù)據(jù)類型。未使用,默認(rèn)變量類型為變體型(Variant)。比如:DimiAsinteger,s表示申明了一個(gè)名為i整型變量和一個(gè)名為s變體型變量。第20頁(yè)關(guān)鍵字Dim或Static區(qū)分:Dim申明:隨過(guò)程調(diào)用而分配存貯單元,每次調(diào)用都對(duì)變量初始化;過(guò)程體結(jié)束,變量?jī)?nèi)容自動(dòng)消失,存放單元釋放。Static申明:Static申明變量,也稱為靜態(tài)變量。靜態(tài)變量在程序運(yùn)行過(guò)程中一直保留其值,即每次調(diào)用過(guò)程,變量保持原來(lái)值。

第21頁(yè)隱式申明變量

未進(jìn)行上述申明而直接使用變量,稱變量隱式申明。采取隱式申明變量都是變體型(Variant)。

注意:

VBA中允許不事先申明而直接使用變量,能夠經(jīng)過(guò)語(yǔ)句

OptionExplicit,來(lái)要求所使用變量必須事先申明,不然VBA會(huì)發(fā)出警告信息。第22頁(yè)下面是一個(gè)簡(jiǎn)單程序,其使用變量a,b,Sum都沒(méi)有事先定義。PrivateSubForm_Click()

Sum=0

a=10

b=20Sum=a+bPrint"Sum=";SumEndSub

良好編程習(xí)慣應(yīng)該是“先申明變量,后使用變量”,這么做能夠提升程序效率,同時(shí)也使程序易于調(diào)試。VBA中能夠強(qiáng)制顯式申明,能夠在窗體模塊、標(biāo)準(zhǔn)模塊和類模塊通用申明段中加入語(yǔ)句:OptionExplicit第23頁(yè)申明而未賦值變量值為:數(shù)值型變量初始化為0;字符型變量為零長(zhǎng)度字符串;變體型變量初始化為Empty。

變量初始化第24頁(yè)8-2-3運(yùn)算符和表示式(教材P199頁(yè))運(yùn)算符算術(shù)運(yùn)算符第25頁(yè)比如:"123"+"456"結(jié)果"123456"

"123"&"456"結(jié)果"123456"

使用上&與+區(qū)分:比如:"abcdef"&12345結(jié)果為"abcdef12345"

"123"&456結(jié)果為"123456"

"abcdef"+12345結(jié)果為犯錯(cuò)"123"+456結(jié)果為579

連接運(yùn)算符:

&、+(字符串連接)第26頁(yè)

將兩個(gè)操作數(shù)進(jìn)行大小比較,結(jié)果為邏輯值。

注意:字符串比較,則按字符ASCII碼值從左到右一一比較,直到出現(xiàn)不一樣字符為止。關(guān)系運(yùn)算符第27頁(yè)將操作數(shù)進(jìn)行邏輯運(yùn)算,結(jié)果是邏輯值邏輯運(yùn)算符第28頁(yè)組成

由變量、常量、函數(shù)等運(yùn)算對(duì)象加上運(yùn)算符、圓括號(hào)組成式子。書寫規(guī)則

(1)運(yùn)算符不能相鄰。例a+-b是錯(cuò)誤。(2)乘號(hào)不能省略。例x乘以y應(yīng)寫成:x*y。(3)括號(hào)必須成對(duì)出現(xiàn),均使用圓括號(hào)。(4)表示式從左到右在同一基準(zhǔn)上書寫,無(wú)高低。運(yùn)算優(yōu)先級(jí)

算術(shù)運(yùn)算符>連接運(yùn)算符>關(guān)系運(yùn)算符>邏輯運(yùn)算表示式第29頁(yè)例1:用人單位招聘秘書:年紀(jì)小于40歲女性,學(xué)歷??苹虮究?,年紀(jì)<40,性別=“女”,(學(xué)歷=“??啤?,學(xué)歷=“本科”)

AndAndOr例2:算術(shù)表示式:正確VBA表示式:3〈=xAndx<=7

錯(cuò)誤VBA表示式:3<=x<=7或3<=xOrx<=7

考慮:若分別寫成:年紀(jì)<40And性別="女"And(學(xué)歷="???And學(xué)歷="本科")年紀(jì)<40Or性別="女"Or(學(xué)歷="???Or學(xué)歷="本科")第30頁(yè)

函數(shù)實(shí)際上是系統(tǒng)事先定義好內(nèi)部程序,用來(lái)完成特定功效。VBA提供了大量?jī)?nèi)部函數(shù),供用戶在編程時(shí)使用。

函數(shù)調(diào)用形式為:函數(shù)名(參數(shù)表)慣用內(nèi)部函數(shù)

參考教材P201頁(yè)表8-5慣用內(nèi)部函數(shù),在馬上窗口練習(xí),體會(huì)函數(shù)功效。8-2-4慣用函數(shù)第31頁(yè)InputBox函數(shù)InputBox(提醒[,標(biāo)題][,缺省])

其中:提醒:提醒信息;標(biāo)題:對(duì)話框標(biāo)題;缺?。狠斎?yún)^(qū)缺省值。

注意:函數(shù)返回值為字符型數(shù)據(jù)。輸入、輸出函數(shù)第32頁(yè)使用MsgBox,能夠在對(duì)話框中顯示文本信息。格式為:MsgBox(提醒信息[,按鈕數(shù)目和類型][,標(biāo)題])MsgBox函數(shù)或方法(用于顯示輸出信息)MsgBox函數(shù):變量[%]=MsgBox(提醒[,按鈕][,標(biāo)題])MsgBox方法:MsgBox提醒[,按鈕][,標(biāo)題]第33頁(yè)8-3VBA慣用語(yǔ)句

VBA代碼不區(qū)分字母大小寫

系統(tǒng)保留字自動(dòng)轉(zhuǎn)換每個(gè)單詞首字母大寫;

語(yǔ)句書寫自由

一行可書寫幾句語(yǔ)句,之間用冒號(hào)(:)分隔;一句語(yǔ)句可分若干行書寫,用續(xù)行符將語(yǔ)句分開(kāi)。8-3-1VBA語(yǔ)句書寫規(guī)則第34頁(yè)賦值語(yǔ)句:給變量、常量或?qū)ο髮傩灾付ㄒ粋€(gè)值或表示式。8-3-2VBA慣用語(yǔ)句

格式:[LET]變量名=表示式

作用:將表示式值賦值給變量名。普通用于給變量賦值或?qū)丶O(shè)定屬性值。比如:s=10Text1.Text="歡迎使用VBA"注意:即使賦值號(hào)與關(guān)系運(yùn)算符等于號(hào)都用“=”表示,VBA會(huì)依據(jù)所處位置自動(dòng)判斷是何種意義符號(hào)第35頁(yè)申明語(yǔ)句:命名和定義常量、變量、數(shù)組以及過(guò)程。注釋語(yǔ)句在程序中適當(dāng)位置加上注釋語(yǔ)句有利于程序維護(hù)和閱讀。

格式:Rem注釋內(nèi)容 或用單引號(hào)’注釋內(nèi)容第36頁(yè)結(jié)構(gòu)化程序設(shè)計(jì)由次序、分支、循環(huán)這3種基本結(jié)構(gòu)所組成。語(yǔ)句組2語(yǔ)句組1TF語(yǔ)句組2條件語(yǔ)句組1

8-4VBA程序流程控制FT條件語(yǔ)句組TF條件語(yǔ)句組第37頁(yè)單行If語(yǔ)句格式:If表示式Then語(yǔ)句1[Else語(yǔ)句2]功效:If測(cè)試指定條件,假如條件表示式為真(True),則執(zhí)行Then后面語(yǔ)句1,不然執(zhí)行語(yǔ)句2(若Else子句未省略)。分支結(jié)構(gòu)TF語(yǔ)句2條件語(yǔ)句1TF條件語(yǔ)句1第38頁(yè)P(yáng)rivateSubp1()DimxAsInteger,yAsIntegerx=InputBox("請(qǐng)輸入x值")

Ifx>=0Theny=2*x+1MsgBox"y:"&yEndSubPrivateSubp1()DimxAsInteger,yAsIntegerx=InputBox(“請(qǐng)輸入x值”)

Ifx>=0Theny=2*x+1Elsey=1MsgBox"y:"&yEndSub依據(jù)輸入x值,觀察y輸出結(jié)果第39頁(yè)多行If語(yǔ)句格式:If表示式Then語(yǔ)句組1[Else語(yǔ)句組2]EndIf第40頁(yè)多行If語(yǔ)句執(zhí)行過(guò)程是:假如“表示式”值為真,則執(zhí)行語(yǔ)句組1;不然執(zhí)行語(yǔ)句組2。當(dāng)執(zhí)行完語(yǔ)句組1或語(yǔ)句組2后,程序流程跳轉(zhuǎn)到語(yǔ)句EndIf后面。語(yǔ)句組能夠由一條或多條語(yǔ)句組成,語(yǔ)句組不能與Then書寫在同一行,不然VBA認(rèn)為是一個(gè)單行If語(yǔ)句,會(huì)造成Else沒(méi)有匹配If。語(yǔ)句“EndIf”是多行If語(yǔ)句結(jié)束標(biāo)志。在多行If語(yǔ)句中,即使省略Else子句,也要寫該結(jié)束標(biāo)志。省略Else子句時(shí)多行If語(yǔ)句形式為:If表示式Then語(yǔ)句組 EndIf第41頁(yè)

例:計(jì)算分段函數(shù)單行If語(yǔ)句實(shí)現(xiàn):

Ifx=0Theny=cos(x)-x^3+3*xIfx<>0Theny=sin(x)+sqr(x*x+1)

多行If語(yǔ)句實(shí)現(xiàn):Ifx<>0Theny=sin(x)+sqr(x*x+1)Elsey=cos(x)-x^3+3*xEndIf第42頁(yè)If語(yǔ)句嵌套If語(yǔ)句嵌套是指If或Else后面語(yǔ)句塊中又包含If語(yǔ)句。

If<表示式1>Then

If<表示式11>Then…EndIf

EndIf第43頁(yè)

例:已知x,y,z三個(gè)數(shù),使得x>y>z

用一個(gè)IF語(yǔ)句和一個(gè)嵌套IF語(yǔ)句實(shí)現(xiàn)Ifx<yThent=x:x=y:y=t

Ify<zThent=y:y=z:z=t

Ifx<yThent=x:x=y:y=tEndIf

EndIfIf語(yǔ)句嵌套注意事項(xiàng):書寫鋸齒型;If與EndIf配對(duì)第44頁(yè)If…Then…ElseIf語(yǔ)句(多分支結(jié)構(gòu))

If<表示式1>Then <語(yǔ)句塊1>ElseIf<表示式2>Then <語(yǔ)句塊2> … [Else語(yǔ)句塊n+1]

EndIf第45頁(yè)不論有幾個(gè)分支,依次判斷,當(dāng)某條件滿足,執(zhí)行對(duì)應(yīng)語(yǔ)句,其余分支不再執(zhí)行;若條件都不滿足,且有Else子句,則執(zhí)行該語(yǔ)句塊,不然什么也不執(zhí)行。ElseIf不能寫成ElseIf。說(shuō)明:第46頁(yè)例:已知百分制成績(jī)mark,顯示對(duì)應(yīng)五級(jí)制成績(jī)以下三種方法哪些正確,哪些錯(cuò)誤?第47頁(yè)<表示式列表>:與<變量或表示式>同類型下面四種形式之一:

表示式

例:"A"

一組枚舉表示式(用逗號(hào)分隔)

2,4,6,8

表示式1To表示式2

60To100

Is關(guān)系運(yùn)算符表示式

Is<60SelectCase語(yǔ)句(情況語(yǔ)句)語(yǔ)句格式:

SelectCase變量或表示式 Case表示式列表1 語(yǔ)句塊1 Case表示式列表2 語(yǔ)句塊2 …

[CaseElse 語(yǔ)句塊n+1]

EndSelect數(shù)值型或字符串表示式第48頁(yè)程序流程圖語(yǔ)句塊n+1語(yǔ)句塊1語(yǔ)句塊2語(yǔ)句塊n條件2TF…...條件nTF條件1TF第49頁(yè)例:變量strC中存放了一個(gè)字符,判斷該字符類型。用多分支結(jié)構(gòu)實(shí)現(xiàn):

IfUcase(strC)>="A"AndUcase(strC)<="Z"Then PrintstrC+"是字母字符"ElseIfstrC>="0"AndstrC<="9"Then PrintstrC+"是數(shù)字字符"Else PrintstrC+"其它字符"EndIf用SelectCase語(yǔ)句實(shí)現(xiàn):

SelectCasestrC Case"a"To"z","A"To"Z" PrintstrC+"是字母字符" Case"0"To"9" PrintstrC+"是數(shù)字字符" CaseElse PrintstrC+"其它字符"EndSelect第50頁(yè)比如:在輸入成績(jī)文本框中輸入一個(gè)分?jǐn)?shù),單擊“判斷”命令按鈕后,在成績(jī)等級(jí)文本框中顯示對(duì)應(yīng)成績(jī)等級(jí)。輸入成績(jī)?cè)?0~100分為A,80~89分為B,70~79分為C,60~69分為D,0~59分為E,不然顯示犯錯(cuò)信息。

編程點(diǎn)撥:依據(jù)題意,當(dāng)輸入成績(jī)不在[0,100]內(nèi)時(shí),應(yīng)顯示犯錯(cuò)信息,在該范圍內(nèi)時(shí),應(yīng)進(jìn)行分等級(jí)。判斷是否為正當(dāng)成績(jī)可用If語(yǔ)句,而分等級(jí)最好使用SelectCase語(yǔ)句。

第51頁(yè)條件函數(shù)

IIf函數(shù)形式為:

IIf(表示式,當(dāng)表示式為True時(shí)值,當(dāng)表示式為False時(shí)值)

比如:求x,y中大數(shù),放入max變量中。 max=IIf(x>y,x,y)

第52頁(yè)循環(huán)結(jié)構(gòu)(參考教材P211頁(yè))For…Next循環(huán)Do…Loop循環(huán)第53頁(yè)For…Next循環(huán)結(jié)構(gòu):將一段程序重復(fù)執(zhí)行指定次數(shù),其中使用一個(gè)計(jì)數(shù)變量,統(tǒng)計(jì)執(zhí)行次數(shù)。格式:

For循環(huán)變量=初值to終值[Step步長(zhǎng)]語(yǔ)句塊 [ExitFor] 語(yǔ)句塊Next[循環(huán)變量]For…Next循環(huán)語(yǔ)句P211循環(huán)體第54頁(yè)

循環(huán)變量

<=終值

語(yǔ)句塊

ExitFor

語(yǔ)句塊

循環(huán)變量加步長(zhǎng)

T

F

循環(huán)變量得初值

第55頁(yè)功效:執(zhí)行For語(yǔ)句時(shí),“循環(huán)變量”設(shè)為“初值”;執(zhí)行到Next語(yǔ)句時(shí),步長(zhǎng)加(減)到循環(huán)變量上;再執(zhí)行For語(yǔ)句時(shí),若“循環(huán)變量”超出“終值”則循環(huán)結(jié)束。步長(zhǎng):未指定值時(shí)默認(rèn)為1。若“步長(zhǎng)”是正數(shù)或0,則“初值”應(yīng)大于等于“終值”,不然,“初值”應(yīng)小于等于“終值”。第56頁(yè)例:計(jì)算累加程序S=1+2+3+4….+x,并輸出結(jié)果。方法:接收一個(gè)累加終值,確定一個(gè)循環(huán)變量,循環(huán)變量有2個(gè)作用(加數(shù)和循環(huán)變量),確定一個(gè)存放累加和變量。使用循環(huán)計(jì)算,最終輸出顯示結(jié)果。

DimsAsinteger,xAsintegerx=InputBox("請(qǐng)輸入累加終值")Forx=lToxs=s+xNext思索:計(jì)算=1+3+5+7…X或2+4+6+8…X怎樣編寫?第57頁(yè)例:計(jì)算累乘程序S=1*2*3*4…X方法:接收一個(gè)累乘終值,確定一個(gè)循環(huán)變量,循環(huán)變量有2個(gè)作用(乘數(shù)和循環(huán)變量),確定一個(gè)存放累乘積變量。使用循環(huán)計(jì)算,最終輸出顯示結(jié)果。

DimSAsinteger,iAsintegerx=InputBox("請(qǐng)輸入累加終值")S=1Fori=lToxS=S*iNext注意:累乘乘數(shù)和乘積變量初值為1。第58頁(yè)注意:出了循環(huán),循環(huán)控制變量值問(wèn)題。例程序段:

Fori=2To13Step3循環(huán)執(zhí)行次數(shù)

debug.Printi 輸出i值分別為:25811Nextidebug.Printi出了循環(huán)輸出為:i=14第59頁(yè)例:改變循環(huán)控制變量對(duì)循環(huán)影響PrivateSubCommand1_Click()j=0Fori=1To20Step2

i=i+3j=j+1Print"第";j;"次循環(huán)i=";iNextiPrint"退出循環(huán)后i=";iEndSub正常情況:i=1,3,5,7,9,11,13,15,17,19現(xiàn)在:i=4,9,14,19第60頁(yè)Do…Loop循環(huán)語(yǔ)句(用于控制循環(huán)次數(shù)未知)形式1:

Do{While|Until}<條件>語(yǔ)句塊[ExitDo語(yǔ)句塊]Loop

形式2:

Do

語(yǔ)句塊 [ExitDo 語(yǔ)句塊] Loop{While|Until}<條件>第61頁(yè)Do…Loop語(yǔ)句(循環(huán)結(jié)構(gòu))DoWhile…Loop語(yǔ)句DoUntil…Loop語(yǔ)句Do…LoopWhile語(yǔ)句Do…LoopUntil語(yǔ)句第62頁(yè)

DoWhile…Loop語(yǔ)句

i=1DoWhilei<=10s=s+ii=i+1Loop

當(dāng)i<=10成立時(shí),執(zhí)行循環(huán)體循環(huán)變量i必須有初值預(yù)防產(chǎn)生死循環(huán)有可能一次也不執(zhí)行循環(huán)體修改循環(huán)控制變量,改變加數(shù)值第63頁(yè)Do…LoopWhile

i=1Dos=s+ii=i+1LoopWhilei<=10當(dāng)i<=10成立時(shí),執(zhí)行循環(huán)體循環(huán)變量i必須有初值預(yù)防產(chǎn)生死循環(huán)最少執(zhí)行一次循環(huán)體修改循環(huán)控制變量,改變加數(shù)值第64頁(yè)DoUntil…Loop

i=1DoUntili>10s=s+ii=i+1Loop

當(dāng)i>10成立時(shí),結(jié)束執(zhí)行循環(huán)體循環(huán)變量i必須有初值預(yù)防產(chǎn)生死循環(huán)有可能一次也不執(zhí)行循環(huán)體修改循環(huán)控制變量,改變加數(shù)值第65頁(yè)Do…LoopUntil

i=1Dos=s+ii=i+1LoopUntili>10當(dāng)i>10成立時(shí),結(jié)束執(zhí)行循環(huán)體循環(huán)變量i必須有初值預(yù)防產(chǎn)生死循環(huán)最少執(zhí)行一次循環(huán)體修改循環(huán)控制變量,改變加數(shù)值第66頁(yè)補(bǔ)充:While…Wend語(yǔ)句格式以下: While<條件> <循環(huán)塊> Wend說(shuō)明:該語(yǔ)句功效與DoWhile<條件>….Loop實(shí)現(xiàn)循環(huán)完全相同。第67頁(yè)三種循環(huán)語(yǔ)句:即For、Do—Loop,共同特點(diǎn)是重復(fù)執(zhí)行一個(gè)語(yǔ)句系列(循環(huán)體),不一樣點(diǎn)是控制重復(fù)次數(shù)時(shí)機(jī)和方法不一樣。參考教材P206-P214頁(yè)實(shí)例,掌握程序控制結(jié)構(gòu)。第68頁(yè)

數(shù)組:數(shù)組不是一個(gè)數(shù)據(jù)類型,而是一組相同類型變量集合。能夠像使用普通變量一樣使用數(shù)組中每一個(gè)元素。使用數(shù)組好處是用一個(gè)數(shù)組名代表邏輯上相關(guān)一批數(shù)據(jù),用下標(biāo)表示該數(shù)組中各個(gè)元素,能夠提升處理數(shù)據(jù)效率,縮短和簡(jiǎn)化程序。8-5數(shù)組第69頁(yè)

數(shù)組不是一個(gè)數(shù)據(jù)類型,而是一組相同類型變量集合,數(shù)組必須先申明后使用。

兩類數(shù)組:靜態(tài)(定長(zhǎng))數(shù)組、動(dòng)態(tài)(可變長(zhǎng))數(shù)組

1.一維數(shù)組

定義一維數(shù)組形式:

Dim數(shù)組名([下界To]上界)[As類型]

申明了數(shù)組名、維數(shù)、大小、類型8-5-1數(shù)組定義第70頁(yè)說(shuō)明:數(shù)組名命名規(guī)則與變量命名相同。數(shù)組元素個(gè)數(shù):上界-下界+1。缺省<下界>為0,若希望下標(biāo)從1開(kāi)始,可在模塊通用部分使用OptionBase語(yǔ)句將設(shè)為1。其使用格式是:

OptionBase0|1

'后面參數(shù)只能取0或1比如:OptionBase1'將數(shù)組申明中缺省<下界>下標(biāo)設(shè)為1下界>和<上界>不能使用變量,必須是常量,常量能夠是直接常量、符號(hào)常量,普通是整型常量。第71頁(yè)假如省略As子句,則數(shù)組類型為變體類型。

數(shù)組中各元素在內(nèi)存占一片連續(xù)存放空間,一維數(shù)組在內(nèi)存中存放次序是按下標(biāo)大小次序。例:Dimmark(1to100)AsInteger例:Dima(-1to3)AsInteger申明一維數(shù)組a,包含了5個(gè)整型元素a(-1)、a(0)、a(1)、a(2)、a(3);第72頁(yè)在定義靜態(tài)數(shù)組時(shí),每一維元素個(gè)數(shù)必須是常數(shù),不能是變量或表示式。

如:錯(cuò)誤申明,下標(biāo)是變量Dimx(n)或:n=Inputbox(“輸入n”)Dimx(n)AsSingle注意:第73頁(yè)在數(shù)組申明中下標(biāo)說(shuō)明了數(shù)組整體,即每維大??;而在程序其它地方出現(xiàn)下標(biāo)表示數(shù)組中一個(gè)元素。二者寫法形式相同,但意義不一樣。比如:Dimx(10)AsInteger

x(10)=100

表示申明了數(shù)組x,有11個(gè)數(shù)組元素對(duì)x(10)這個(gè)數(shù)組元素賦值第74頁(yè)定義二維數(shù)組形式:Dim數(shù)組名([下界1To]上界1,下界2To]上界2)As類型比如:Dima(2,3)AsSingle

二維數(shù)組在內(nèi)存存放次序是“先行后列”。數(shù)組a各元素在內(nèi)存中存放次序是: a(0,0)→a(0,1)→a(0,2)→a(0,3) a(1,0)→a(1,1)→a(1,2)→a(1,3) a(2,0)→a(2,1)→a(2,2)→a(2,3)

2.二維數(shù)組第75頁(yè)例:DimlArray(0To3,0To4)AsLong共有4×5個(gè)元素等價(jià)于:DimlArray(3,4)AsLong

第76頁(yè)

動(dòng)態(tài)數(shù)組指在申明數(shù)組時(shí)未給出數(shù)組大小(省略括號(hào)中下標(biāo)),當(dāng)要使用它時(shí),隨時(shí)用ReDim語(yǔ)句重新指出數(shù)組大小。形式以下:

ReDim數(shù)組名(下標(biāo)[,下標(biāo)2…])[As類型]

例:Private

SubS1()

Dimx()AsSingle …

n=Inputbox(“輸入n”)

ReDimx(n)…

EndSub3.動(dòng)態(tài)數(shù)組第77頁(yè)說(shuō)明:

Dim、Static、Public申明語(yǔ)句是說(shuō)明性語(yǔ)句,可出現(xiàn)在過(guò)程內(nèi)或通用申明段;ReDim語(yǔ)句是執(zhí)行語(yǔ)句,只能出現(xiàn)在過(guò)程內(nèi);在過(guò)程中可屢次使用ReDim來(lái)改變數(shù)組元素個(gè)數(shù)ReDim中下標(biāo)能夠是常量,也能夠是有了確定值變量。如:n=InputBox(“輸入n值”) ReDimArr(n)

靜態(tài)數(shù)組在程序編譯時(shí)分配存放單元,動(dòng)態(tài)數(shù)組在運(yùn)行時(shí)分配存放單元。第78頁(yè)一維數(shù)組元素引用使用形式:數(shù)組名(下標(biāo))其中:下標(biāo)能夠是常量、整型變量或表示式。比如:設(shè)有下面數(shù)組A(10)、B(10)AsInteger

則下面語(yǔ)句都是正確。A(1)=B(2)+B(1)+5'取數(shù)組元素運(yùn)算A(i)=B(i)'下標(biāo)使用變量A(i+2)=B(i+1) '下標(biāo)使用表示式注意:引用數(shù)組時(shí)不能下標(biāo)越界8-5-2數(shù)組基本操作1.數(shù)組元素引用第79頁(yè)引用二維數(shù)組形式:數(shù)組名([下標(biāo)1,下標(biāo)2)

下標(biāo)1指定元素在二維表中所在行,下標(biāo)2指定元素在二維表中所在列。比如:a(1,2)=10a(i+2,j)=a(2,3)*2

在程序中經(jīng)常經(jīng)過(guò)二重循環(huán)來(lái)操作使用二維數(shù)組元素。

第80頁(yè)數(shù)組引用實(shí)例:第81頁(yè)經(jīng)過(guò)循環(huán)給數(shù)組元素初值

Fori=1To10'A數(shù)組每個(gè)元素值為1 A(i)=1Next

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論