雷金東
(廣西財經(jīng)學(xué)院,南寧530003)
隨著社會和經(jīng)濟(jì)的不斷發(fā)展,企業(yè)財務(wù)管理的內(nèi)容越來越豐富和復(fù)雜,財務(wù)管理人員單單依靠傳統(tǒng)的計算方法已經(jīng)無法滿足現(xiàn)代企業(yè)財務(wù)管理工作的需要。Excel軟件是一款優(yōu)秀的電子表格軟件,它界面友好、簡便易用、功能強(qiáng)大,通過它不僅可以進(jìn)行數(shù)據(jù)的輸入輸出,還可以利用內(nèi)置的函數(shù)、圖表等功能對數(shù)據(jù)進(jìn)行處理與分析,使財務(wù)管理工作變得輕松和高效,因此在財務(wù)管理中應(yīng)用非常廣泛。但是Excel只是一個通用的表格處理軟件,在一些復(fù)雜和重復(fù)性的財務(wù)管理工作中,如果只是單純使用Excel來進(jìn)行財務(wù)數(shù)據(jù)計算和統(tǒng)計分析,效率較低,而且容易出錯,因此,可以通過Excel并結(jié)合VBA(Visual Basic for Applications)技術(shù)來設(shè)計財務(wù)管理模型,實現(xiàn)重復(fù)性和復(fù)雜的財務(wù)數(shù)據(jù)處理過程,進(jìn)而提高工作效率。下面以貨幣時間價值計算模型為例,介紹如何在Excel中使用VBA編程語言來設(shè)計財務(wù)管理模型。
VBA是一種面向?qū)ο蟮慕忉屨Z言,通過它可以用來實現(xiàn)Excel中沒有提供的功能,比如編寫自定義函數(shù)、實現(xiàn)自動化功能等。基于Excel平臺的VBA通過控制Excel中具有的對象庫(特殊命令集)來實現(xiàn)其具有的功能。同時,由于VBA本身不是其他應(yīng)用程序的一部分,可獨(dú)立在其他應(yīng)用程序外通過相應(yīng)的對象來控制其他應(yīng)用程序。
貨幣時間價值是指貨幣隨著時間的推移而發(fā)生的增值,也稱為資金時間價值。其來源于貨幣進(jìn)入社會再生產(chǎn)過程后的價值增值。
在計算貨幣時間價值利息時有單利和復(fù)利兩種方式,單利是指一定期間內(nèi)只在原有本金上計算利息,本金所產(chǎn)生的利息不重復(fù)計息,復(fù)利是指一定期間內(nèi)對本金及其產(chǎn)生的利息一并計算利息,即“利滾利”。
(1)復(fù)利終值(Future Value)是指當(dāng)前一定量貨幣折合在若干期后所具有的價值,其計算公式為:FVn=PV(1+i)n,或FVn=PV·FVIFi,n。式中,F(xiàn)Vn表示復(fù)利終值,PV表示現(xiàn)值,i表示利率,n表示計息期數(shù),(1+i)n稱為復(fù)利終值系數(shù)(Future Value Interest Factor),寫成FVIFi,n或(F/P,i,n)。
(2)復(fù)利現(xiàn)值(Present Value)是指未來收到或支付的先進(jìn)在當(dāng)前的價值。其計算公式為:PV=FVn(1+i)-n,或PV=FVn·PVIFi,n。式中,PV表示復(fù)利現(xiàn)值,其他符號同前面,(1+i)-n稱為復(fù)利現(xiàn)值系數(shù)(Present Value Interest Factor),寫成PVIFi,n或(P/F,i,n)。
年金(Annuity)是指一定時期內(nèi)每期等額的收付款項。
隨著社會經(jīng)濟(jì)及信息技術(shù)的不斷進(jìn)步發(fā)展,社會主義的建設(shè)事業(yè)需要更多具有創(chuàng)新精神及創(chuàng)業(yè)能力的人才,因此國家將高等院校創(chuàng)新創(chuàng)業(yè)教育工作作為教育重點(diǎn)內(nèi)容。但在高等院校實際貫徹落實國家的教育目標(biāo)時積極性與熱情度不高,且政府教育職能部門缺少相應(yīng)的監(jiān)督及管理,因此高等院校與中小微企業(yè)在創(chuàng)新創(chuàng)業(yè)教育層面的合作質(zhì)量有待提升。例如我國的《職業(yè)教育法》中規(guī)定了企業(yè)教育在創(chuàng)新創(chuàng)業(yè)教育中的中心地位,但是在實際教學(xué)環(huán)節(jié)中中小微企業(yè)的教育中心地位并未明確,與此同時政府職能部門對于企業(yè)參與高校教育活動的獎勵機(jī)制不完善,中小微企業(yè)與高等院校的教育合作缺少相關(guān)的政策制度進(jìn)行約束。
(1)普通年金終值和現(xiàn)值
普通年金是指每期期末有等額收付款項的年金,又稱后付年金。
(2)先付年金終值和現(xiàn)值
先付年金是指每期期初有等額收付款項的年金,又稱即付年金。
①先付年金終值是指一定時期內(nèi)每期期初等額收付款項的復(fù)利終值之和。計算公式為:XFVAn=A·FVIFAi,n·(1+i),或XFVAn=A·(FVIFAi,n+1-1)。式中,XFVAn表示先付年金終值,其他符號同前面。
②先付年金現(xiàn)值
先付年金現(xiàn)值是指一定時期內(nèi)每期期初等額收付款項的復(fù)利現(xiàn)值之和。其計算公式為:XPVAn=A·PVIFAi,n·(1+i),或XPVAn=A·(PVIFAi,n-1+1)。式中,XPVAn表示先付年金現(xiàn)值,其他符號同前面。
(3)延期年金終值和現(xiàn)值
延期年金(Deferred Annuity)是指在一定時期以后才開始有的年金,又稱遞延年金。延期年金終值可直接按普通年金終值公式計算。延期年金現(xiàn)值的計算公式為:V0=A·PVIFAi,n·PVIFi,m,或V0=A·(PVIFAi,m+n-PVIFAi,m)。式中,V0表示延期年金現(xiàn)值,其他符號同前面。
在Excel中,計算貨幣時間價值的主要函數(shù)有FV函數(shù)、PV函數(shù)。
(1)FV函數(shù)
FV函數(shù)不僅可以計算復(fù)利終值、普通年金終值和先付年金終值,還可以計算復(fù)利終值系數(shù)和年金終值系數(shù)。
語法:FV(rate,nper,pmt,[pv],[type])。其中,rate:各期利率;nper:年金的付款總期數(shù);pmt:各期所應(yīng)支付的金額,在整個年金期間保持不變。pmt一般包括本金和利息,但不包括其他費(fèi)用或稅款。如果省略pmt,則必須包括pv參數(shù)。pv:現(xiàn)值,或一系列未來付款的當(dāng)前值的累積和。如果省略pv,則假定其值為0,并且必須包括pmt參數(shù);type:數(shù)字0或1,用以指定各期的付款時間是在期初還是期末。如果省略type,則假定其值為0。當(dāng)pmt=0或省略時,函數(shù)為已知現(xiàn)值計算終值;當(dāng)pv=0或省略時,函數(shù)為已知年金計算終值。
(2)PV函數(shù)
PV函數(shù)不僅可以計算復(fù)利現(xiàn)值、普通年金現(xiàn)值和先付年金現(xiàn)值,還可以計算復(fù)利現(xiàn)值系數(shù)和年金現(xiàn)值系數(shù)。
語法:PV(rate,nper,pmt,[fv],[type])。PV函數(shù)參數(shù)的含義、注意事項與FV函數(shù)的相同。當(dāng)pmt=0或省略時,已知終值計算現(xiàn)值;當(dāng)fv=0或省略時,函數(shù)為已知年金計算現(xiàn)值。
在貨幣時間價值計算模型中,點(diǎn)擊Excel工作表中的“開始計算”按鈕后,啟動模型的計算窗口,在窗體中輸入金額(或年金)、期限、年利率、計息方式以及計息時間等信息,并選擇要計算的值(復(fù)利終值或現(xiàn)值、普通年金終值或現(xiàn)值、先付年金終值或現(xiàn)值、普通延期年金終值或現(xiàn)值、先付延期年金終值或現(xiàn)值選項),點(diǎn)擊“計算”按鈕后,在窗體的“計算結(jié)果”框中顯示最終的計算結(jié)果,同時在Excel的工作表中也同步顯示結(jié)果以及各期的金額,如圖1所示。
圖1 模型運(yùn)行的效果
新建一個名為“貨幣時間價值計算模型.xlsx”的工作薄,然后在工作表中設(shè)計基本信息表格,信息包括金額(或年金)、期限、年利率、計息方式、延期年金遞延期等,如圖2所示。
圖2 基本信息表
設(shè)計好表格后,啟動Excel VBA,在模型中插入一個名為“時間價值”的用戶窗體,然后在窗體中通過插入框架(Frame)控件把窗體劃分為“已知數(shù)據(jù)區(qū)域”、“計算選擇區(qū)域”、“計算結(jié)果區(qū)域”、“命令區(qū)域”四個區(qū)域。
在“已知數(shù)據(jù)區(qū)域”中插入6個標(biāo)簽(Label)控件,標(biāo)題依次命名為“金額或年金(元)”、“期限(年)”、“年利率(%)”、“計息方式”、“延期年金遞延期(年)”、“計息時間”;插入4個文字框(TextBox),分別對應(yīng)“金額或年金(元)”、“期限(年)”、“年利率(%)”和“延期年金遞延期(年)”標(biāo)簽控件;插入1個復(fù)合框(ComboBox)控件,對應(yīng)“計息方式”標(biāo)簽控件;插入2個選項按鈕(OptionButton)控件,標(biāo)題分別命名為“期初”和“期末”,對應(yīng)“計息時間”標(biāo)簽控件。
在“計算選擇區(qū)域”中插入10個選項按鈕控件和一個框架控件,10個選項按鈕標(biāo)題分別命名為“復(fù)利終值”、“復(fù)利現(xiàn)值”、“普通年金終值”、“普通年金現(xiàn)值”、“先付年金終值”、“先付年金現(xiàn)值”、“普通延期年金終值”、“普通延期年金現(xiàn)值”、“先付延期年金終值”和“先付延期年金現(xiàn)值”;框架控件的標(biāo)題命名為“是否查看每期金額”,并在框架中插入2個選項按鈕控件,標(biāo)題分別命名為“是”和“否”。
在“命令區(qū)域”中插入3個命令按鈕(CommandButton)控件,標(biāo)題分別命名為“計算”、“清除表格”、“退出”。
在“計算結(jié)果區(qū)域”中插入1個文字框控件,用于顯示計算的結(jié)果。
圖3
設(shè)計好窗體的框架后,開始編寫程序代碼?!坝嬒⒎绞健绷斜砜虺跏蓟拇a如下:
“計算”按鈕是模型的核心,其程序代碼如下:
編寫好程序代碼后,插入一個名為“貨幣時間價值”的宏,指定其運(yùn)行的按鈕為工作表中的“開始計算”按鈕,然后編寫宏代碼如下:
另外,為了在打開工作薄時自動運(yùn)行模型,在VBA中插入一個模塊,并添加如下的程序代碼:
至此,模型設(shè)計完成,通過輸入相關(guān)的數(shù)據(jù)和信息運(yùn)行模型進(jìn)行驗證,如圖4所示。
圖4
本文通過Excel VBA設(shè)計的貨幣時間價值計算模型,在計算各種終值或現(xiàn)值時可以避免反復(fù)調(diào)用FV和PV函數(shù),使用過程中也不用反復(fù)地選擇函數(shù)的參數(shù),簡化了計算過程。另外,模型不但可以顯示最終的計算結(jié)果,還可以顯示每期的金額,結(jié)果信息更豐富,因此在平常的財務(wù)管理工作中可以提高工作的效率和計算準(zhǔn)確性。同樣的,通過Excel VBA還可以設(shè)計長期債券分析模型、長期籌資決策模型等,進(jìn)而合成為一個功能更強(qiáng)的財務(wù)管理系統(tǒng)。