[摘 要] 本文以Excel 2003環(huán)境為基礎(chǔ),給出了賬務(wù)與報(bào)表會(huì)計(jì)信息系統(tǒng)中的總分類賬、損益表以及資產(chǎn)負(fù)債表等信息自動(dòng)生成的VBA程序?qū)崿F(xiàn)方法。這對(duì)于剛剛起步的中小企業(yè)實(shí)現(xiàn)會(huì)計(jì)信息化,具有很好的參考價(jià)值。
[關(guān)鍵詞] Excel 2003;賬務(wù)與報(bào)表會(huì)計(jì)信息系統(tǒng);設(shè)計(jì)方案
[中圖分類號(hào)]F232[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1673-0194(2007)04-0003-03
一、憑證數(shù)據(jù)的準(zhǔn)備、總賬科目、各報(bào)表項(xiàng)目的初始化
我們要實(shí)現(xiàn)的是:一個(gè)小公司的賬務(wù)與報(bào)表會(huì)計(jì)信息系統(tǒng),即:在給定憑證數(shù)據(jù)和總賬會(huì)計(jì)科目的期初數(shù)據(jù)的前提下,如何自動(dòng)生成總分類賬、資產(chǎn)負(fù)債表以及損益表。實(shí)現(xiàn)初始化的步驟如下:
1. 創(chuàng)建憑證工作表
進(jìn)入Excel,單擊“文件”菜單,再單擊“新建”命令,創(chuàng)建一個(gè)新工作簿。在工作表sheet1上建立憑證工作表,方法是單擊工作表標(biāo)簽sheet1,進(jìn)入工作表sheet1,輸入數(shù)據(jù)如表1所示,用鼠標(biāo)雙擊工作表標(biāo)簽,改名為“憑證”。
2. 創(chuàng)建總分類賬工作表
在工作表sheet2上建立總賬工作表,方法是單擊工作表標(biāo)簽sheet2,進(jìn)入工作表sheet2,設(shè)置初始數(shù)據(jù)如表2中的A、B、C三列所示,D、E、F由第二節(jié)中的sczz()程序自動(dòng)生成,用鼠標(biāo)雙擊工作表sheet2標(biāo)簽,改名為“總賬”。
3. 創(chuàng)建損益表工作表
單擊工作表標(biāo)簽sheet3,進(jìn)入工作表sheet3,設(shè)置數(shù)據(jù)如表3所示,A列為設(shè)置的漢字項(xiàng)目,B列由第三節(jié)中的sysc()的程序自動(dòng)生成,用鼠標(biāo)雙擊工作表sheet3標(biāo)簽,改名為“損益表”。
4. 創(chuàng)建資產(chǎn)負(fù)債表工作表
單擊工作表標(biāo)簽sheet4,進(jìn)入工作表sheet4,用鼠標(biāo)雙擊工作表sheet4標(biāo)簽,改名為“資產(chǎn)負(fù)債表”。資產(chǎn)負(fù)債表項(xiàng)目的設(shè)置,因項(xiàng)目太多,此處略。


二、總賬數(shù)據(jù)自動(dòng)生成的VBA程序?qū)崿F(xiàn)方法
為了實(shí)現(xiàn)總賬數(shù)據(jù)的自動(dòng)生成,編制VBA代碼如下:
Sub sczz()
Dim zb(21), pj(21), pd(21) As Double
Sheets(“總賬”).Select
For i = 1 To 21
zb(i) = Range(“a3”).Offset(i - 1, 0)
Next i
Sheets(“憑證”).Select
For i = 1 To 21
pj(i) = Application. Sum If(Range(“c:c”), zb(i), Range(“e:e”))
pd(i) = Application. Sum If(Range(“c:c”), zb(i), Range(“f:f”))
Next i
Sheets(“總賬”).Select
For i = 1 To 21
Range(“d3”).Offset(i - 1, 0) = pj(i)
Range(“e3”).Offset(i - 1, 0) = pd(i)
Range(“f3”).Offset(i - 1, 0) = Range(“c3”).Offset
(i - 1, 0) + pj(i) - pd(i)
Next i
End Sub
三#65380;損益表數(shù)據(jù)自動(dòng)生成的VBA程序?qū)崿F(xiàn)方法
為了實(shí)現(xiàn)損益表數(shù)據(jù)的自動(dòng)生成,按照手工編制損益表的思路,編制VBA程序如下:
Sub sysc()
Dim bl(17) As Double
Sheets(“總賬”).Select
bl(4) = Application.SumIf(Range(“a:a”), 501, Range(“e:e”))
bl(5) = Application.SumIf(Range(“a:a”), 502, Range(“d:d”))
bl(6) = Application.SumIf(Range(“a:a”), 503, Range(“d:d”))
bl(7) = Application.SumIf(Range(“a:a”), 504, Range(“d:d”))
bl(8) = bl(4) - bl(5) - bl(6) - bl(7)
bl(9) = Application.SumIf(Range(“a:a”), 511, Range(“d:d”))
bl(10) = Application.SumIf(Range(“a:a”), 512, Range(“d:d”))
bl(11) = bl(8) - bl(9) - bl(10)
bl(15) = bl(11)
bl(16) = Application.SumIf(Range(“a:a”), 535, Range(“d:d”))
bl(17) = b15 - b16
Sheets(“損益表”).Select
Range(“b4”) = bl(4)
Range(“b5”) = bl(5)
Range(“b6”) = bl(6)
Range(“b7”) = bl(7)
Range(“b8”) = bl(8)
Range(“b9”) = bl(9)
Range(“b10”) = bl(10)
Range(“b11”) = bl(11)
Range(“b15”) = bl(11)
Range(“b16”) = bl(16)
Range(“b17”) = Range(“b15”) - Range(“b16”)
End Sub
四#65380;資產(chǎn)負(fù)債表數(shù)據(jù)自動(dòng)生成的VBA程序?qū)崿F(xiàn)方法
資產(chǎn)負(fù)債表數(shù)據(jù)的自動(dòng)生成程序很復(fù)雜,這里以其中的貨幣資金的期末數(shù)為例,來說明資產(chǎn)負(fù)債表中的年初數(shù)#65380;期末數(shù)數(shù)據(jù)的自動(dòng)生成程序是如何實(shí)現(xiàn)的,其他項(xiàng)目的處理類似#65377;程序代碼如下:
Sub zfsc()
Sheets(“資產(chǎn)負(fù)債表”).Select
Range(“b4”) = Application.SumIf(Range(“總賬!a3:a10”),“<111”, Range(“總賬!c3:c10”))
Range(“c4”) = Application.SumIf(Range(“總賬!a3:a10”), “<111”, Range(“總賬!f3:f10”))
Range(“b8”) = Application.SumIf(Range(“總賬!a3:a8”),“>120”,Range(“總賬!c3:c8”))
Range(“c8”) = Application.SumIf(Range(“總賬!a3:a8”),“>120”, Range(“總賬!f3:f8”))
End sub