[摘 要] 將Excel與VBA語言有機結(jié)合,可以巧妙地設(shè)計出一套功能完善#65380;適應小型企業(yè)的通用賬務處理核算系統(tǒng),具有其他計算機語言系統(tǒng)無法比擬的設(shè)計效率#65377;系統(tǒng)當錄入記賬憑證后,自動復式登記賬簿,隨即生成即時會計報表#65377;
[關(guān)鍵詞] 小型企業(yè);通用賬務處理系統(tǒng);Excel電子表格;VBA語言;互補機制
[中圖分類號]F232[文獻標識碼]A[文章編號]1673-0194(2008)11-0004-03
Excel作為通用賬務處理核算系統(tǒng)設(shè)計平臺,其工作表有集表單設(shè)計#65380;數(shù)據(jù)庫設(shè)計為一體的優(yōu)勢,采用Excel及VBA語言的互補機制即可完成系統(tǒng)的所有功能設(shè)計#65377;記賬憑證和會計報表的格式為固定行列格式,直接使用Excel的菜單“格式”單命令和公式自定義設(shè)計即可;而賬頁為固定列項#65380;變動行格式,行數(shù)需要由程序控制;記賬憑證的數(shù)據(jù)校驗功能,以及由記賬憑證登記到相關(guān)賬頁,則由VBA語言編程轉(zhuǎn)換#65377;
一#65380;憑證#65380;賬簿和會計報表數(shù)據(jù)的組織
設(shè)置賬戶余額#65380;記賬憑證#65380;賬簿#65380;會計報表工作表為數(shù)據(jù)表,記賬憑證#65380;賬簿和會計報表的格式均采用Excel電子表格直接仿真設(shè)計#65377;其中,為記賬憑證設(shè)置一個名為“填制憑證”的工作表(如表1所示);為建賬專門設(shè)置了一個“賬戶余額”工作表,以管理維護賬戶,錄入或結(jié)轉(zhuǎn)有關(guān)賬戶期初余額;為每個賬戶分別設(shè)置一張以賬戶名稱命名的獨立工作表#65377;資產(chǎn)負債表和損益表各自占據(jù)一張工作表,報表各項目數(shù)據(jù)直接用公式從對應的賬戶賬頁中引用獲取#65377;
二#65380;憑證處理模塊的設(shè)計
憑證處理模塊設(shè)計界面如圖1所示,包含填制憑證#65380;確認憑證兩個對憑證處理的主要命令按鈕,命令按鈕名稱分別為CommandButton 1#65380;CommandButton 2#65377;
[填制憑證]命令按鈕的功能為:程序自動編憑證號,并接受用戶鍵盤錄入記賬憑證的各要素數(shù)據(jù)#65377;其中,借貸方總賬賬戶#65380;明細分類賬戶#65380;會計主管#65380;制單#65380;復核#65380;出納等數(shù)據(jù)為用戶選擇錄入數(shù)據(jù)#65377;當用戶將鼠標移動到相應的單元格,選擇需輸入數(shù)據(jù)的單元位置后,單元格下側(cè)自動彈出顯示備選數(shù)據(jù)列表框,供用戶用鼠標左鍵單擊選擇#65377;賬戶名稱列表框的設(shè)計方法是:第一步,將賬戶分類在“賬戶余額”工作表中列表輸入后備用;第二步,選擇“填制憑證”工作表記賬憑證格式中需錄入賬戶的單元格,選用[數(shù)據(jù)]菜單的[數(shù)據(jù)有效性]命令,再選擇彈出頁面的[設(shè)置]分頁的[有效性條件允許]項目的[序列]子項,然后在[來源]項目中錄入數(shù)據(jù)源區(qū)域——選擇“賬戶余額”工作表已輸入的備用賬戶名稱數(shù)據(jù)區(qū)域,最后按[確定]按鈕#65377;

記賬憑證的設(shè)計格式設(shè)置見表1“填制憑證”工作表#65377;借貸方的金額合計由Excel公式自定義實現(xiàn),借方金額的合計數(shù)單元格E10的計算公式為sum(E6∶E9),貸方金額的合計數(shù)單元格H10的計算公式為sum(H6∶H9)#65377;
表1 填制憑證工作表

[確認憑證]命令按鈕的功能為:校驗記賬憑證要素數(shù)據(jù)的正確性,如果記賬憑證要素中,有無效數(shù)據(jù)(日期#65380;摘要#65380;賬戶名稱及金額未輸入;借貸方金額合計不相等;借貸方賬戶名稱重復)時系統(tǒng)提示錯誤,期待用戶修改,最后將憑證要素齊全并符合借貸記賬法規(guī)則的記賬憑證自動記入到憑證庫中備查#65377;采用VBA語言實現(xiàn)借貸方金額核對功能的程序如下:
Private Sub確認憑證()
Sheets ("填制憑證"). Select
If Cells(10, 5) < > Cells(10,8) Then
MsgBox ("借貸金額不相等!請檢查修改!")
Cells(6, 5). Select
Exit Sub'借貸方金額不等時,則不允許登記賬簿
End If
CommandButton2.Enabled = False '該屬性控制操作進程,借貸相等時激活登記賬簿命令按鈕
CommandButton3.Enabled = True
End Sub
三#65380;登記賬簿功能的設(shè)計
[登記賬簿]命令按鈕的功能:程序?qū)⒂涃~憑證上的借貸方數(shù)據(jù)分別登記到相應的賬頁中#65377;各賬戶期初余額#65380;日結(jié)余額#65380;期末余額及借貸方的本期發(fā)生額合計數(shù)等由公式自定義后自動計算出#65377;賬戶期初余額數(shù)據(jù)引用自“賬戶余額”工作表的相關(guān)單元格;由記賬憑證登記到如表2所示的“銀行存款”賬戶后,每登記一筆業(yè)務后的余額(含期末)由事先定義好的公式自動結(jié)出#65377;借貸符號的判斷公式在F4:F8區(qū)域,資產(chǎn)類通用公式在F4單元格為=IF(G4="","",IF(G3+D4-E4>0,"借","貸"));余額計算的公式在G4:G8區(qū)域,G4單元格公式為=ABS(G3+D4-E4);其他單元格列向填充復制#65377;
記賬憑證登記賬簿的功能,是借助VBA語言編寫程序?qū)崿F(xiàn)的,程序如下:
Sub登記賬簿()
Dim RQ As String, Pzh As String, ZY As String, JKM As String, DKM As String
'設(shè)置變量RQ日期#65380;Pzh憑證號#65380;ZY摘要#65380;JKM借方賬戶表名#65380;DKM貸方賬戶表名
Sheets("填制憑證"). Select
Application.Cells(2, 3). Select
Y = 6'記賬憑證讀數(shù)據(jù)的起始行為6
Do While Not (IsEmpty(Sheets("填制憑證").Cells(Y, 1).Value)) '讀出記賬憑證的借方數(shù)據(jù)
If IsEmpty(Sheets("填制憑證").Cells(Y, 3).Value) Then
Exit Do
End If
RQ = Sheets("填制憑證").Cells(2, 3).Value
Pzh = Sheets("填制憑證").Cells(2, 8).Value
ZY = Sheets("填制憑證").Cells(Y, 1).Value
JKM = Sheets("填制憑證").Cells(Y,3).Value
JJE = Sheets("填制憑證").Cells(Y, 5).Value
Sheets (JKM). Select
Application.Cells(4, 1). Select
For Z = 4 To 7' Z為賬頁的行計數(shù)器,簡化表達而將賬頁的行壓縮
If IsEmpty(Sheets (JKM).Cells(Z, 1).Value) Then '將記賬憑證數(shù)據(jù)寫入相關(guān)賬頁的1~4列
Sheets(JKM).Select
Sheets(JKM).Cells(Z, 1).Value = RQ
Sheets(JKM).Cells(Z, 2).Value = pzh
Sheets(JKM).Cells(Z, 3).Value = ZY
Sheets(JKM).Cells(Z, 4).Value = JJE
Exit For
End If
Next Z
Y = Y + 1
Loop
Y = 6
Do While Not (IsEmpty(Sheets("填制憑證").Cells(Y, 1).Value)) '讀出編制記賬憑證貸方數(shù)據(jù)
(略,記賬憑證貸方的單元地址不同,登記到Sheets(DKM))的中1~3#65380;5列,程序基本同上)
Loop
CommandButton1.Enabled = True
CommandButton3.Enabled = False
End Sub
以上程序無論記賬憑證為一借一貸#65380;一借多貸#65380;多借一貸,還是多借多貸,都可由循環(huán)將記賬憑證的借方賬戶數(shù)據(jù)一一寫入相應的賬頁,然后再將貸方賬戶數(shù)據(jù)一一寫入相應的賬頁#65377;

四#65380;編制會計報表功能的設(shè)計
資產(chǎn)負債表各項目的期末數(shù)是從有關(guān)賬頁工作表“期末余額”所在G8單元格通過公式自定義而得,如表3的B列#65380;D列;或編寫程序從賬頁取數(shù)#65377;一旦證賬數(shù)據(jù)變動,資產(chǎn)負債表相關(guān)數(shù)據(jù)即刻刷新#65377;損益表的設(shè)計為損益表“本月數(shù)”引用損益類賬戶借或貸方的“月合計”數(shù)據(jù),此略#65377;

五#65380;結(jié) 論
借助Excel可直接仿真設(shè)計證#65380;賬#65380;表格式,用戶公式自定義可解決各表內(nèi)#65380;各表間的數(shù)據(jù)引用與計算,再結(jié)合應用VBA語言則能夠?qū)崿F(xiàn)數(shù)據(jù)的校驗以及在憑證#65380;賬簿不同表之間的轉(zhuǎn)換#65377;Excel與VBA語言的互補機制使得賬務處理核算系統(tǒng)更加靈活實用#65380;通用化#65377;