




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 VBA (Visual Basic for Application) 是MicrosoftOffice系列軟件的內(nèi)置編程語言,其語法結構與VisualBasic編程語言互相兼容,采用的是面向?qū)ο蟮木幊虣C制和可視化的編程環(huán)境。1.集合和對象 VBA中的應用程序是由許多對象組成的,如表、窗體、查詢等。對象是幫助構造應用程序的元素,以特定的方式組織這些對象,就形成了應用程序 。2.對象的屬性、事件和方法 屬性 屬性描述了對象的自身性 質(zhì) 其格式為: 對象名.屬性=屬性值事件 事件是指可以發(fā)生在一個對象上且能夠被該對象所識別的動作。 如:單擊某個命令按鈕就產(chǎn)生該按鈕的“單擊”事件當某個對象發(fā)生某一事
2、件后,就會驅(qū)動系統(tǒng)去執(zhí)行預先編好的、與這一事件相對應的一段程序。 方法 方法是系 統(tǒng)事先設計好的,可以完成一定操作的特殊過程,是附屬于對象的行為和動作。在需要使用的時候可以直接調(diào)用。其格式為:對象名.方法名對 象 名含 義Application代表整個Excel應用程序Window代表窗口Worksheet代表一個工作表Sheets指定的或活動工作薄中所有工作表的集合ShapeRange代表形狀區(qū)域,它是文檔中的一組形狀PivotTable代表工作表上的 數(shù)據(jù)透視圖Workbook代表一個Excel工作薄Shape代表繪圖層中的對象,例如自選圖形Range代表某一單元格、某一行、某一列、某一區(qū)
3、域Name代表單元格區(qū)域的自定義名Chart代表工作薄中的圖表FileDialog提示文件對話框,功能和應用程序中標準“打開”和“保存”對話框類似CommandBarPopup代表命令欄上的一個彈出式控件CommandBar代表容器應用程序中的一個命令欄VBA 中的程序與函數(shù)共有種: 一般程序(Sub)、事件程序(Event)、 屬性程序(Property)和函數(shù)(Function)VBA程序窗口共種: 代碼窗口、立即窗口、本地窗口、 監(jiān)視窗口、工程資源管理器和屬性窗口在VBE環(huán)境中編寫VBA代碼工程窗口選擇對象屬性窗口選擇對象的屬性代碼窗口選擇事件MicrosoftExcel插入模塊運行子過
4、程/用戶窗體設計模式中斷重新設計工程資源管理器 對象瀏覽器屬性窗口 新建一個窗體并添加兩個命令按鈕,運行窗體后,單擊第一個按鈕,顯示一個消息框;單擊第二個按鈕,退出當前窗體 通過此例,體會可視化編程、面向?qū)ο?、事件過程、應用方法等基本概念。VBA使用常量、變量來存儲值。用來保存在程序運行期間數(shù)據(jù)。常量:在程序運行中其存儲的值不會改變。變量:在程序運行中其值可以改變。在程序運行過程中,其值不會被改變的量稱為常量。在VBA中有三類常量:1.直接常量 如:10,20%,123.0,“AB”,“VBA程序設計”等2.符號常量3.系統(tǒng)常量 指VBA系統(tǒng)預先定義好的,用戶可以直接引用的量。 如:acFor
5、m,acQuery,vbOk,vbRed 在程序中,某個常量多次被使用,則可以使用一個符號來代替該常量,這樣不僅在書寫上方便,而且有效地改進了程序的可讀性和可維護性。 VBA中使用關鍵字Const 聲明符號常量。其格式如下: Const 常量名 類型符號=常數(shù)表達式如: Const PI#= 3.1415926 變量是內(nèi)存中的臨時單元,存放在程序執(zhí)行過程中產(chǎn)生的中間結果和最后輸出結果。 在程序中使用變量,就要給變量定義名稱及類型,即對變量進行聲明。1.變量名必須以字母或漢字開頭,后可跟字母、漢字、 數(shù)字或下劃線組成(不能含有小數(shù)點和空格),長度 不超過255個字符的字符串;2.不能使用VBA中
6、的關鍵字;3.VBA中不區(qū)分變量名的大小寫;4.變量名的最后一個字符可以是%、&、!、#、$等表示 數(shù)據(jù)類型的聲明符。說明:常量名的命名規(guī)則與變量名的命名規(guī)則相同在VBA中,數(shù)據(jù)類型用來決定變量可以保存何種數(shù)據(jù)。VBA支持多種數(shù)據(jù)類型,為用戶編程提供了方便。用Dim或Static語句顯式聲明局部變量 格式:Dim 變量名 AS 類型 或 Dim 變量名類型符 語句中的“As 類型”子句是可選的。如果使用該子句,就可以定義變量的數(shù)據(jù)類型。未使用,默認變量的類型為變體型(Variant)。例如:Dim i As integer, s 表示聲明了一個名為i的整型變量和一個名為s的變體型變量。
7、Dim 聲明:隨過程的調(diào)用而分配存貯單元,每次調(diào)用都對變量初始化;過程體結束,變量的內(nèi)容自動消失,存儲單元釋放。Static 聲明:Static 聲明的變量,也稱為靜態(tài)變量。靜態(tài)變量在程序運行過程中一直保留其值,即每次調(diào)用過程,變量保持原來的值。函數(shù)函數(shù)返回類型返回類型CByteByteCBoolBooleanCIntIntegerCLngLong(長整型)CSngSingle(單精度浮點型)CDblDouble(雙精度浮點型)CCurCurrency(變比整數(shù))CDecDecimalCDateDateCStrStringCvarVariantSub abc() Dim i As Intege
8、r Dim str As String i = 10 MsgBox TypeName(i) str = CStr(i) MsgBox TypeName(str)End Sub 未進行上述的聲明而直接使用變量,稱變量的隱式聲明采用隱式聲明的變量都是變體型(Variant)注意: VBA中允許不事先聲明而直接使用變量,可以通過語句Option Explicit,來要求所使用的變量必須事先聲明,否則VBA會發(fā)出警告信息。Private Sub Form_Click() Sum = 0 a = 10 b = 20 Sum = a + b Debug.Print Sum= & SumEnd Su
9、b 良好的編程習慣應該是“先聲明變量,后使用變量”,這樣做可以提高程序的效率,同時也使程序易于調(diào)試。VBA中可以強制顯式聲明,可以在窗體模塊、標準模塊和類模塊的通用聲明段中加入語句:Option Explicit聲明而未賦值的變量的值為:n數(shù)值型變量初始化為0;n字符型變量為零長度字符串;n變體型變量初始化為 Empty; 連接運算符: 、+(字符串連接)例如:123 + 456 結果 123456 123 & 456 結果 123456 使用上 與+的區(qū)別: 例如: abcdef & 12345 結果為 abcdef12345 123 & 456 結果為 123456
10、 abcdef + 12345 結果為 出錯 123 + 456 結果為 579將兩個操作數(shù)進行大小比較,結果為邏輯值。注意:字符串比較,則按字符的ASCII碼值從左到右一一 比較,直到出現(xiàn)不同的字符為止。將操作數(shù)進行邏輯運算,結果是邏輯值例1:用人單位招聘秘書:年齡小于40歲的女性,學歷??苹虮究?正確的VBA表達式: 3=x And x =7 錯誤的VBA表達式: 3=x=7 或 3=x Or x=7 年齡40,性別=“女”,(學歷=“??啤?,學歷=“本科”) And And Or例2:算術表達式:73 x作作 用用關關 鍵鍵 字字Option Compare設置字符串比較規(guī)則StrCom
11、p比較兩個字符串StrConv字符串類型轉(zhuǎn)換Lcase、Ucase大小寫變換Space、String重復字符串Len計算字符串長度Format設置字符格式Lset、Rset重排字符串InStr、Left、Ltrim、Mid、RightRtrim、Trim處理字符串Split、Join拆分與連接字符串Option Compare Binary|Text|DatabaseOption Compare Binary:是根據(jù)字符的內(nèi)部二進制表示導出的一種排序A-Za-z漢字Option Compare Text:是根據(jù)系統(tǒng)區(qū)域確定的一種不區(qū)分大小寫的一種排序(A=a)(B=b)連接運算符關系運算符邏輯
12、運算 函數(shù)實際上是系統(tǒng)事先定義好的內(nèi)部程序,用來完成特定的功能。VBA提供了大量的內(nèi)部函數(shù),供用戶在編程時使用。 函數(shù)的調(diào)用形式為: 函數(shù)名(參數(shù)表)常用內(nèi)部函數(shù)常用內(nèi)部函數(shù),在立即窗口練習,體會函數(shù)的功能。請參照:VBA函數(shù)參考手冊 模塊是自定義的過程、函數(shù)保存的地方,也是錄制的宏保存的場所。有兩種基本類型的模塊:類模塊和標準模塊。模塊可以通過右鍵單擊工程資源管理器的工程名,選擇“插入模塊”來新建。新建的模塊缺省的名稱為“模塊1”,“模塊2”,建議在屬性窗口內(nèi)更改為有意義的名稱。模塊任務: (1)保存過程和函數(shù); (2)定義模塊內(nèi)的私有變量或整個工程的公有變量。過程是最基本的運行單位語法Pr
13、ivate | Public | Friend Static Sub name (arglist) statementsExit SubstatementsEnd Sub在以上程序中,Sub 代表過程種類,表示運行指定的操作,但不返回運行結果;Public可選的。表示所有模塊的所有其它過程都可訪問這個 Sub 過程。 如果在包含 Option Private 的模塊中使用,則這個過程在該工程外是不可使用的。Private可選的。表示只有在包含其聲明的模塊中的其它過程可以訪問該 Sub 過程。Friend可選的。只能在類模塊中使用。表示該 Sub 過程在整個工程中都是可見的,但對對象實例的控制者
14、是不可見的。Static可選的。表示在調(diào)用之間保留 Sub 過程的局部變量的值。Static 屬性對在 Sub 外聲明的變量不會產(chǎn)生影響,即使過程中也使用了這些變量。name必需的。Sub 的名稱;遵循標準的變量命名約定。arglist可選的。代表在調(diào)用時要傳遞給 Sub 過程的參數(shù)的變量列表。多個變量則用逗號隔開。statements可選的。Sub 過程中所執(zhí)行的任何語句組。函數(shù)是具有返回值的過程語法Public | Private | Friend Static Function name (arglist) As type statements name = expression Exi
15、t Function statements name = expressionEnd Function Public可選的。表示所有模塊的所有其它過程都可訪問這個 Function 過程。如果是在包含 Option Private 的模塊中使用,則這個過程在該工程外是不可使用。Private可選的。表示只有包含其聲明的模塊的其它過程可以訪問該 Function 過程。Friend可選的。只能在類模塊中使用。表示該 Function 過程在整個工程中都是可見的,但對于對象實例的控制者是不可見的。Static可選的。表示在調(diào)用之間將保留 Function 過程的局部變量值。Static 屬性對在該
16、 Function 外聲明的變量不會產(chǎn)生影響,即使過程中也使用了這些變量。name必需的。Function 的名稱;遵循標準的變量命名約定。arglist可選的。代表在調(diào)用時要傳遞給 Function 過程的參數(shù)變量列表。多個變量應用逗號隔開。type可選的。Function 過程的返回值的數(shù)據(jù)類型,可以是 Byte、 Boolean 、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(除定長)、Object、Variant或任何用戶定義類型。statements可選的。在 Function 過程中執(zhí)行的任何語句組。
17、expression可選的。Function 的返回值。v調(diào)用一個過程(Sub)時,必須鍵入過程名稱以及任何需要的參數(shù)值。Call語句可有可無,如果使用它,則參數(shù)必須以括號括起來。 v調(diào)用函數(shù)(Function)時,為了使用函數(shù)的返回值,必須指定函數(shù)給變量,并且用括號將參數(shù)封閉起來。nVBA代碼不區(qū)分字母的大小寫 系統(tǒng)保留字自動轉(zhuǎn)換每個單詞的首字母大寫;n語句書寫自由 一行可書寫幾句語句,之間用冒號(:)分隔; 一句語句可分若干行書寫,用續(xù)行符(_)將語句分開。賦值語句:給變量、常量或?qū)ο蟮膶傩灾付ㄒ粋€值或表達式。格式:變量名表達式作用:將表達式的值賦值給變量名。 一般用于給變量賦值或?qū)丶O
18、定屬性值。例如:s=10 Text1.Text 歡迎使用VBA注意:雖然賦值號與關系運算符等于號都用“=”表示,VBA會 根據(jù)所處的位置自動判斷是何種意義的符號聲明語句:命名和定義常量、變量、數(shù)組以及過程。注釋語句 在程序中的適當位置加上注釋語句有利于程序的維護和閱讀。 格式:Rem 注釋內(nèi)容 或用單引號 注釋內(nèi)容語句組語句組2語句組語句組1TF語句組語句組2條件條件語句組語句組1FT條件條件語句組語句組TF條件條件語句組語句組單行 If 語句格式:If 表達式 Then 語句1 Else 語句2功能:If 測試指定的條件,如果條件表達式為真 (True),則執(zhí)行Then 后面的語句1,否則
19、執(zhí)行語句2(若Else子句未省略)。TF語句語句2條件條件語句語句1TF條件條件語句語句1Private Sub p1( ) Dim x As Integer, y As Integer x = InputBox(“請輸入x值”) If x = 0 Then y = 2 * x + 1 Else y = 1 MsgBox y: & yEnd Sub 語句組可以由一條或多條語句組成,語句組不能與Then書寫在同一行,否則VBA認為是一個單行If語句,會導致Else沒有匹配的If。 語句“End If”是多行If語句的結束標志。在多行If語句中,即使省略Else子句,也要寫該結束標志。省略
20、Else子句時的多行If語句形式為: If 表達式 Then 語句組 End Ifyxxxxxxxsincos231030 T x yT z 為最小數(shù)T 使得 x yFFF x yzx y x 與 y 交換y z y 與 z 交換x y x 與 y 交換 If x= 90 ThenIf mark = 90 Then Print Print 優(yōu)優(yōu) ElseIf mark = 80 ThenElseIf mark = 80 Then Print Print 良良 ElseIf mark = 70 ThenElseIf mark = 70 Then Print Print 中中 ElseIf mar
21、k = 60 ThenElseIf mark = 60 Then Print Print 及格及格 ElseElse Print Print 不及格不及格 End IfEnd If方法二方法二If mark 60 ThenIf mark 60 Then Print Print 不及格不及格 ElseIf mark 70 ElseIf mark 70 ThenThen Print Print 及格及格 ElseIf mark 80 ElseIf mark 80 ThenThen Print Print 中中 ElseIf mark 90 ElseIf mark = 60 ThenIf mark
22、= 60 Then Print Print 及格及格 ElseIf mark = 70 ThenElseIf mark = 70 Then Print Print 中中 ElseIf mark = 80 ThenElseIf mark = 80 Then Print Print 良良 ElseIf mark = 90 ThenElseIf mark = 90 Then Print Print 優(yōu)優(yōu) ElseElse Print Print 不及格不及格 End IfEnd If:與同類型的下面四種形式之一: 表達式 例: A 一組枚舉表達式(用逗號分隔) 2,4,6,8 表達式1 To 表達式2 60 To 100 Is 關系運算符表達式 Is 60語
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 供電所業(yè)務合同范例
- 雙減政策下小學高年級數(shù)學課堂構建
- 生物3D打印技術應用分析
- 企業(yè)培訓顧問聘用合同范本
- 2025年湖北省安全員《C證》考試題庫
- 企業(yè)合同范本里
- 個人外包接單合同范本
- 催收公司加盟合同范本
- 借貸押金合同范本
- 2025吉林省建筑安全員B證(項目經(jīng)理)考試題庫
- 《小兒計劃免疫》課件
- 林下經(jīng)濟產(chǎn)業(yè)現(xiàn)狀及發(fā)展重點分析
- 地推推廣合作協(xié)議書
- 玄武巖纖維簡介演示
- 決策氣象服務流程
- 開展戶外探險與戶外活動課件
- 無人機法律法規(guī)與安全飛行 第2版 課件 第4章 無人機法規(guī)與安全
- 施工會議紀要15篇
- 電力變壓器安裝技術規(guī)范
- HXD3、HXD3CA型電力機車應急故障處理
- 新浪輿情通建設方案
評論
0/150
提交評論