Excel會計與財務(wù)管理-理論、方案暨模型第11章Excel財務(wù)管理系統(tǒng)的建立課件_第1頁
Excel會計與財務(wù)管理-理論、方案暨模型第11章Excel財務(wù)管理系統(tǒng)的建立課件_第2頁
Excel會計與財務(wù)管理-理論、方案暨模型第11章Excel財務(wù)管理系統(tǒng)的建立課件_第3頁
Excel會計與財務(wù)管理-理論、方案暨模型第11章Excel財務(wù)管理系統(tǒng)的建立課件_第4頁
Excel會計與財務(wù)管理-理論、方案暨模型第11章Excel財務(wù)管理系統(tǒng)的建立課件_第5頁
已閱讀5頁,還剩123頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第11章Excel財務(wù)管理系統(tǒng)的建立本章主要內(nèi)容:

11.1宏和VBA

11.2財務(wù)管理模型用戶界面的設(shè)計

11.3財務(wù)管理系統(tǒng)菜單的設(shè)計

11.4控制應(yīng)用系統(tǒng)自動啟動的方法第11章Excel財務(wù)管理系統(tǒng)的建立本章主要內(nèi)容:本章目標(biāo):本章目標(biāo):VBAVBA是基于VisualBasicforWindows發(fā)展而來的新一代標(biāo)準(zhǔn)宏語言,提供了面向?qū)ο蟮某绦蛟O(shè)計方法和相當(dāng)完整的程序設(shè)計語言。對于在工作中需要經(jīng)常使用Office套裝軟件的用戶,學(xué)習(xí)VBA有助于使工作自動化,提高工作效率。另外,由于VBA可直接應(yīng)用Office套裝軟件的各項強大功能,所以對于程序設(shè)計人員的程序設(shè)計和開發(fā)也更加方便快捷。ExcelVBA中有各種層次的對象,每個對象又有其自身的屬性、方法和事件11.1宏和VBAVBA11.1宏和VBA對象與對象集合對象是代表應(yīng)用程序的元素。具體到Excel中,對象就是工作簿、工作表、單元格、圖表、窗體。VBA中使用對象的任一方法或?qū)傩灾埃仨毾茸R別對象。對象集合對象集合是一個包含其它對象的對象,這些對象通常不是相同類型。他們經(jīng)過一個關(guān)系集合全部連接到一個公用的源對象。集合中的成員是一單獨的對象。如Workbooks集合中含有若干張Workbook,Sheets集合中含有若干張Sheet對象。具體內(nèi)容參見“對象瀏覽器”11.1宏和VBA對象與對象集合11.1宏和VBA屬性、方法和事件屬性屬性是關(guān)于某個對象的狀態(tài)(數(shù)據(jù)),定義了對象的特征,如球的大小、顏色等。可以通過修改對象的屬性值來改變對象的特征。方法方法是該對象可能被要求去執(zhí)行的動作,如關(guān)閉、打開等。每一種想要對象做的操作都被稱為方法。事件事件是可被對象識別的動作,如單擊鼠標(biāo)、激活工作表等。并且可以編寫代碼來響應(yīng)此動作。通常事件發(fā)生時,會執(zhí)行相應(yīng)的事件過程中的代碼。11.1宏和VBA屬性、方法和事件11.1宏和VBA屬性、方法和事件舉例VB中的窗體和控件是具有自己的屬性、方法和事件的對象??梢园褜傩钥醋饕粋€對象的性質(zhì),把方法看作對象的動作,把事件看作對象的響應(yīng)。假設(shè)有電視對象,屬性:大小、顏色、品牌。方法:打開、關(guān)閉、調(diào)頻。事件:打開事件——播放節(jié)目、調(diào)頻事件——調(diào)換節(jié)目等用VBA編程如下:Television.Color=BlackTelevision.Size=43Television.Worked=False代碼語法:對象(Television),接著屬性(Color),對象和屬性之間用點(.)隔開,然后是賦值(Black)通常:Object.PropertyObject.Method11.1宏和VBA屬性、方法和事件舉例11.1宏和VBAExcel中的基本對象ApplicationWorkbookWorksheetsRangeVBA中的基本語句(自己復(fù)習(xí))聲明語句賦值語句可執(zhí)行語句順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)11.1宏和VBAExcel中的基本對象11.1宏和VBA宏宏程序是指用VBA提供的各種函數(shù)、語句、對象、方法和屬性等編寫的程序。宏程序可以被多次重復(fù)使用,自動執(zhí)行復(fù)雜的任務(wù),減少完成任務(wù)所需的步驟。11.1宏和VBA宏11.1宏和VBA宏的創(chuàng)建和運行使用宏錄制創(chuàng)建新宏使用VisualBasic編輯器創(chuàng)建新宏11.1宏和VBA宏的創(chuàng)建和運行11.1宏和VBA11.1.2使用宏錄制器錄制宏宏錄制器是Excel提供的一種軟件工具,它能夠?qū)⒂脩舻牟僮鬟^程記錄下來,并自動將所記錄的操作轉(zhuǎn)換成VBA程序代碼。對于經(jīng)常重復(fù)進行的操作過程,可以通過宏錄制器將它記錄下來,當(dāng)需要再次進行這些操作時,只需運行錄制的宏,Excel就能自動完成這些重復(fù)的操作。需要注意的是,當(dāng)錄制宏的工作開始后,所有的操作步驟都將被記錄在宏中,所以應(yīng)盡量減少不必要的或錯誤的操作,如果在錄制宏時出現(xiàn)失誤,更正失誤的操作也會記錄在宏中。

11.1.2使用宏錄制器錄制宏宏錄制器是Excel提供的11.1.2使用宏錄制器錄制宏_記錄宏程序的方法和步驟選擇【開發(fā)工具】菜單上的【錄制宏】命令。在“宏名”框中輸入宏程序的名稱。在“保存在”框中,指定存放宏的位置。在“說明”框中,輸入要錄制宏的有關(guān)說明信息。選擇【確定】按鈕,此時原來的【錄制宏】變?yōu)椤就V逛浿啤堪粹o。用戶可以進行各種操作,如選定單元格、輸入標(biāo)題、設(shè)置表格等。單擊【停止錄制】按鈕,結(jié)束宏錄制。11.1.2使用宏錄制器錄制宏_記錄宏程序的方法和步驟11.1.2使用宏錄制器錄制宏_記錄宏實例【例11-1】打開工作簿cwgl11,用錄制宏的方式記錄以下工作:插入一張工作表,在新插入的工作表上制作一張簡單的分部銷售情況表,表結(jié)構(gòu)如圖11-4所示。錄制一個能夠建立這種表結(jié)構(gòu)的宏Sales。圖11-4:銷售情況表11.1.2使用宏錄制器錄制宏_記錄宏實例【例11-1】打11.1.2使用宏錄制器錄制宏_錄制宏的過程:(1)選擇【開發(fā)工具】菜單上【錄制宏】命令;(2)在“宏名”框中輸入宏程序的名稱“Sales”;(3)在“保存在”框中指定存放宏的位置——“當(dāng)前工作簿”;(4)在“說明”框中,輸入要錄制宏的有關(guān)說明信息;(5)選擇【確定】按鈕,此時【停止錄制】按鈕出現(xiàn)在菜單上;(6)選擇【插入】菜單上的【工作表】命令;(7)選擇A1單元格,輸入“銷售情況表”;(8)依次在其他單元格輸入文字,并調(diào)整字體字號;(9)選擇范圍A1:AF,合并單元格;(10)選擇標(biāo)題,居中顯示,單擊【字體】工具,選擇14號,加粗字體;(11)單擊【停止錄制】按鈕,結(jié)束宏錄制。

11.1.2使用宏錄制器錄制宏_錄制宏的過程:(1)選擇【11.1.2使用宏錄制器錄制宏_查看所錄制的宏宏程序錄制完畢后,選擇工具欄上的【宏】命令,彈出“宏”對話框。在“宏名”框中選擇宏程序“Sales”,單擊【編輯】按鈕,則可顯示剛才所錄制的宏程序“Sales”。11.1.2使用宏錄制器錄制宏_查看所錄制的宏宏程序錄制完11.1.3利用VBA編寫宏程序

宏錄制器存在問題:錄制的宏往往語句冗長(記錄了許多不需要的步驟,不需要的語句),會降低執(zhí)行速度當(dāng)錄制宏的工作開始后,所有的操作步驟都將被記錄在宏中,如果在錄制宏時出現(xiàn)失誤,更正失誤的操作也會記錄在宏中。有時為了更正操作,可能需要重新錄制新宏宏錄制器在靈活度方面有所欠缺有些功能是無法通過錄制實現(xiàn)的因此需要用VBA編寫宏程序11.1.3利用VBA編寫宏程序

宏錄制器存在問題:因此需11.1.3利用VBA編寫宏程序_宏程序的分類

⑴子程序子程序是VBA的最小程序單位。⑵函數(shù)函數(shù)由Function和EndFunction語句所包含起來的VBA語句組成。子程序可以執(zhí)行某種操作,但無返回值。Function函數(shù)和Sub子程序很類似,但函數(shù)有一個返回值。11.1.3利用VBA編寫宏程序_宏程序的分類

⑴子程序11.1.3利用VBA編寫宏程序_結(jié)構(gòu)化程序設(shè)計的控制結(jié)構(gòu)(1)順序結(jié)構(gòu)(2)選擇結(jié)構(gòu)(3)循環(huán)結(jié)構(gòu)11.1.3利用VBA編寫宏程序_結(jié)構(gòu)化程序設(shè)計的控制結(jié)構(gòu)11.1.3利用VBA編寫宏程序

(1)順序結(jié)構(gòu)在一般情況下,一個VBA的Sub子程序和Function函數(shù)的執(zhí)行都是從程序代碼的第一個語句行開始,逐條運行程序代碼中的語句,直至遇到EndSub或EndFunction來結(jié)束整個程序的執(zhí)行。這就是順序結(jié)構(gòu)。11.1.3利用VBA編寫宏程序

(1)順序結(jié)構(gòu)11.1.3利用VBA編寫宏程序_(1)順序結(jié)構(gòu)

【例11-2】編寫一宏程序。過程名:PROCE1功能:在cwgl工作簿中的“Sales”工作表中,賦予B1單元報表的標(biāo)題“銷售情況分析表”;賦予B2單元日期“2014年12月”;在A3、B3、C3、D3、E3單元格中依次輸入“部門”、“實際銷售額”、“保本銷售額”、“盈虧狀況”、和“銷項稅”;在A4、B4、C4單元格中依次輸入“計算機部”、“100”和“80”。11.1.3利用VBA編寫宏程序_(1)順序結(jié)構(gòu)

【例1111.1.3利用VBA編寫宏程序_(1)順序結(jié)構(gòu)

編制的宏程序如下:Subproce1()Range("B1").SelectActiveCell.FormulaR1C1="銷售情況分析表"Range("B2").SelectActiveCell.FormulaR1C1="2010年12月"Range("A3").SelectActiveCell.FormulaR1C1="部門"Range("B3").SelectActiveCell.FormulaR1C1="實際銷售額"Range("C3").Select11.1.3利用VBA編寫宏程序_(1)順序結(jié)構(gòu)

編制的宏11.1.3利用VBA編寫宏程序_(1)順序結(jié)構(gòu)

ActiveCell.FormulaR1C1="保本銷售額"Range("D3").SelectActiveCell.FormulaR1C1="盈虧狀況"Range("E3").SelectActiveCell.FormulaR1C1="銷項稅"Range("A4").SelectActiveCell.FormulaR1C1="計算機部"Range("B4").Value=100Range("C4").Value=80EndSub11.1.3利用VBA編寫宏程序_(1)順序結(jié)構(gòu)

11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)有些時候,需要程序代碼按一定的條件執(zhí)行,當(dāng)條件成立時,執(zhí)行一部分程序代碼,條件不成立時執(zhí)行另外一部分程序代碼。這種功能需要用VBA的選擇結(jié)構(gòu)來實現(xiàn)。VBA中的條件判斷語句有If語句和SelectCase語句兩種11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)有些時候,11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)①單分支語句——If…Then。單行結(jié)構(gòu)條件語句單行結(jié)構(gòu)條件語句是最基本的條件語句,其語法結(jié)構(gòu)為:If邏輯表達式Then語句塊結(jié)構(gòu)條件語句單行結(jié)構(gòu)條件語句中,滿足條件時只執(zhí)行一條語句,若有多行語句需要執(zhí)行,則需使用塊結(jié)構(gòu)條件語句。其語法結(jié)構(gòu)如下:

If邏輯表達式Then

語句序列1

語句序列211.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)①單分支語11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)②二分支語句——If…Then…Else。其語法結(jié)構(gòu)如下:

If邏輯表達式Then

語句序列1Else

語句序列2EndIf11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)②二分支語11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)【例11-3】編寫一宏程序。過程名:PROCE3功能:如果實際銷售額大于等于保本點銷售額,在屏幕上輸出“勝利完成任務(wù)!”,并在盈虧狀態(tài)單元格賦“盈利”;否則在屏幕上輸出“仍需努力!”,并在盈虧狀態(tài)單元賦“危險”。11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)【例11-11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)編寫的宏程序如下:SubPROCE3()IfRange("B3").Value>=Range("C3").ValueThenMsgBox"勝利完成任務(wù)!"Range("D4").SelectActiveCell.FormulaR1C1="盈利"ElseMsgBox"仍需努力!"Range("D4").SelectActiveCell.FormulaR1C1="危險"EndIfEndSub11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)編寫的宏程11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)③多分支語句:if…Then…ElseIf。語法結(jié)構(gòu)為:If條件1Then

語句組1ElseIf條件2Then

語句組2

……

ElseIf條件nThen

語句組nElse

語句組n+1EndIf11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)③多分支語11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)【例11-4】某汽車出租公司可為顧客提供貨物運送服務(wù),根據(jù)貨物的價值及運輸路程設(shè)置運費,并且可根據(jù)路程遠近給予適當(dāng)?shù)恼劭邸TO(shè)運費F(單位為元),貨物單價P(單位為元),貨物重量W(單位為噸),路程S(公里)及優(yōu)惠系數(shù)(D)之間的關(guān)系式為:F=P*W*S*(1-D)。優(yōu)惠系數(shù)D與路程遠近的關(guān)系如下,編寫計算折扣的函數(shù)。11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)【例11-11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)編寫的函數(shù)如下:Functiond(s)Ifs>=1000Thend=0.1ElseIfs>=750Thend=0.07ElseIfs>=500Thend=0.05ElseIfs>=250Thend=0.02Elsed=0EndIfEndFunction11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)編寫的函數(shù)11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)④多分支語句:SelectCase。SelectCase語句的語法結(jié)構(gòu)如下:SelectCase測試表達式Case表達式1

語句組1Case表達式2

語句組2

……CaseElse

語句組nEndSelect11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)④多分支語11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)【例】編寫一宏程序。過程名:PROCE4功能:如果實際銷售額大于保本銷售額,在屏幕上輸出“盈利!”,并在盈虧狀態(tài)單元格賦“盈利”;如果實際銷售額等于保本銷售額,在屏幕上輸出“保本!”,并在盈虧狀態(tài)單元格賦“保本”;如果實際銷售額小于保本銷售額,在屏幕上輸出“虧損!”,并在盈虧狀態(tài)單元格賦“虧損”。11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)【例】編寫11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)編寫的程序如下:SubPROCE4()DimsxAsDouble,bxAsDoublesx=Range("B4").Valuebx=Range("C4").ValueSelectCasesxCaseIs<bxMsgBox"虧損!"Range("D4").SelectActiveCell.FormulaR1C1="虧損"CaseIs=bxMsgBox"保本!"Range("D4").SelectActiveCell.FormulaR1C1="保本"CaseIs>bxMsgBox"盈利!"Range("D4").SelectActiveCell.FormulaR1C1="盈利"EndSelectEndSub11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)編寫的程序11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)在順序結(jié)構(gòu)的程序中,每個語句只執(zhí)行一次。在分支結(jié)構(gòu)的程序中,根據(jù)邏輯表達式的值選擇某一分支執(zhí)行,所選分支的語句也只執(zhí)行一次。然而,在處理實際問題時,經(jīng)常要用同一種方法對不同的數(shù)據(jù)進行重復(fù)處理,這些相同的操作可以通過重復(fù)執(zhí)行同一程序段來實現(xiàn)。這種重復(fù)執(zhí)行具有特定功能程序段的程序就是循環(huán)程序。11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)在順序結(jié)構(gòu)11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)①For…Next循環(huán)結(jié)構(gòu)。語法結(jié)構(gòu)為:Forcounter=startToend[step步長]

循環(huán)語句1

循環(huán)語句2

循環(huán)語句3

……

循環(huán)語句nNext[counter]該結(jié)構(gòu)的功能是:將初值賦給計數(shù)器counter。當(dāng)初值start沒有達到終值end時,VBA自動循環(huán)執(zhí)行循環(huán)體中的循環(huán)語句,每執(zhí)行一次循環(huán),計數(shù)器加1或增加指定的步長step步長;當(dāng)計數(shù)器達到終值時,跳出循環(huán)。11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)①For…11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)【例11-6】某公司職工檔案數(shù)據(jù)保存在Excel工作表中,如圖11-8所示。該公司共有1236名職工,每月要從工資表中扣除一定的住房公積金,假設(shè)住房公積金按以下的百分比扣除。11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)【例11-11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)首先,自定義函數(shù)計算公積金的百分比。Functioncountrate(salaryAsDouble)DimrateAsDoubleIfsalary>2000Then rate=0.1ElseIfsalary>1500Then rate=0.07ElseIfsalary>1200Then rate=0.05ElseIfsalary>1000Then rate=0.02ElseIfsalary>800Then rate=0.01Elserate=0EndIfcountrate=rateEndFunction11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)首先,自定11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)編寫計算所有職工工積金的宏P(guān)RO5:SubPROCE5()Fori=3To1236r=countrate(Cells(i,2))Cells(i,3)=rCells(i,3).Style="Percent"Cells(i,4)=r*Cells(i,2)Cells(i,5)=Cells(i,2)-Cells(i,4)NextEndSub11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)編寫計算所11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)②Do…Loop循環(huán)結(jié)構(gòu)。語法結(jié)構(gòu)是:DoWhile條件語句序列Loop功能:當(dāng)條件成立時,VBA重復(fù)執(zhí)行語句序列直到條件不成立,跳出循環(huán)。11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)②Do…L11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)【例11-7】繼續(xù)例11-6,假設(shè)并不知道有多少位職工,在其他條件都相同的條件下,現(xiàn)用Do…Loop循環(huán)結(jié)構(gòu)來計算每位職工的住房公積金比例、應(yīng)交公積金和實際發(fā)放工資。11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)【例11-11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)SubPROCE6() i=3 Do r=countrate(Cells(i,2)) Cells(i,3)=r Cells(i,3).Style="Percent" Cells(i,4)=r*Cells(i,2) Cells(i,5)=Cells(i,2)-Cells(i,4) i=i+1 LoopUntil(IsEmpty(Cells(i,2)))EndSub11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)SubP11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)③ForEach…Next語句。ForEach…Next循環(huán)與For…Next循環(huán)類似,但它針對數(shù)組或?qū)ο蠹现械拿恳辉刂貜?fù)一組語句,而不是重復(fù)語句一定的次數(shù)。語法結(jié)構(gòu):ForEach對象元素變量in對象集合語句序列1[ExitFor][語句序列2]Next對象元素變量11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)③For11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)【例11-10】編寫一程序過程名:PROCE7功能:關(guān)閉所有打開的工作簿。編寫的宏程序如下:SubPROCE7()ForEachBookinWorkbooks()

Book.CloseNextBookEndSub11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)【例11-11.1.4宏程序的運行1.在Excel界面運行宏2.在開發(fā)環(huán)境下運行宏11.1.4宏程序的運行1.在Excel界面運行宏11.1.4宏程序的運行1.在Excel界面運行宏在Excel界面運行宏,適用于所有環(huán)境,可通過【開發(fā)工具】,點擊“宏”,再選擇宏名,點擊【執(zhí)行】或者在工作表打開狀態(tài)下直接調(diào)用快捷鍵ALT+F8,彈出宏界面,再選擇宏名,點擊【執(zhí)行】。通過選擇自定義菜單或點擊自定義按鈕的方式執(zhí)行宏(詳見本章11.2和11.3內(nèi)容)將宏配置為在打開工作簿時自動運行(詳見本章11.4節(jié)內(nèi)容)。11.1.4宏程序的運行1.在Excel界面運行宏11.1.4宏程序的運行2.在開發(fā)環(huán)境下運行宏首先打開MicrosoftVisualBasic界面,然后在【運行】菜單上單擊【運行宏】,或者單擊工具欄中的“運行宏”

或者按F5鍵調(diào)出“宏”對話框。11.1.4宏程序的運行2.在開發(fā)環(huán)境下運行宏第11章Excel財務(wù)管理系統(tǒng)的建立11.1宏和VBA

11.2財務(wù)管理模型用戶界面的設(shè)計

11.3財務(wù)管理系統(tǒng)菜單的設(shè)計

11.4控制應(yīng)用系統(tǒng)自動啟動的方法第11章Excel財務(wù)管理系統(tǒng)的建立11.11.2財務(wù)管理模型用戶界面的設(shè)計本節(jié)主要內(nèi)容:11.2.1界面設(shè)計的主要工具11.2.2建立各模塊用戶界面11.2.3建立財務(wù)管理系統(tǒng)界面11.2財務(wù)管理模型用戶界面的設(shè)計本節(jié)主要內(nèi)容:11.2.1界面設(shè)計的主要工具主要工具:形狀工具插入/插圖/形狀

繪圖工具開始/繪圖

表單控件開發(fā)工具/插入/表單控件11.2.1界面設(shè)計的主要工具主要工具:11.2.2建立各模塊用戶界面11.2.2建立各模塊用戶界面11.2.3建立財務(wù)管理系統(tǒng)界面1.繪制圖形2.建立圖形與各功能模塊之間的鏈接11.2.3建立財務(wù)管理系統(tǒng)界面1.繪制圖形第11章Excel財務(wù)管理系統(tǒng)的建立11.1宏和VBA

11.2財務(wù)管理模型用戶界面的設(shè)計

11.3財務(wù)管理系統(tǒng)菜單的設(shè)計

11.4控制應(yīng)用系統(tǒng)自動啟動的方法第11章Excel財務(wù)管理系統(tǒng)的建立11.11.3財務(wù)管理系統(tǒng)菜單的設(shè)計本節(jié)主要內(nèi)容:11.3.1菜單管理器11.3.2在菜單欄中增加【財務(wù)管理】菜單11.3.3財務(wù)管理系統(tǒng)框架11.3財務(wù)管理系統(tǒng)菜單的設(shè)計本節(jié)主要內(nèi)容:11.3財務(wù)管理系統(tǒng)菜單的設(shè)計_建立新菜單的步驟1.選擇【文件】菜單下的【選項】【自定義功能區(qū)】命令,2.在彈出【自定義功能區(qū)】對話框“從下列位置選擇命令”中選擇【宏】,3.“自定義功能區(qū)”選擇【主選項卡】后,就可以進行各種修改操作了。11.3財務(wù)管理系統(tǒng)菜單的設(shè)計_建立新菜單的步驟1.選擇【11.3財務(wù)管理系統(tǒng)菜單的設(shè)計_財務(wù)管理系統(tǒng)框架財務(wù)分析賬務(wù)處理籌資決策數(shù)據(jù)處理基礎(chǔ)項目投資決策證券投資分析盈虧平衡與經(jīng)濟訂貨量最優(yōu)化問題財務(wù)預(yù)測比率分析杜邦分析長期借款籌資決策租賃借款決策...固定資產(chǎn)更新決策...債券投資分析模型股票投資分析模型盈虧平衡模型經(jīng)濟訂貨量模型資金管理生產(chǎn)管理投資組合銷售預(yù)測模型利潤預(yù)測模型Excel財務(wù)管理系統(tǒng)圖11-17Excel財務(wù)管理系統(tǒng)功能結(jié)構(gòu)圖11.3財務(wù)管理系統(tǒng)菜單的設(shè)計_財務(wù)管理系統(tǒng)框架財務(wù)分析賬第11章Excel財務(wù)管理系統(tǒng)的建立11.1宏和VBA

11.2財務(wù)管理模型用戶界面的設(shè)計

11.3財務(wù)管理系統(tǒng)菜單的設(shè)計

11.4控制應(yīng)用系統(tǒng)自動啟動的方法

第11章Excel財務(wù)管理系統(tǒng)的建立11.11.4控制應(yīng)用系統(tǒng)自動啟動的方法本節(jié)主要內(nèi)容:11.4.1對話框操作11.4.2自動運行宏程序11.4.3將財務(wù)管理系統(tǒng)所在的工作簿設(shè)置為在Excel啟動時自動打開11.4控制應(yīng)用系統(tǒng)自動啟動的方法本節(jié)主要內(nèi)容:11.4.1對話框操作MsgBox函數(shù):MsgBox對話框函數(shù)可用以向用戶顯示一些提示信息。函數(shù)用法:MsgBox(prompt[,buttons][,title][,helpfile,context])11.4.1對話框操作MsgBox函數(shù):MsgBox對話框11.4.1對話框操作其中各參數(shù)及其說明:參數(shù)說明prompt必選。字符串表達式,在對話框中顯示為消息。prompt的最大長度約為1024個字符,具體長度取決于所用字符的寬度。如果prompt包含多行,可在各行之間使用回車符、換行符或回車符與換行符的組合來分隔各行。buttons可選。其值為數(shù)值表達式,它是值的總和,這些值指定要顯示的按鈕的數(shù)目和類型、要使用的圖標(biāo)樣式、默認按鈕的標(biāo)識以及消息框的模態(tài)。如果省略此參數(shù),則buttons的默認值為0。title可選。字符串表達式,顯示在對話框的標(biāo)題欄中。如果省略title,則標(biāo)題欄中將顯示應(yīng)用程序名稱。helpfile可選。字符串表達式,用于標(biāo)識為對話框提供上下文相關(guān)幫助的幫助文件。如果提供helpfile,必須同時提供context。context可選。其值為數(shù)值表達式,它是幫助文件的作者為相應(yīng)幫助主題分配的幫助上下文編號。如果提供context,必須同時提供helpfile。11.4.1對話框操作其中各參數(shù)及其說明:參數(shù)說明prom11.4.2自動運行宏程序VBA提供了兩個非常有用的自動運行宏:Auto_Open將在打開工作簿時被自動執(zhí)行Auto_Close會在關(guān)閉工作簿時被自動調(diào)用11.4.2自動運行宏程序VBA提供了兩個非常有用的自動運11.4.2自動運行宏程序_Auto_Open【例11-12】建立一個當(dāng)工作簿打開時自動運行的宏程序,其功能是:顯示“歡迎您使用Excel財務(wù)管理系統(tǒng)”,并自動顯示財務(wù)管理系統(tǒng)主界面。建立的宏程序如下:SubAuto_Open()MsgBox("歡迎您使用Excel財務(wù)管理系統(tǒng)")Sheets("Excel財務(wù)管理系統(tǒng)界面").SelectEndSub11.4.2自動運行宏程序_Auto_Open【例11-11.4.2自動運行宏程序_Auto_Close【例11-13】在“Excel財務(wù)管理系統(tǒng)”工作簿中,編寫一個當(dāng)工作簿關(guān)閉時自動運行的宏程序,其功能是:顯示“感謝您使用財務(wù)管理系統(tǒng),再見!”編寫的宏程序如下:SubAuto_Close()MsgBox("感謝您使用財務(wù)管理系統(tǒng),再見!")EndSub11.4.2自動運行宏程序_Auto_Close【例1111.4.3Excel啟動時自動打開【例11-14】將“Excel財務(wù)管理系統(tǒng)”工作簿設(shè)置為自動啟動工作簿。方法:用【文件】菜單中【另存為】命令或者文件管理器中的【復(fù)制】命令,將“Excel財務(wù)管理系統(tǒng)”工作簿復(fù)制到Excel目錄下的XLSTART子目錄下。11.4.3Excel啟動時自動打開【例11-14】將“本章小結(jié)本章主要學(xué)習(xí)了建立完整的財務(wù)管理系統(tǒng)的方法,包括:宏的錄制與編寫建立用戶界面設(shè)置宏按鈕設(shè)計系統(tǒng)菜單將宏程序指定給宏按鈕或菜單項(命令)編寫自動運行宏設(shè)置模型自動啟動其他本章小結(jié)本章主要學(xué)習(xí)了建立完整的財務(wù)管理系統(tǒng)的方法,包括:Q&AQ&A第11章Excel財務(wù)管理系統(tǒng)的建立本章主要內(nèi)容:

11.1宏和VBA

11.2財務(wù)管理模型用戶界面的設(shè)計

11.3財務(wù)管理系統(tǒng)菜單的設(shè)計

11.4控制應(yīng)用系統(tǒng)自動啟動的方法第11章Excel財務(wù)管理系統(tǒng)的建立本章主要內(nèi)容:本章目標(biāo):本章目標(biāo):VBAVBA是基于VisualBasicforWindows發(fā)展而來的新一代標(biāo)準(zhǔn)宏語言,提供了面向?qū)ο蟮某绦蛟O(shè)計方法和相當(dāng)完整的程序設(shè)計語言。對于在工作中需要經(jīng)常使用Office套裝軟件的用戶,學(xué)習(xí)VBA有助于使工作自動化,提高工作效率。另外,由于VBA可直接應(yīng)用Office套裝軟件的各項強大功能,所以對于程序設(shè)計人員的程序設(shè)計和開發(fā)也更加方便快捷。ExcelVBA中有各種層次的對象,每個對象又有其自身的屬性、方法和事件11.1宏和VBAVBA11.1宏和VBA對象與對象集合對象是代表應(yīng)用程序的元素。具體到Excel中,對象就是工作簿、工作表、單元格、圖表、窗體。VBA中使用對象的任一方法或?qū)傩灾埃仨毾茸R別對象。對象集合對象集合是一個包含其它對象的對象,這些對象通常不是相同類型。他們經(jīng)過一個關(guān)系集合全部連接到一個公用的源對象。集合中的成員是一單獨的對象。如Workbooks集合中含有若干張Workbook,Sheets集合中含有若干張Sheet對象。具體內(nèi)容參見“對象瀏覽器”11.1宏和VBA對象與對象集合11.1宏和VBA屬性、方法和事件屬性屬性是關(guān)于某個對象的狀態(tài)(數(shù)據(jù)),定義了對象的特征,如球的大小、顏色等。可以通過修改對象的屬性值來改變對象的特征。方法方法是該對象可能被要求去執(zhí)行的動作,如關(guān)閉、打開等。每一種想要對象做的操作都被稱為方法。事件事件是可被對象識別的動作,如單擊鼠標(biāo)、激活工作表等。并且可以編寫代碼來響應(yīng)此動作。通常事件發(fā)生時,會執(zhí)行相應(yīng)的事件過程中的代碼。11.1宏和VBA屬性、方法和事件11.1宏和VBA屬性、方法和事件舉例VB中的窗體和控件是具有自己的屬性、方法和事件的對象??梢园褜傩钥醋饕粋€對象的性質(zhì),把方法看作對象的動作,把事件看作對象的響應(yīng)。假設(shè)有電視對象,屬性:大小、顏色、品牌。方法:打開、關(guān)閉、調(diào)頻。事件:打開事件——播放節(jié)目、調(diào)頻事件——調(diào)換節(jié)目等用VBA編程如下:Television.Color=BlackTelevision.Size=43Television.Worked=False代碼語法:對象(Television),接著屬性(Color),對象和屬性之間用點(.)隔開,然后是賦值(Black)通常:Object.PropertyObject.Method11.1宏和VBA屬性、方法和事件舉例11.1宏和VBAExcel中的基本對象ApplicationWorkbookWorksheetsRangeVBA中的基本語句(自己復(fù)習(xí))聲明語句賦值語句可執(zhí)行語句順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)11.1宏和VBAExcel中的基本對象11.1宏和VBA宏宏程序是指用VBA提供的各種函數(shù)、語句、對象、方法和屬性等編寫的程序。宏程序可以被多次重復(fù)使用,自動執(zhí)行復(fù)雜的任務(wù),減少完成任務(wù)所需的步驟。11.1宏和VBA宏11.1宏和VBA宏的創(chuàng)建和運行使用宏錄制創(chuàng)建新宏使用VisualBasic編輯器創(chuàng)建新宏11.1宏和VBA宏的創(chuàng)建和運行11.1宏和VBA11.1.2使用宏錄制器錄制宏宏錄制器是Excel提供的一種軟件工具,它能夠?qū)⒂脩舻牟僮鬟^程記錄下來,并自動將所記錄的操作轉(zhuǎn)換成VBA程序代碼。對于經(jīng)常重復(fù)進行的操作過程,可以通過宏錄制器將它記錄下來,當(dāng)需要再次進行這些操作時,只需運行錄制的宏,Excel就能自動完成這些重復(fù)的操作。需要注意的是,當(dāng)錄制宏的工作開始后,所有的操作步驟都將被記錄在宏中,所以應(yīng)盡量減少不必要的或錯誤的操作,如果在錄制宏時出現(xiàn)失誤,更正失誤的操作也會記錄在宏中。

11.1.2使用宏錄制器錄制宏宏錄制器是Excel提供的11.1.2使用宏錄制器錄制宏_記錄宏程序的方法和步驟選擇【開發(fā)工具】菜單上的【錄制宏】命令。在“宏名”框中輸入宏程序的名稱。在“保存在”框中,指定存放宏的位置。在“說明”框中,輸入要錄制宏的有關(guān)說明信息。選擇【確定】按鈕,此時原來的【錄制宏】變?yōu)椤就V逛浿啤堪粹o。用戶可以進行各種操作,如選定單元格、輸入標(biāo)題、設(shè)置表格等。單擊【停止錄制】按鈕,結(jié)束宏錄制。11.1.2使用宏錄制器錄制宏_記錄宏程序的方法和步驟11.1.2使用宏錄制器錄制宏_記錄宏實例【例11-1】打開工作簿cwgl11,用錄制宏的方式記錄以下工作:插入一張工作表,在新插入的工作表上制作一張簡單的分部銷售情況表,表結(jié)構(gòu)如圖11-4所示。錄制一個能夠建立這種表結(jié)構(gòu)的宏Sales。圖11-4:銷售情況表11.1.2使用宏錄制器錄制宏_記錄宏實例【例11-1】打11.1.2使用宏錄制器錄制宏_錄制宏的過程:(1)選擇【開發(fā)工具】菜單上【錄制宏】命令;(2)在“宏名”框中輸入宏程序的名稱“Sales”;(3)在“保存在”框中指定存放宏的位置——“當(dāng)前工作簿”;(4)在“說明”框中,輸入要錄制宏的有關(guān)說明信息;(5)選擇【確定】按鈕,此時【停止錄制】按鈕出現(xiàn)在菜單上;(6)選擇【插入】菜單上的【工作表】命令;(7)選擇A1單元格,輸入“銷售情況表”;(8)依次在其他單元格輸入文字,并調(diào)整字體字號;(9)選擇范圍A1:AF,合并單元格;(10)選擇標(biāo)題,居中顯示,單擊【字體】工具,選擇14號,加粗字體;(11)單擊【停止錄制】按鈕,結(jié)束宏錄制。

11.1.2使用宏錄制器錄制宏_錄制宏的過程:(1)選擇【11.1.2使用宏錄制器錄制宏_查看所錄制的宏宏程序錄制完畢后,選擇工具欄上的【宏】命令,彈出“宏”對話框。在“宏名”框中選擇宏程序“Sales”,單擊【編輯】按鈕,則可顯示剛才所錄制的宏程序“Sales”。11.1.2使用宏錄制器錄制宏_查看所錄制的宏宏程序錄制完11.1.3利用VBA編寫宏程序

宏錄制器存在問題:錄制的宏往往語句冗長(記錄了許多不需要的步驟,不需要的語句),會降低執(zhí)行速度當(dāng)錄制宏的工作開始后,所有的操作步驟都將被記錄在宏中,如果在錄制宏時出現(xiàn)失誤,更正失誤的操作也會記錄在宏中。有時為了更正操作,可能需要重新錄制新宏宏錄制器在靈活度方面有所欠缺有些功能是無法通過錄制實現(xiàn)的因此需要用VBA編寫宏程序11.1.3利用VBA編寫宏程序

宏錄制器存在問題:因此需11.1.3利用VBA編寫宏程序_宏程序的分類

⑴子程序子程序是VBA的最小程序單位。⑵函數(shù)函數(shù)由Function和EndFunction語句所包含起來的VBA語句組成。子程序可以執(zhí)行某種操作,但無返回值。Function函數(shù)和Sub子程序很類似,但函數(shù)有一個返回值。11.1.3利用VBA編寫宏程序_宏程序的分類

⑴子程序11.1.3利用VBA編寫宏程序_結(jié)構(gòu)化程序設(shè)計的控制結(jié)構(gòu)(1)順序結(jié)構(gòu)(2)選擇結(jié)構(gòu)(3)循環(huán)結(jié)構(gòu)11.1.3利用VBA編寫宏程序_結(jié)構(gòu)化程序設(shè)計的控制結(jié)構(gòu)11.1.3利用VBA編寫宏程序

(1)順序結(jié)構(gòu)在一般情況下,一個VBA的Sub子程序和Function函數(shù)的執(zhí)行都是從程序代碼的第一個語句行開始,逐條運行程序代碼中的語句,直至遇到EndSub或EndFunction來結(jié)束整個程序的執(zhí)行。這就是順序結(jié)構(gòu)。11.1.3利用VBA編寫宏程序

(1)順序結(jié)構(gòu)11.1.3利用VBA編寫宏程序_(1)順序結(jié)構(gòu)

【例11-2】編寫一宏程序。過程名:PROCE1功能:在cwgl工作簿中的“Sales”工作表中,賦予B1單元報表的標(biāo)題“銷售情況分析表”;賦予B2單元日期“2014年12月”;在A3、B3、C3、D3、E3單元格中依次輸入“部門”、“實際銷售額”、“保本銷售額”、“盈虧狀況”、和“銷項稅”;在A4、B4、C4單元格中依次輸入“計算機部”、“100”和“80”。11.1.3利用VBA編寫宏程序_(1)順序結(jié)構(gòu)

【例1111.1.3利用VBA編寫宏程序_(1)順序結(jié)構(gòu)

編制的宏程序如下:Subproce1()Range("B1").SelectActiveCell.FormulaR1C1="銷售情況分析表"Range("B2").SelectActiveCell.FormulaR1C1="2010年12月"Range("A3").SelectActiveCell.FormulaR1C1="部門"Range("B3").SelectActiveCell.FormulaR1C1="實際銷售額"Range("C3").Select11.1.3利用VBA編寫宏程序_(1)順序結(jié)構(gòu)

編制的宏11.1.3利用VBA編寫宏程序_(1)順序結(jié)構(gòu)

ActiveCell.FormulaR1C1="保本銷售額"Range("D3").SelectActiveCell.FormulaR1C1="盈虧狀況"Range("E3").SelectActiveCell.FormulaR1C1="銷項稅"Range("A4").SelectActiveCell.FormulaR1C1="計算機部"Range("B4").Value=100Range("C4").Value=80EndSub11.1.3利用VBA編寫宏程序_(1)順序結(jié)構(gòu)

11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)有些時候,需要程序代碼按一定的條件執(zhí)行,當(dāng)條件成立時,執(zhí)行一部分程序代碼,條件不成立時執(zhí)行另外一部分程序代碼。這種功能需要用VBA的選擇結(jié)構(gòu)來實現(xiàn)。VBA中的條件判斷語句有If語句和SelectCase語句兩種11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)有些時候,11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)①單分支語句——If…Then。單行結(jié)構(gòu)條件語句單行結(jié)構(gòu)條件語句是最基本的條件語句,其語法結(jié)構(gòu)為:If邏輯表達式Then語句塊結(jié)構(gòu)條件語句單行結(jié)構(gòu)條件語句中,滿足條件時只執(zhí)行一條語句,若有多行語句需要執(zhí)行,則需使用塊結(jié)構(gòu)條件語句。其語法結(jié)構(gòu)如下:

If邏輯表達式Then

語句序列1

語句序列211.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)①單分支語11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)②二分支語句——If…Then…Else。其語法結(jié)構(gòu)如下:

If邏輯表達式Then

語句序列1Else

語句序列2EndIf11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)②二分支語11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)【例11-3】編寫一宏程序。過程名:PROCE3功能:如果實際銷售額大于等于保本點銷售額,在屏幕上輸出“勝利完成任務(wù)!”,并在盈虧狀態(tài)單元格賦“盈利”;否則在屏幕上輸出“仍需努力!”,并在盈虧狀態(tài)單元賦“危險”。11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)【例11-11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)編寫的宏程序如下:SubPROCE3()IfRange("B3").Value>=Range("C3").ValueThenMsgBox"勝利完成任務(wù)!"Range("D4").SelectActiveCell.FormulaR1C1="盈利"ElseMsgBox"仍需努力!"Range("D4").SelectActiveCell.FormulaR1C1="危險"EndIfEndSub11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)編寫的宏程11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)③多分支語句:if…Then…ElseIf。語法結(jié)構(gòu)為:If條件1Then

語句組1ElseIf條件2Then

語句組2

……

ElseIf條件nThen

語句組nElse

語句組n+1EndIf11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)③多分支語11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)【例11-4】某汽車出租公司可為顧客提供貨物運送服務(wù),根據(jù)貨物的價值及運輸路程設(shè)置運費,并且可根據(jù)路程遠近給予適當(dāng)?shù)恼劭?。設(shè)運費F(單位為元),貨物單價P(單位為元),貨物重量W(單位為噸),路程S(公里)及優(yōu)惠系數(shù)(D)之間的關(guān)系式為:F=P*W*S*(1-D)。優(yōu)惠系數(shù)D與路程遠近的關(guān)系如下,編寫計算折扣的函數(shù)。11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)【例11-11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)編寫的函數(shù)如下:Functiond(s)Ifs>=1000Thend=0.1ElseIfs>=750Thend=0.07ElseIfs>=500Thend=0.05ElseIfs>=250Thend=0.02Elsed=0EndIfEndFunction11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)編寫的函數(shù)11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)④多分支語句:SelectCase。SelectCase語句的語法結(jié)構(gòu)如下:SelectCase測試表達式Case表達式1

語句組1Case表達式2

語句組2

……CaseElse

語句組nEndSelect11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)④多分支語11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)【例】編寫一宏程序。過程名:PROCE4功能:如果實際銷售額大于保本銷售額,在屏幕上輸出“盈利!”,并在盈虧狀態(tài)單元格賦“盈利”;如果實際銷售額等于保本銷售額,在屏幕上輸出“保本!”,并在盈虧狀態(tài)單元格賦“保本”;如果實際銷售額小于保本銷售額,在屏幕上輸出“虧損!”,并在盈虧狀態(tài)單元格賦“虧損”。11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)【例】編寫11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)編寫的程序如下:SubPROCE4()DimsxAsDouble,bxAsDoublesx=Range("B4").Valuebx=Range("C4").ValueSelectCasesxCaseIs<bxMsgBox"虧損!"Range("D4").SelectActiveCell.FormulaR1C1="虧損"CaseIs=bxMsgBox"保本!"Range("D4").SelectActiveCell.FormulaR1C1="保本"CaseIs>bxMsgBox"盈利!"Range("D4").SelectActiveCell.FormulaR1C1="盈利"EndSelectEndSub11.1.3利用VBA編寫宏程序_(2)選擇結(jié)構(gòu)編寫的程序11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)在順序結(jié)構(gòu)的程序中,每個語句只執(zhí)行一次。在分支結(jié)構(gòu)的程序中,根據(jù)邏輯表達式的值選擇某一分支執(zhí)行,所選分支的語句也只執(zhí)行一次。然而,在處理實際問題時,經(jīng)常要用同一種方法對不同的數(shù)據(jù)進行重復(fù)處理,這些相同的操作可以通過重復(fù)執(zhí)行同一程序段來實現(xiàn)。這種重復(fù)執(zhí)行具有特定功能程序段的程序就是循環(huán)程序。11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)在順序結(jié)構(gòu)11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)①For…Next循環(huán)結(jié)構(gòu)。語法結(jié)構(gòu)為:Forcounter=startToend[step步長]

循環(huán)語句1

循環(huán)語句2

循環(huán)語句3

……

循環(huán)語句nNext[counter]該結(jié)構(gòu)的功能是:將初值賦給計數(shù)器counter。當(dāng)初值start沒有達到終值end時,VBA自動循環(huán)執(zhí)行循環(huán)體中的循環(huán)語句,每執(zhí)行一次循環(huán),計數(shù)器加1或增加指定的步長step步長;當(dāng)計數(shù)器達到終值時,跳出循環(huán)。11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)①For…11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)【例11-6】某公司職工檔案數(shù)據(jù)保存在Excel工作表中,如圖11-8所示。該公司共有1236名職工,每月要從工資表中扣除一定的住房公積金,假設(shè)住房公積金按以下的百分比扣除。11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)【例11-11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)首先,自定義函數(shù)計算公積金的百分比。Functioncountrate(salaryAsDouble)DimrateAsDoubleIfsalary>2000Then rate=0.1ElseIfsalary>1500Then rate=0.07ElseIfsalary>1200Then rate=0.05ElseIfsalary>1000Then rate=0.02ElseIfsalary>800Then rate=0.01Elserate=0EndIfcountrate=rateEndFunction11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)首先,自定11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)編寫計算所有職工工積金的宏P(guān)RO5:SubPROCE5()Fori=3To1236r=countrate(Cells(i,2))Cells(i,3)=rCells(i,3).Style="Percent"Cells(i,4)=r*Cells(i,2)Cells(i,5)=Cells(i,2)-Cells(i,4)NextEndSub11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)編寫計算所11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)②Do…Loop循環(huán)結(jié)構(gòu)。語法結(jié)構(gòu)是:DoWhile條件語句序列Loop功能:當(dāng)條件成立時,VBA重復(fù)執(zhí)行語句序列直到條件不成立,跳出循環(huán)。11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)②Do…L11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)【例11-7】繼續(xù)例11-6,假設(shè)并不知道有多少位職工,在其他條件都相同的條件下,現(xiàn)用Do…Loop循環(huán)結(jié)構(gòu)來計算每位職工的住房公積金比例、應(yīng)交公積金和實際發(fā)放工資。11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)【例11-11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)SubPROCE6() i=3 Do r=countrate(Cells(i,2)) Cells(i,3)=r Cells(i,3).Style="Percent" Cells(i,4)=r*Cells(i,2) Cells(i,5)=Cells(i,2)-Cells(i,4) i=i+1 LoopUntil(IsEmpty(Cells(i,2)))EndSub11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)SubP11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)③ForEach…Next語句。ForEach…Next循環(huán)與For…Next循環(huán)類似,但它針對數(shù)組或?qū)ο蠹现械拿恳辉刂貜?fù)一組語句,而不是重復(fù)語句一定的次數(shù)。語法結(jié)構(gòu):ForEach對象元素變量in對象集合語句序列1[ExitFor][語句序列2]Next對象元素變量11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)③For11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)【例11-10】編寫一程序過程名:PROCE7功能:關(guān)閉所有打開的工作簿。編寫的宏程序如下:SubPROCE7()ForEachBookinWorkbooks()

Book.CloseNextBookEndSub11.1.3利用VBA編寫宏程序_(3)循環(huán)結(jié)構(gòu)【例11-11.1.4宏程序的運行1.在Excel界面運行宏2.在開發(fā)環(huán)境下運行宏11.1.4宏程序的運行1.在Excel界面運行宏11.1.4宏程序的運行1.在Excel界面運行宏在Excel界面運行宏,適用于所有環(huán)境,可通過【開發(fā)工具】,點擊“宏”,再選擇宏名,點擊【執(zhí)行】或者在工作表打開狀態(tài)下直接調(diào)用快捷鍵ALT+F8,彈出宏界面,再選擇宏名,點擊【執(zhí)行】。通過選擇自定義菜單或點擊自定義按鈕的方式執(zhí)行宏(詳見本章11.2和11.3內(nèi)容)將宏配置為在打開工作簿時自動運行(詳見本章11.4節(jié)內(nèi)容)。11.1.4宏程序的運行1.在Excel界面運行宏11.1.4宏程序的運行2.在開發(fā)環(huán)境下運行宏首先打開MicrosoftVisualBasic界面,然后在【運行】菜單上單擊【運行宏】,或者單擊工具欄中的“運行宏”

或者按F5鍵調(diào)出“宏”對話框。11.1.4宏程序的運行2.在開發(fā)環(huán)境下運行宏第11章Excel財務(wù)管理系統(tǒng)的建立11.1宏和VBA

11.2財務(wù)管理模型用戶界面的設(shè)計

11.3財務(wù)管理系統(tǒng)菜單的設(shè)計

11.4控制應(yīng)用系統(tǒng)自動啟動的方法第11章Excel財務(wù)管理系統(tǒng)的建立11.11.2財務(wù)管理模型用戶界面的設(shè)計本節(jié)主要內(nèi)容:11.2.1界面設(shè)計的主要工具11.2.2建立各模塊用戶界面11.2.3建立財務(wù)管理系統(tǒng)界面11.2財務(wù)管理模

溫馨提示

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

最新文檔

評論

0/150

提交評論