(黃巖區長潭水庫管理局 浙江臺州318024)
筆者所在單位實行會計電算化已經有二十年,期間進行過多次升級,逐步增加模塊。到目前為止運行的模塊有總賬、存貨核算、工資管理、報表等。電算化系統在單位會計核算、財務報表、查賬、檔案輸出、工資核算等方面發揮了積極的作用,提高了工作效率。電算化軟件雖然具有高效、完整的特點,但在某些情況下,由于各方面的原因也存在不能充分發揮快速、準確的功能。如我單位電算化系統的存貨核算模塊,在審核和報表方面不能發揮應有的作用。此時若結合電子表格EXCEL,再在VBA編程環境中加入少量的代碼,就能使存貨核算在審核和報表方面發揮高效、快速、準確的作用。本文結合實際工作,談談EXCEL VBA在財務核算中的運用及作用。
我單位的存貨核算電算化有10余年,目前存貨目錄有近4 000行。在倉庫設有一個存貨核算終端,負責錄入每月發生的出入庫數據;在財務室也設有一個存貨核算終端,負責審核每月發生的出入庫數據以及記賬、報表輸出。在每一個月,倉庫管理人員將全部入庫單和出庫單按時間順序錄入電算化系統,至月底當月單據錄入完畢后,再將單據全部交財務人員。財務人員將交來的單據與錄入模塊的出入庫數據逐一核對,進行審核操作、記賬和報表。但是,由于本單位存在著特殊情況,倉庫還保留著手工賬簿。具體地說,每月倉庫管理人員按時間順序將出入庫單據錄入電腦后(這時當月單據的順序與存貨核算模塊中出入庫數據的順序是一致的),他們還需要在手工賬簿上按材料目錄順序記一遍手工賬。這時當月單據的排列順序與手工賬簿中的材料目錄順序一致,而與存貨核算模塊中出入庫數據的順序不一致。倉庫管理人員每月經過這兩次操作后,再將好幾百張的出入庫單據交給財務人員審核。此時,財務人員進入存貨模塊審核出入庫數據時,就很難找到對應的出入庫單據。
財務人員在接到倉庫管理人員傳遞的入庫單和出庫單后,在進行審核時,發現這幾百張出入庫單據與電腦中存貨核算模塊中入庫單和出庫單的順序不一致。每月的出入庫單據張數少則200張,多則500張,因為順序不一致,存在著審核時找不到對應的出入庫單據。為此,財會人員需先逐一將對應的出入庫單據一張一張地找出來,等順序一致后,再按順序逐張進行單據項目的審核,將紙質的出入庫單據與存貨核算模塊中的出入庫數據核對相符后,再進行記賬操作。這樣處理,由于單據數量大,需要花費大量的查找時間,工作也存在著單調、強度大的缺點。
1.分析出入庫單據和庫存管理流水賬的關系。在分析出入庫單據后,發現庫存管理模塊中有一項功能是流水賬。單擊運行后,輸入當月時間,窗口立即顯示當月的流水賬清單。進一步分析后,發現模塊當月的流水賬與出入庫單據存在著一一對應關系。而且流水賬中有一列是存貨代碼,該存貨代碼與倉庫手工賬簿中的材料目錄是相同的,而順序卻不一致。而且流水賬中也沒有提供按存貨代碼排序的功能,不能對流水賬進行排序操作,也不能排列成與出入庫單據相一致的順序。因此不能直接在庫存管理模塊中找到解決的辦法。
流水賬中提供了輸出功能,輸出格式里有EXCEL一項。于是就計劃先將流水賬轉換成EXCEL格式數據,再在EXCEL里對流水賬按存貨代碼進行排序,排序后的流水賬順序就能與倉庫管理人員傳遞的紙質出入庫單據順序一致。最后將出入庫單據與EXCEL中排序后的流水賬逐一進行審核,審核工作就會變得快速、準確,而且這樣審核與直接審核出入庫單據的效果是等同的。
2.EXCEL VBA在流水賬排序中的作用。流水賬中的存貨代碼是由2-4組數字和分隔符號“-”組成的。由于分隔符號在存貨代碼中的位置不定,如果在EXCEL工作表中直接按存貨代碼排序后,不能得到與倉庫手工賬簿相一致的順序。因此,直接利用EXCEL工作表的排序功能還不能達到理想的效果。
EXCEL中的VBA環境能徹底解決排序問題。首先,在流水賬工作表中存貨代碼后面插入4空白列,準備存放存貨代碼拆開后,并且去掉分隔符號“-”后的各段的代碼數字。然后在VBA中編寫代碼(限于篇幅只列出主要代碼):

將以上代碼插入VBA模塊,運行以后,存貨代碼立即被分解成各段數字,并存放在存貨代碼所在列的后四列中。然后調用EXCEL工作表中的排序功能,將排序關鍵字按主次順序設置成這四列數字。重新排序后,理想的順序終于實現了。經過核對后與出入庫單據的順序一致,也與倉庫手工賬簿中材料目錄順序一致。這樣就可以逐行審核排序后的流水賬,并與出入庫單據張張對應,避免了查找出入庫單據的工作,并且保證了審核出入庫單據應有的作用和效果。EXCEL VBA解決了審核出入庫單據順序的問題。
目前,電算化系統中存貨核算模塊分別提供了入庫匯總表、出庫匯總表和收發存匯總表等三張材料匯總表。雖然從三個方面反映了材料的入庫、出庫和結存的總體情況,但是與本單位的會計核算方法不一致。在本單位的會計核算中,倉庫發出業務分為材料和固定資產兩部分,其中材料發出計入各成本、費用科目,固定資產發出計入固定資產科目,兩者需要分開進行收入、發出和結存的核算。而電算化系統未能根據實際情況,只能設置一個倉庫,并且只能提供匯總的入庫、出庫和結存報表,不能單獨反映其中固定資產的收發存情況,其中的材料收發存情況也不能單獨反映。因此,以往在發生有固定資產收發業務的月份里,只能生成和打印出材料和固定資產匯總后的收發存報表。而其中固定資產的收發數量和金額只能通過手工計算和書寫的方式,填到收發存匯總表中,并且需要重新計算材料部分的收發數量和金額。
存貨核算模塊中收發存報表是按照存貨編碼排序的,而倉庫管理人員制作的報表是按存貨代碼順序排列的,兩者存在著許多不一致的情況。在審核較對收發存報表時也存在著順序的不一致性。
1.實現原材料和固定資產分開報告發出數量。為了使原材料和固定資產分開填制報表,首先分析固定資產存貨代碼的規律性。即其中發出的固定資產存貨代碼第一段是以數字“18”開頭的,其余數字開頭的存貨代碼都是原材料。那么,只要將以數字“18”開頭的存貨代碼提取出來,生成新的報表,也就是固定資產收發存報表。余下的材料經過重新匯總計算后,就是原材料報表。
存貨核算模塊中的收發存報表也提供了導出功能,先將其導出至電子表格EXCEL工作表中。接下來是進行排序,與前面審核時對流水賬的排序相同,也是對收發存報表中存貨代碼一列進行代碼拆分,然后以拆分后的四段代碼數字作為關鍵字進行從小至大排序。經過此番操作之后,收發存報表整體順序與倉庫管理人員上報的收發存報順序就一致了。然后編寫以下代碼(限于篇幅只列出主要代碼):

并將以上代碼插入VBA模塊,運行以后,固定資產報表數據就保存在工作表“GDZC”中。這樣就實現了原材料和固定資產收發存分開報告,避免了手工重新計算的弊端。然后編寫報表格式的代碼,并將其打印出來,進行總賬模塊核算處理。
2.實現出庫報表和收發存報表的統一處理。存貨核算模塊中收發存報表與按部門出庫分開兩張報表,造成審核報表時需要核對兩次,同時也存在著順序不一致的情況。通過導出功能將出庫匯總表導出至EXCEL工作表中,編寫相應的代碼,將每個材料目錄的各部門發出數復制到收發存匯總表中,實現每種材料和固定資產的期初結存、本月收入、本月發出、期末結存以及發出至各部門的數量和金額的聯合報出。這樣處理之后,審核收發存報表時,材料目錄順序和報表內容、格式就可以一次性完成審核過程。
為了進一步提高工作效率,系統地將審核出入庫單據、收發存匯總表排序、導入出庫部門數據、生成收發存報表和生成打印表格等,將EXCEL VBA代碼整合成連續的小模塊,并分配相應的控件按鈕。實際操作時,只需從存貨核算模塊導出流水賬、入庫匯總表、出庫匯總表和收發存匯總表,然后依次點擊右圖從“第一步:”至“第九步:”的按鈕,而不需輸入任何賬務數據,即可完成出入庫單據的審核、原材料和固定資產收發存報表的生成和打印輸出。

會計電算化系統雖然有高效、完整的特點,但也存在著某些不靈活、不能滿足實際需要的弊端。為了處理好這一矛盾,應該運用電算化系統的數據導出功能,并且充分利用電子表格EXCEL及其VBA編程環境的功能,彌補電算化系統的不足。只編寫少量的代碼和導出數據,不需手工輸入任何財務數據,就能達到快速、準確、高效地完成財務核算工作的目的。