雷金東
(廣西財經學院,南寧530003)
隨著社會和經濟的不斷發展,企業財務管理的內容越來越豐富和復雜,財務管理人員單單依靠傳統的計算方法已經無法滿足現代企業財務管理工作的需要。Excel軟件是一款優秀的電子表格軟件,它界面友好、簡便易用、功能強大,通過它不僅可以進行數據的輸入輸出,還可以利用內置的函數、圖表等功能對數據進行處理與分析,使財務管理工作變得輕松和高效,因此在財務管理中應用非常廣泛。但是Excel只是一個通用的表格處理軟件,在一些復雜和重復性的財務管理工作中,如果只是單純使用Excel來進行財務數據計算和統計分析,效率較低,而且容易出錯,因此,可以通過Excel并結合VBA(Visual Basic for Applications)技術來設計財務管理模型,實現重復性和復雜的財務數據處理過程,進而提高工作效率。下面以貨幣時間價值計算模型為例,介紹如何在Excel中使用VBA編程語言來設計財務管理模型。
VBA是一種面向對象的解釋語言,通過它可以用來實現Excel中沒有提供的功能,比如編寫自定義函數、實現自動化功能等。基于Excel平臺的VBA通過控制Excel中具有的對象庫(特殊命令集)來實現其具有的功能。同時,由于VBA本身不是其他應用程序的一部分,可獨立在其他應用程序外通過相應的對象來控制其他應用程序。
貨幣時間價值是指貨幣隨著時間的推移而發生的增值,也稱為資金時間價值。其來源于貨幣進入社會再生產過程后的價值增值。
在計算貨幣時間價值利息時有單利和復利兩種方式,單利是指一定期間內只在原有本金上計算利息,本金所產生的利息不重復計息,復利是指一定期間內對本金及其產生的利息一并計算利息,即“利滾利”。
(1)復利終值(Future Value)是指當前一定量貨幣折合在若干期后所具有的價值,其計算公式為:FVn=PV(1+i)n,或FVn=PV·FVIFi,n。式中,FVn表示復利終值,PV表示現值,i表示利率,n表示計息期數,(1+i)n稱為復利終值系數(Future Value Interest Factor),寫成FVIFi,n或(F/P,i,n)。
(2)復利現值(Present Value)是指未來收到或支付的先進在當前的價值。其計算公式為:PV=FVn(1+i)-n,或PV=FVn·PVIFi,n。式中,PV表示復利現值,其他符號同前面,(1+i)-n稱為復利現值系數(Present Value Interest Factor),寫成PVIFi,n或(P/F,i,n)。
年金(Annuity)是指一定時期內每期等額的收付款項。
隨著社會經濟及信息技術的不斷進步發展,社會主義的建設事業需要更多具有創新精神及創業能力的人才,因此國家將高等院校創新創業教育工作作為教育重點內容。但在高等院校實際貫徹落實國家的教育目標時積極性與熱情度不高,且政府教育職能部門缺少相應的監督及管理,因此高等院校與中小微企業在創新創業教育層面的合作質量有待提升。例如我國的《職業教育法》中規定了企業教育在創新創業教育中的中心地位,但是在實際教學環節中中小微企業的教育中心地位并未明確,與此同時政府職能部門對于企業參與高校教育活動的獎勵機制不完善,中小微企業與高等院校的教育合作缺少相關的政策制度進行約束。
(1)普通年金終值和現值
普通年金是指每期期末有等額收付款項的年金,又稱后付年金。

(2)先付年金終值和現值
先付年金是指每期期初有等額收付款項的年金,又稱即付年金。
①先付年金終值是指一定時期內每期期初等額收付款項的復利終值之和。計算公式為:XFVAn=A·FVIFAi,n·(1+i),或XFVAn=A·(FVIFAi,n+1-1)。式中,XFVAn表示先付年金終值,其他符號同前面。
②先付年金現值
先付年金現值是指一定時期內每期期初等額收付款項的復利現值之和。其計算公式為:XPVAn=A·PVIFAi,n·(1+i),或XPVAn=A·(PVIFAi,n-1+1)。式中,XPVAn表示先付年金現值,其他符號同前面。
(3)延期年金終值和現值
延期年金(Deferred Annuity)是指在一定時期以后才開始有的年金,又稱遞延年金。延期年金終值可直接按普通年金終值公式計算。延期年金現值的計算公式為:V0=A·PVIFAi,n·PVIFi,m,或V0=A·(PVIFAi,m+n-PVIFAi,m)。式中,V0表示延期年金現值,其他符號同前面。
在Excel中,計算貨幣時間價值的主要函數有FV函數、PV函數。
(1)FV函數
FV函數不僅可以計算復利終值、普通年金終值和先付年金終值,還可以計算復利終值系數和年金終值系數。
語法:FV(rate,nper,pmt,[pv],[type])。其中,rate:各期利率;nper:年金的付款總期數;pmt:各期所應支付的金額,在整個年金期間保持不變。pmt一般包括本金和利息,但不包括其他費用或稅款。如果省略pmt,則必須包括pv參數。pv:現值,或一系列未來付款的當前值的累積和。如果省略pv,則假定其值為0,并且必須包括pmt參數;type:數字0或1,用以指定各期的付款時間是在期初還是期末。如果省略type,則假定其值為0。當pmt=0或省略時,函數為已知現值計算終值;當pv=0或省略時,函數為已知年金計算終值。
(2)PV函數
PV函數不僅可以計算復利現值、普通年金現值和先付年金現值,還可以計算復利現值系數和年金現值系數。
語法:PV(rate,nper,pmt,[fv],[type])。PV函數參數的含義、注意事項與FV函數的相同。當pmt=0或省略時,已知終值計算現值;當fv=0或省略時,函數為已知年金計算現值。
在貨幣時間價值計算模型中,點擊Excel工作表中的“開始計算”按鈕后,啟動模型的計算窗口,在窗體中輸入金額(或年金)、期限、年利率、計息方式以及計息時間等信息,并選擇要計算的值(復利終值或現值、普通年金終值或現值、先付年金終值或現值、普通延期年金終值或現值、先付延期年金終值或現值選項),點擊“計算”按鈕后,在窗體的“計算結果”框中顯示最終的計算結果,同時在Excel的工作表中也同步顯示結果以及各期的金額,如圖1所示。

圖1 模型運行的效果
新建一個名為“貨幣時間價值計算模型.xlsx”的工作薄,然后在工作表中設計基本信息表格,信息包括金額(或年金)、期限、年利率、計息方式、延期年金遞延期等,如圖2所示。

圖2 基本信息表
設計好表格后,啟動Excel VBA,在模型中插入一個名為“時間價值”的用戶窗體,然后在窗體中通過插入框架(Frame)控件把窗體劃分為“已知數據區域”、“計算選擇區域”、“計算結果區域”、“命令區域”四個區域。
在“已知數據區域”中插入6個標簽(Label)控件,標題依次命名為“金額或年金(元)”、“期限(年)”、“年利率(%)”、“計息方式”、“延期年金遞延期(年)”、“計息時間”;插入4個文字框(TextBox),分別對應“金額或年金(元)”、“期限(年)”、“年利率(%)”和“延期年金遞延期(年)”標簽控件;插入1個復合框(ComboBox)控件,對應“計息方式”標簽控件;插入2個選項按鈕(OptionButton)控件,標題分別命名為“期初”和“期末”,對應“計息時間”標簽控件。
在“計算選擇區域”中插入10個選項按鈕控件和一個框架控件,10個選項按鈕標題分別命名為“復利終值”、“復利現值”、“普通年金終值”、“普通年金現值”、“先付年金終值”、“先付年金現值”、“普通延期年金終值”、“普通延期年金現值”、“先付延期年金終值”和“先付延期年金現值”;框架控件的標題命名為“是否查看每期金額”,并在框架中插入2個選項按鈕控件,標題分別命名為“是”和“否”。
在“命令區域”中插入3個命令按鈕(CommandButton)控件,標題分別命名為“計算”、“清除表格”、“退出”。
在“計算結果區域”中插入1個文字框控件,用于顯示計算的結果。

圖3
設計好窗體的框架后,開始編寫程序代碼。“計息方式”列表框初始化的代碼如下:

“計算”按鈕是模型的核心,其程序代碼如下:





編寫好程序代碼后,插入一個名為“貨幣時間價值”的宏,指定其運行的按鈕為工作表中的“開始計算”按鈕,然后編寫宏代碼如下:

另外,為了在打開工作薄時自動運行模型,在VBA中插入一個模塊,并添加如下的程序代碼:

至此,模型設計完成,通過輸入相關的數據和信息運行模型進行驗證,如圖4所示。

圖4
本文通過Excel VBA設計的貨幣時間價值計算模型,在計算各種終值或現值時可以避免反復調用FV和PV函數,使用過程中也不用反復地選擇函數的參數,簡化了計算過程。另外,模型不但可以顯示最終的計算結果,還可以顯示每期的金額,結果信息更豐富,因此在平常的財務管理工作中可以提高工作的效率和計算準確性。同樣的,通過Excel VBA還可以設計長期債券分析模型、長期籌資決策模型等,進而合成為一個功能更強的財務管理系統。