版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第8章
模塊
本章內容提要第1講模塊與VBA基礎知識
1第2講VBA程序設計2第3講面向對象程序設計及VBA程序調試3第三講面向對象程序設計及VBA程序調試本講主要教學內容12面向對象編程基礎
過程調用與參數傳遞小結3學習目標1
掌握VBA程序過程調用與參數傳遞的形式及概念。2
掌握VBA程序的面向對象程序設計的概念及相關應用基礎知識。3
掌握VBA程序調試的基本使用方法和技巧。重點與難點
VBA程序過程調用、參數傳遞、面向對象編程常識是本講的重點。參數傳遞、面向對象編程概念是本講的難點。引言
VBA是一種面向對象的語言,因此進行VBA的開發,必須了解面向對象程序設計的一些基本知識。程序調試是查找和解決VBA程序代碼錯誤的過程。
本講將學習VBA程序過程調用與參數傳遞、面向對象編程基礎及程序調試等內容。1、Sub子過程
在VBA中,的Sub子過程分為:事件過程和通用過程。事件過程綁定在事件上,在Access中,不同的對象可觸發不同的事件。但總體來說,Access中的事件主要有鍵盤事件、鼠標事件、對象事件、窗口事件和操作事件等。(2)控件事件的語法
PrivateSub控件名_事件名(參數列表)<語句組>
EndSub(1)窗體事件的語法
PrivateSubForm_事件名(參數列表)<語句組>
EndSub
8.3VBA程序設計
8.3.2過程調用與參數傳遞[Public|Private][Static]Sub子過程名([形參表])<局部變量或常數定義>
<語句組>
[ExitSub]
<語句組>
EndSub
說明:
(1)子過程名:命名規則與變量名規則相同。子過程名不返回值,而是通過形參與實參的傳遞得到結果,調用時可返回多個值。(2)形式參數列表:形式參數通常簡稱“形參”,僅表示形參的類型、個數、位置,定義時是無值的,只有在過程被調用時,虛實參結合后才獲得相應的值。
(3)通用過程子過程的定義形式如下:
8.3VBA程序設計
(3)過程可以無形式參數,但括號不能省。
(4)參數的定義形式:
[ByVal|ByRef]變量名[()][As類型][,…],
ByVal表示當該過程被調用時,參數是按值傳遞的;ByRef(缺省)表示當該過程被調用時,參數是按地址傳遞的。例如:一個交換兩個整型變量值的子過程。
PrivateSubSwap(XAsInteger,YAsInteger)
DimtempAsInteger
Temp=X:X=Y:Y=TempEndSub
8.3VBA程序設計
2、Function過程[Public|Private][Static]Function函數名([<參數列表>])[As<類型>]<局部變量或常數定義><語句塊>
函數體[函數名=返回值]
[ExitFunction]<語句塊>[函數名=返回值]EndFunction注意:在函數體內,函數名可以當變量使用,函數的返回值就是通過對函數名的賦值語句來實現的,在函數過程中至少要對函數名賦值一次。
8.3VBA程序設計
3、過程的調用子過程的調用:
子過程名
[參數列表]
或:
Call子過程名(參數列表)函數過程的調用:
變量名
=函數過程名([參數列表])說明:
(1)參數列表稱為實參或實元,它必須與形參保持個數相同,位置與類型一一對應。(2)調用時把實參值傳遞給對應的形參。其中值傳遞時實參的值不隨形參的值變化而改變(形變實不變)。而地址傳遞時實參的值隨形參值的改變而改變(形變實也變)。
8.3VBA程序設計
(3)當參數是數組時,形參與實參在參數聲明時應省略其維數,但括號不能省。
(4)調用子過程的形式有兩種,用Call關鍵字時,實參必須加圓括號括起,反之則實參之間用“,”分隔。例如:調用上面定義的Sawp子過程的形式:
Swapa,bCallSwap(a,b)注意:形式參數是指在定義通用過程時,出現在Sub或Function語句中的變量名后面園括號內的數,用來接收傳送給子過程的數據,形參表中的各個變量之間用逗號分隔。
8.3VBA程序設計
PrivateSubCmdOK()……
CallSwap(a,b)……
Swapa,bEndSubPrivateSubSwap(x%,y%)
Dimtemp%Temp=XX=YY=TempEndSub
4、過程調用的執行過程:
8.3VBA程序設計
5、過程之間參數的傳遞⑴形式參數
是指在定義通用過程時,出現在Sub或Function語句中的變量名后面園括號內的數,是用來接收傳送給子過程的數據,形參表中的各個變量之間用逗號分隔。
⑵實際參數實際參數是指在調用Sub或Function過程時,寫入子過程名或函數名后括號內的參數,其作用是將它們的數據(數值或地址)傳送給Sub或Function過程與其對應的形參變量。實參可由常量、表達式、有效的變量名、數組名(后加左、右括號,如A()組成,實參表中各參數用逗號分隔。
8.3VBA程序設計
⑶參數傳遞(虛實結合)
參數傳遞指主調過程的實參(調用時已有確定值和內存地址的參數)傳遞給被調過程的形參。參數的傳遞有兩種方式:按值傳遞、按地址傳遞。形參前加“ByVal”關鍵字是按值傳遞,缺省或加“ByRef”關鍵字為按地址傳遞。⑷傳址與傳值
傳址:形參得到的是實參的地址,當形參值的改變同時也改變實參的值。(形變實也變)。
傳值:形參得到的是實參的值,形參值的改變不會影響實參的值。(形變實不變)
8.3VBA程序設計
SubSwap2(x%,y%)DimTemp%Temp=x:x=y:y=TempEndSubSubSwap1(ByValx%,ByValy%)DimTemp%Temp=x:x=y:y=TempEndSub
例如:實現參數過程調用及參數傳遞的應用實例。定義子過稱swap1定義子過稱swap2PrivateSubCmdOK_Click()a%=10:b%=20:Swap1a,b‘調用swap1傳值
Print"A1=“&a&"B1=“&ba=10:b=20:Swap2a,b‘調用swap2傳地址
Print"A2=“&a&"B2=“&bEndSub
8.3VBA程序設計
1、對象與類對象:對象是基本的運行時的實體,如窗體、報表、各種控件等,包括作用于對象的操作(方法)和對象的響應(事件)。將數據和處理這些數據的過程封裝在一起。類與對象是面向對象程序設計語言的基礎。類:一個抽象的整體概念,對象是類的實例化。
8.3VBA程序設計
8.3.3面向對象程序設計例如:“學生”→類,“張三”→對象2、屬性(Property)
屬性:所有對象都有自己的屬性。用來描述和反映對象特征的參數。如:控件名稱(Name)、標題(Caption)、顏色(Color)、字體(FontName)等屬性決定了對象展現給用戶的界面具有什么樣的外觀及功能。對象屬性設置的方法:
在設計模式下,通過屬性窗口直接設置對象的屬性。
在程序的代碼中通過賦值實現,其格式為:
對象名.屬性名=屬性值
例如:
Label10.Caption=“顯示”
8.3VBA程序設計
在VBA中引用ACCESS對象:基本語法:
Forms(或Reports)!窗體(或報表)名稱!控件名稱[.屬性名]注意要點:如果在通用模塊或在一類模塊中引用另一類模塊的控件時,應該使用上述完整語法。如果在類模塊中引用自己窗體上的控件,僅采用下面語法:
控件名稱[.屬性名]例如:在窗體Form1中引用Form2上的Label1控件:
Forms!Form2!Label1.Caption=“教師信息表”
在引用Form2上引用自己的Label1控件:
Label1.Caption=“教師信息表
8.3VBA程序設計
屬性說明Name(名稱)返回或設定對象的名字Caption(標題)返回或設定對象的標題文字Controlsource(數據源)指定控件顯示的數據源Decimalplaces(格式)指定顯示的小數位數Defaulvalue(默認值)設定控件的默認值Visible(可見性)控件或窗體、報表是否可見Scrollbars(滾動條)窗體或組合框上的滾動條Height、Width(高、寬)設定控件的大小Left、Top(左、上邊距)設定控件在窗體或報表中的位置Backstyle(背景樣式)指定控件是否透明:常規為1,透明為0Backcolor(背景顏色)指定控件或節的顏色fontName、FontSize(字體名稱、字體大小)設定字體及字體大小Enabled(控件是否可用)控件是否接受焦點和響應用戶操作Text設置或返回文本框、組合框中的文本
8.3VBA程序設計
3、事件(Event)及事件過程(EventProcedure)
事件:可被對象識別的動作。如:窗體打開OnOpen,按鈕的單擊OnClick,雙擊OnDbClick等。事件過程:是指附在該對象上的程序代碼,是事件觸發后處理的程序。事件過程的形式如下:
Sub對象名_事件過程名[(參數列表)]…..(事件過程代碼)
EndSub例如:
SubcmdOk_Click()cmdOk.FontSize=20’設置命令按鈕的字體大小為20EndSub
8.3VBA程序設計
4、方法(Method)
方法:在對象上可操作的過程,是VB系統提供的一種特殊的過程和函數方法是面向對象的,所以方法調用一般要指明對象。對象方法調用形式:[對象.]方法[參數列表]
例如:
Debug.print"歡迎您使用ACCESS"
‘在立即窗口中打印出文字
8.3VBA程序設計
程序調試是查找和解決VBA程序代碼錯誤的過程。當程序代碼執行時,會產生開發錯誤與運行時錯誤2種類型的錯誤。開發錯誤是語法錯誤和邏輯錯誤。語法錯誤可能由輸入錯誤、標點丟失或是不適當地使用某些關鍵字等產生的。邏輯錯誤是指應用程序未按設計執行,或生成了無效的結果。
8.4VBA程序調試
8.4.1VBA編程規范為了避免不必要的錯誤,應該保持良好的編程風格。通常應遵循以下幾條原則:模塊化多注釋變量顯式聲明良好的命名思路少用變體類型VBE提供了“調試”菜單和“調試”工具欄,工具欄如圖所示。打開調試工具的方法是:單擊“視圖”→“工具欄”→“調試”命令,即可彈出“調試”工具欄。
8.4VBA程序調試
8.4.2VBA調試工具欄及功能
“調試”工具欄上各個按鈕的功能說明見書上如表8-6所示。1.執行代碼VBE提供了多種程序運行方式,通過不同的運行方式,可以對代碼進行各種調試工作
:
8.4VBA程序調試
8.4.3程序調試方法及技巧逐語句執行代碼
逐過程執行代碼
跳出執行代碼
運行到光標處
設置下一語句
2.暫停代碼運行VBE提供的大部分調試工具,都要在程序處于掛起狀態才能有效,這時需暫停VBA程序的運行。在這種情況下,程序仍處于執行狀態,只是暫停的正在執行的語句之間,變量和對象的屬性仍
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 船舶電工崗中復試考核試卷含答案
- 推土犁司機風險識別強化考核試卷含答案
- 磨料制造工創新實踐競賽考核試卷含答案
- 機械設備點檢員崗中風險評估與管理考核試卷含答案
- 煤氣凈化回收工崗中專業水平考核試卷含答案
- 感光材料乳劑熔化工崗中業務能力考核試卷含答案
- 2026年電機轉速精確測量技術研究
- 駕校安全管理報告講解
- 2026年腦機接口系統開發區塊鏈安全驗證
- 2026年制造業供應鏈數字化工具選型
- 增量學習算法
- 腦卒中后神經源膀胱康復訓練
- 2025首都圖書館招聘23人筆試考試參考試題及答案解析
- 尚品宅配板材介紹
- 污廢水處理工職業培訓考試題庫(附答案)
- 鋼結構施工安全風險管控措施
- 采煤塌陷知識培訓總結課件
- 2025山東水發集團有限公司招聘(216人)筆試歷年參考題庫附帶答案詳解
- GJB國家軍用標準目錄
- 供電段管理辦法
- 紅星照耀中國周恩課件
評論
0/150
提交評論