摘要:“稅票套打系統(tǒng)”是集申報國稅、套打稅票為一體的一個應(yīng)用系統(tǒng),其中充分利用了Microsoft Excel靈活的制表功能及VBA編程技術(shù)。該系統(tǒng)解決了會計公司代理記帳業(yè)務(wù)中填寫稅票工作的效率低、錯誤率高的問題,同時與手寫稅票相比,套打的稅票字跡清晰、工整,從而間接地為接收稅票的單位如銀行及稅務(wù)局的工作人員提供了便利。
關(guān)鍵詞:Excel;VBA;稅票套打
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)19-30071-04
The System of Filling out the Tax Bill Based on Excel VBA
ZHENG Xiao-hong
(Computer Science Department, Beijing Dongcheng Audlt College, Beijing 100020, China)
Abstract: The System of Filling out The Tax Bill is an aplication system to declare country taxes and to fill out the taxes bill. It well made use of the Microsoft Excel vividly creation form function and VBA program design function, and solved the Low efficiency and high error rate problems of filling out the tax bill in acting account business of an accounting company. Compared with the handwritten tax bill, the writing of tax bill using this system printing is clearer and more tidy, which indirectly provided convenience for received the unit of tax bill, such as the staff of bank and Department of Taxation.
Key words: Excel;VBA;Fill out Tax Bill
1 引言
會計公司的一類重要業(yè)務(wù)是為一些規(guī)模較小的公司代理記帳,每個月在進行核算之后,代理客戶進行納稅申報,北京市絕大多數(shù)單位是采用網(wǎng)上申報國稅,申報之后要手工填寫由國家稅務(wù)局統(tǒng)一印制的“中華人民共和國稅收通用繳款書”(通常稱為國稅稅票),凡是作過會計工作的人都知道,填寫稅票是一點不能馬虎的工作,不僅稅額要準確,而且由一長串數(shù)字組成的稅務(wù)登記號、銀行帳號更不能有一位錯碼。這項工作對于只負責(zé)一個單位帳務(wù)的會計不算什么,每個月一般情況只填一份稅票,而對于代理記帳的會計公司,可能需要填寫數(shù)十張甚至是上百張稅額、稅號、銀行帳號等信息準確無誤的稅票,可想而知這項手工填寫稅票任務(wù)的艱巨。
2 國稅稅票套打系統(tǒng)設(shè)計
為了提高填寫稅票工作效率,本人利用Excel表格及VBA編程設(shè)計制作了集國稅申報、套打稅票為一體的“稅票套打”應(yīng)用系統(tǒng)。
2.1 建立“基本信息”表
依據(jù)國家稅務(wù)局印制的“中華人民共和國稅收通用繳款書”,將其中有關(guān)各單位的基本信息收集到“基本信息”表中,在生成套打稅票時,可根據(jù)單位名稱,直接從此表中獲取,“基本信息”表的字段結(jié)構(gòu)為:(編號,單位名稱,稅務(wù)代碼,開戶銀行, 帳號,品目名稱,征收機關(guān),收款國庫,稅類編碼,稅類名稱)。
2.2 建立“大寫數(shù)字”表
在填寫稅票時,不僅要用阿拉伯數(shù)字填寫稅額,同時要用大寫(漢字)數(shù)字填寫金額,為了便于程序中將阿拉伯數(shù)字表示的稅額轉(zhuǎn)換為大寫(漢字)金額,建立“大寫數(shù)字”表。大寫數(shù)字表的結(jié)構(gòu)為:(數(shù)字,大寫);記錄內(nèi)容依次為:(0,零)、(1,壹)、(2,貳)、……、(9,玖)。
2.3 設(shè)計稅票表
2.3.1 制做表格及操作界面
依據(jù)國家稅務(wù)局印制的“中華人民共和國稅收通用繳款書”在Excel中設(shè)計一個表格,命名為“稅票”,并在其中添加必要的操作控件,構(gòu)成了“稅票套打”系統(tǒng)的工作界面,如圖1所示。
2.3.2 填寫稅票的日期域
在一個申報期內(nèi),稅票上的限繳日期、稅款所屬期,對于各個不同單位而言都是相同的,但是為了套打中準確定位,程序根據(jù)實際日期數(shù)據(jù)利用VBA代碼生成含有定位空格的符合套打的日期串。
在“稅票”表的稅票表格區(qū)域下方的文本框中輸入限繳日期、稅款所屬期,然后單擊“更新日期”按鈕,程序自動生成含空格的日期串并寫入稅票中。
“更新日期”按鈕的單擊事件代碼及相關(guān)注釋如下:
Private Sub cmdDateNew_Click()
date1 = Trim(TextBox1.Text)
date2 = Trim(TextBox2.Text)
'判斷文本框中輸入的是否為合法的日期數(shù)據(jù)
If IsDate(date1) = False Then
MsgBox (\"請正確輸入稅款所屬期(yyyy-mm-dd)!\")
TextBox1.SelStart = 0
TextBox1.SelLength = Len(TextBox2.Text)
TextBox1.Activate
Exit Sub
End If
If IsDate(date2) = False Then
MsgBox (\"請正確輸入稅款限繳日期(yyyy-mm-dd)!\")
TextBox2.SelStart = 0
TextBox2.SelLength = Len(TextBox2.Text)
TextBox2.Activate
Exit Sub
End If
'生成含空格的套打日期串,并寫入套打稅票中
Sheets(\"稅票\").Range(\"C9\").Value = \" \" Year(date1) \" \" Month(date1) \" 1-\" Day(date1)
Sheets(\"稅票\").Range(\"H9\").Value = \" \" Year(date2) \" \" Month(date2) \" \" Day(date2)
'取系統(tǒng)當前日期,生成“填寫日期”的套打日期串
date3 = Date
Sheets (\"稅票\").Range(\"E4\").Value = Year(date3) \" \" Month(date3) \" \" Day(date3)
Sheets (\"稅票\").Activate
End Sub
2.3.3 填寫單位名稱
在“稅票”表的列表框中選擇要進行申報的單位名稱,程序調(diào)用列表框“單擊事件”過程,實現(xiàn)將被選定的單位名稱寫入稅票的“全稱”域,并將原來單位的申報稅額清空,為寫入新選單位稅額作準備。
列表框單擊事件的代碼如下:
Private Sub ListBox1_Click()
Sheets(\"稅票\").Activate
'將選擇的新單位名稱寫入稅票“全稱”字段位置
Sheets(\"稅票\").Range(\"D6\") = ListBox1.Text
'清稅額,為寫入所選單位稅額作準備
Sheets(\"稅票\").Range(\"c14\") = \"\"
For i = Asc(\"I\") To Asc(\"S\")
Sheets(\"稅票\").Range(Chr(i) \"11\") =\"\"
Sheets(\"稅票\").Range(Chr(i) \"14\") =\"\"
Next i
End Sub
2.3.4 自動更新與選定單位相關(guān)的信息
在表格設(shè)計時,在單元格A25中寫入“單位名稱”,在單元格A26中寫入公式“=D6”,其中單元格D6,是稅票中全稱域單元格的地址,使A26中的內(nèi)容總是與稅票中的單位名稱一致。
利用Excel中的Dget函數(shù)以A26中顯示的單位名稱為條件從基本信息表中獲取選中單位的代碼(稅務(wù)代碼)、開戶銀行及帳號等信息。在稅票區(qū)中的“代碼”、“開戶銀行”、“帳號”等信息域分別寫入如下格式的公式:
=DGET(基本信息!A1:I100,基本信息!C1,A25:A26)
其中第1個參數(shù)為“基本信息”表中的數(shù)據(jù)區(qū),第2個參數(shù)為要獲取的數(shù)據(jù)所在列,第3個參數(shù)為要獲取數(shù)據(jù)所在行應(yīng)滿足的條件,即要獲取數(shù)據(jù)的單位名稱。
在所有需要與單位名稱同步變化的單元格中,都可依據(jù)上述的方法寫入公式,從而實現(xiàn),當用戶在列表框中選定一個申報單位時,稅票表中信息自動隨之更新。
2.4 進入國稅申報系統(tǒng)報稅
單擊按鈕“國稅申報”,即可啟動北京市國稅網(wǎng)上申報系統(tǒng),程序在“國稅申報”按鈕的單擊事件中利用VBA程序代碼,調(diào)用北京市國稅網(wǎng)上申報系統(tǒng),從而使操作者在本程序的操作界面中直接啟動國稅網(wǎng)上申報系統(tǒng),進入國稅申報。
“國稅申報”按鈕的單擊事件代碼如下:
Private Sub cmdDeclare_Click()
x = Shell(sheets(\"稅票\").range(\"path\").value)
End Sub
其中“Shell”是VBA的一個函數(shù),其功能是調(diào)用Windows應(yīng)用程序;“Path”為被命名的單元格名稱,在該單元格中存儲著本地計算機中“北京市國稅網(wǎng)上申報系統(tǒng)”的安裝路徑及啟動文件名稱。
國稅網(wǎng)上申報成功后,如果有稅,會生成電子稅票,將電子稅票的票號及稅額分別復(fù)制并粘貼到“套打稅票”工作簿中的“稅票”表中的“稅額”文本框和“票號”文本框中,為將其以套打格式寫入稅票做準備。
2.5 將稅額及電子稅票票號寫入套打稅票
2.5.1 將申報的稅額按位寫入套打稅票對應(yīng)位
在套打稅票時,稅額要嚴格地與稅票的元、角、分等金額的位名稱對齊,所以套打稅票的表格設(shè)計為每一位占用一個單元格,程序通過“寫稅票”按鈕實現(xiàn)快速并準確地將稅額按位寫入套打稅票中的對應(yīng)位的單元格中,同時生成稅額的大寫字符串并寫入稅票中,實現(xiàn)按位寫入稅額的代碼如下。
data = Trim(TextBox3.Text)
data = Format(data, \"¥0.00\") '格式化稅額
DataLen = Len(data)
ChineseData = \"\"
For i = 0 To 1'按位寫入稅額的小數(shù)部分
Sheets(\"稅票\").Cells(11, 19 - i) = Mid(data, DataLen - i, 1)
Sheets(\"稅票\").Cells(14, 19 - i) = Mid(data, DataLen - i, 1)
ChineseData = Sheets(\"稅票\").Cells(11, 19 - i) Space(2) ChineseData
Next i
For i = 3 To DataLen – 1'按位寫入稅額的整數(shù)部分
Sheets(\"稅票\").Cells(11, 20 - i) = Mid(data, DataLen - i, 1)
Sheets(\"稅票\").Cells(14, 20 - i) = Mid(data, DataLen - i, 1)
ChineseData = Sheets(\"稅票\").Cells(11, 20 - i) Space(2) ChineseData
Next i
代碼通過計數(shù)循環(huán)分別將稅額的小數(shù)部分和整數(shù)部分寫入套打稅票中,同時生成了每位數(shù)字間有兩個空格的數(shù)字串存放在變量“ChineseData”中,如果稅額為“¥159.60”,生成的含空格的稅額數(shù)字串為:“¥15960”,這是為生成套打大寫金額串做準備。
2.5.2 生成中文大寫套打稅額并寫入套打稅票
將數(shù)字串中的“¥”符號替換為“×”符號(該符號為大寫稅額的封頂符)。
ChineseData = Replace(ChineseData, “¥”, “×”)
利用循環(huán)將數(shù)字串變量ChineseData中的阿拉伯數(shù)字替換為對應(yīng)的大寫(漢字)數(shù)字:
For i = 0 To 9
ChineseData = Replace(ChineseData, i, Sheets(\"大寫數(shù)字\").Cells(i+2,2))
Next i
將大寫的稅額套打串寫入套打稅票中:
Sheets(\"稅票\").Range(\"C14\") = ChineseData
2.5.3 將電子稅票號寫入套打稅票并設(shè)置打印區(qū)域
網(wǎng)上申報生成的電子稅票票號是申報單位報稅成功的標識號,要準確的寫入到套打稅票中。
下面的代碼實現(xiàn)將電子稅票號寫入套打稅票并設(shè)置打印區(qū)域。
Sheets(\"稅票\").Activate
Sheets(\"稅票\").Cells(1, 9) = TextBox4.Text
ActiveSheet.PageSetup.PrintArea = \"$A$1:$S$14\"
用該程序生成的套打稅票如圖2所示。
■
圖2 套打稅票
3 結(jié)束語
套打稅票系統(tǒng)將Microsoft Excel靈活的制表功能與VBA編程很好地結(jié)合,實現(xiàn)了集國稅申報及國稅稅票的套打,大大提高了會計公司代理記帳業(yè)務(wù)中的稅票填寫工作的效率,同時與手寫稅票相比,套打的稅票字跡清晰、工整,從而間接地為接收稅票的單位如銀行及稅務(wù)局的工作人員提供了便利。
參考文獻:
[1] (美)沃肯巴赫. Excel 2003高級VBA編程寶典[M]. 蓋江南,等,譯. 北京:電子工業(yè)出版社,2005.
[2] (美)約翰沃肯巴赫. Excel 2003公式與函數(shù)應(yīng)用寶典[M]. 邱燕明,等,譯.北京:電子工業(yè)出版社,2004.
[3] Excel Home. Excel實戰(zhàn)技巧精粹[M]. 北京:人民郵電出版社,2007.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文