龙源期刊网ExcelVBA在计算个人所得税中的运用作者:熊高英来源:《中国管理信息化》2008年第07期[摘要]Excel处理数据的缺点是每一步都需要人工操作和控制,对重复性的工作每次都要重复去做,所以用Excel来计算个人所得税效率太低、太复杂。ExcelVBA能够将重复的工作编写成程序,不仅能够提高效率,还能避免人为操作的错误。本文主要阐述了如何运用VBA编写计税函数程序,由程序自动完成计税任务。[关键词]个人所得税;VBA函数;计税[中图分类号]F232[文献标识码]B[文章编号]1673-0194(2008)07-0018-03一、ExcelVBA简介宏语言(VisualBasicforApplications,VBA)是新一代MicrosoftWindows应用软件通用的宏控制语言,是VB(VisualBasic)的一个子集,但不能像VB一样用于创建独立的应用程序,需要在Excel等软件的运行环境下才能运行,较之于VB它更强调对Office软件各类功能的控制,尤其是VBA可以创建自定义的解决方案,最适合用来定制已有的桌面应用程序,通常意义上的VBA就是在Office中包含着的一种加强Office功能的Basic语言。ExcelVBA就是将Excel作为开发平台来开发应用程序,通过记录宏直接生成宏程序代码来对Excel工作表进行控制,从而实现对Excel工作表数据处理等的自动化管理。二、ExcelVBA在计算个人所得税中的优势尽管大多数工资核算软件已含有计税功能,但还是不能满足实际工作的需要,比如,许多单位除了工资之外还有一些不随工资发放的、与效益挂钩的绩效工资、津贴等其他收入,工资软件中计算扣缴的只是工资收入应缴纳的个人所得税,而全员全额纳税管理要求每个人将所有龙源期刊网收入合并申报纳税,因此,在实际工作中,大多数单位都是采用Excel工作表来计算每个人应缴纳的个人所得税。Excel处理数据的缺点是每一步都要人工操作和控制,对重复性的工作每次都要重复去做。由于我国工资、薪金个人所得税计算采用的是九级超额累进税率,运用Excel计算个人所得税,需要对每一个人的收入进行判别,判别是否应缴纳个税,如应纳税适用的税率是多少,然后再套用适当的税率来进行计算。由于不同档次的收入套用的税率不同,因此不能对所有人用同一个固定的公式来进行计算,工作量大、效率低,而且每月都需如此重复操作,如果遇到单位职工人数在千人以上并且收入参差不齐适用税率较多的情况,难免会发生人为操作错误。ExcelVBA的最大特点就是能够将重复的工作编写成程序,不仅能够提高效率,还能避免人为操作的错误。采用ExcelVBA计算个人所得税时,只需运用VBA宏语言编写一个自定义计税函数程序,并将此加载在Excel工作表中,即可对表中数据进行批量处理,由程序控制自动计算出每个人应缴纳的个人所得税,最重要的是以后每个月也不需要再重新编写程序,只需更新表中数据即可,即使是税法改变也只需要作简单的修改,真可谓是一次操作终身受用,尤其适用于职工人数逾千、收入档次较多的单位。此方法简单易学,容易被会计人员和管理人员所掌握,易于大范围推广应用。三、建立ExcelVBA工作表的操作流程在Excel下运用VBA程序的前提条件是不仅要安装Excel,而且安装时必须安装VBA环境才可执行以下操作。1.新建一个命名为“个人所得税计算表.xls”的工作表(表1),工资软件中已有的栏目如“姓名”、“应发工资”、“三保一金”、“工资中已扣税金”等可直接导入表中,再增加其他列,如“其他收入1”、“其他收入2”,将个人收入明细输入相应的表格中。龙源期刊网工作表建好后即可编写计税函数程序,具体步骤如下:(1)打开“个人所得税计算表”工作表的主窗口,选择菜单“工具→宏→visualbasic编辑器”命令(或按下键盘Alt+F11组合键),单击“插入”—“模块”菜单,新建“模块1”,在右边代码窗口中编写运用自定义函数wtax计算个人所得税的程序代码:Functionwtax(xAsvariant,z,yAsInteger)Ify=1ThenIf(x-z)wtax=0ElseSelectCase(x-z)CaseIswtax=(x-z)*0.05CaseIswtax=(x-z)*0.1-25龙源期刊网=(x-z)*0.15-125CaseIswtax=(x-z)*0.2-375CaseIswtax=(x-z)*0.25-1375CaseIswtax=(x-z)*0.3-3375CaseIswtax=(x-z)*0.35-6375CaseIswtax=(x-z)*0.40-10375CaseIs100000wtax=(x-z)*0.45-15375EndSelectEndIfEndIfEndFunction(2)编写完程序后,单击“视图”—“对象浏览器”菜单,在“对象浏览器”窗口中最上边的下拉式菜单(缺省显示为)中选择“VBAProject”,在名为“类”的窗口里选择“模块1”,单击“‘模块1’的成员”右边窗口中的“wtax”,在弹出的快捷菜单中选择“属性”命令,出现“成员选项”对话框,在“描述”栏目框中键入“返回个人所得税计算表”,最后单击“确定”按钮,再单击“保存”按钮。龙源期刊网(3)按Alt+F11,切换到Excel主窗口,单击“工具”—“选项”菜单,在选项卡中选择“安全性”,将“个人信息选项”下的“保存时从此文件中删除个人信息”前的“√”去掉,单击“确定”按钮,最后单击“保存”按钮。回到Excel主窗口,再单击“工具”菜单,选择“宏”—“安全性”,将“安全级”设置为“低”,然后单击“确定”。(4)在Excel主窗口,单击“文件”—“另存为”菜单,打开“另存为”对话框,在“保存位置”下拉式菜单中点击希望保存的路径位置,在“文件名”框中键入“个人所得税计算表”,然后从“保存类型”下拉式菜单中选择“MicrosoftExcel加载宏”,单击“保存”,则可生成一个名为“个人所得税计算表.xla”的工作表文件。(5)在Excel主窗口,单击“工具”—“加载宏”菜单,单击“加载宏”对话框中的“浏览”按钮,找到“个人所得税计算表.xla”,选定后单击“确定”按钮。至此,个人所得税计税函数wtax(x,z,y)的编程工作完成,其中参数x表示本月应纳税所得额,参数z表示个税起征点1600,参数y=1时表示由收入求应纳税,y=2时表示由应纳税求收入,本文要求的是每月收入的应纳税,所以指定y=1。四、运用ExcelVBA计算个人所得税完成上述操作后一个加载宏文件——“个人所得税计算表.xla”(表2)就建立起来了,通过“个人所得税计算表.xla”再来计算个人所得税也就是一件轻而易举的事情了,计算结果见表2。表2中的斜体数字计算过程如下:龙源期刊网(1)首先计算“本月应纳税所得”,在F2单元格键入公式:=B2+C2+E2-D2-E2,确定后就可得出张月的“本月应纳税所得”,然后按住鼠标左键向下拖动F2单元格右下角的填充柄,将本公式自动填充到本列以下单元格,其他人员的“本月应纳税所得”也就自然计算出来了。或者用“复制”、“粘贴”将F2单元格的公式复制到其他人员的单元格中。(2)第二步就是计算“本月应缴纳税金”,在G2单元格键入公式:=wtax(G2,1600,1),这里x=G2表示应纳税所得额单元格,z=1600表示起征点,y=1表示由收入求应纳税,这样张月的“本月应缴税金”就计算出来了,同样利用填充柄将本公式自动填充到本列以下单元格,再计算出其他人员的“本月应缴税金”。在人数较多的情况下,用“复制”、“粘贴”效率更高、更方便。(3)最后一步就是计算“应补扣税金”。“应补扣税金”=“本月应缴税金”-“工资中已扣税金”,即在I2单元格键入公式:=G2-H2,再用填充柄计算出其他人员的“应补扣税金”,同样也可使用“复制”、“粘贴”。总之,ExcelVBA不仅具备Excel现有的所有功能,而且还具有许多自定义函数,操作灵活、实用性强,是对现有会计软件的一种很好的补充。作为一名财会人员,学会如何操作使用VBA可以帮助我们对数据进行复杂的操作和分析,这不仅对提高工作效率将大有益处,而且还可以提升整个财务工作水平。主要参考文献[1]赵志东.ExcelVBA基础入门[M].北京:人民邮电出版社,2006.