[算表] VBA如何计算健保应负担金额

楼主: moodyblue   2016-11-29 23:13:19
VBA如何计算健保应负担金额
网志图文版:
http://www.b88104069.com/archives/4136
在会计师事务所待过、查过内控,应该都知道证期局有个《公开发行公司建
立内部控制制度处理准则》,所有股票上市上柜的公司,必须依照规定建立
八大循环的控制作业。所以无论是会计人员配合外部查核、或者是公司稽核
单位例行性内部稽查,都会针对八大循环开展工作。其中有个薪工循环,重
点之一为“计算薪资税及各项代扣款”,主要是代扣劳健保及所得税。实务
的标准作业,是到网站下载最新的级距金额表,核算代扣款是否合乎规定。
这篇文章以健保为例,介绍如何以函数公式及VBA程式,自动依照级距计算金
额,以下分享:
一、《全民健康保险保险费负担金额表》,下载自“中央健康保险署”网站
,依照不同月投保金额(薪资所得),分别列明员工及公司应负担金额。
二、有读过《会计人的Excel小教室》的读者,应该都可以利用IF函数设计公
式:“=IF(E2<20100,284,IF(E2<21000,296,IF(E2<21900,309,IF(
E2<22800,323,336))))”为方便说明,这里假设公司员工薪资只用到五
个级距,而且员工皆无眷属。
三、光标移到下方工作表名称,鼠标右键,点选“检视程式码”,以最快、
最直接的方式进入VBA。
四、“插入”、程序”,准备开始写程式。
五、在跳出来的“新增程序”视窗,名称输入“健保级距计算”,“型态”
维持默认的“Sub(S)”,“有效范围”维持默认的“Public(B)”。
六、输入如下程式码:
Public Sub 健保级距计算()
For i = 2 To 6
If Cells(i, "D") < 20100 Then Cells(i, "G") = 284
If Cells(i, "D") >= 20100 And Cells(i, "D") < 21000 Then Cells(i,
"G") = 296
If Cells(i, "D") >= 21000 And Cells(i, "D") < 21900 Then Cells(i,
"G") = 309
If Cells(i, "D") >= 21900 And Cells(i, "D") < 22800 Then Cells(i,
"G") = 323
If Cells(i, "D") >= 22800 And Cells(i, "D") < 24000 Then Cells(i,
"G") = 336
Next
End Sub
七、在上方功能区操作:“执行(R)”、“执行Sub或UserForm F5”意思执
行VBA程式。Excel函数公式只要输入完毕,便会开始计算,VBA程式输入完毕
会储存,必须操作执行,程式才会运作,这是两者不同的地方。
八、关闭Visual Basic编辑器,回到工作簿,可以看到G栏呈现和F栏相同的
结果,正是依照级距个人应负担的健保金额。
Visual Basic for Applications,听起来艰涩,似乎专属于资工系资管系的
工程师领域,然而以这篇文章的VBA程式来看,即便不多作说明,应该也能看
得懂这几段程式在“讲”什么,这是BASIC语言自1960s年代延续下来的特色
,接近自然语言,因此容易理解、也便于学习。套句周爷的老电影台词:“
只要有心,人人都可以是食神,”在Excel世界里,只要有心,人人都可以让
VBA飞!
延伸阅读:
Access如何汇入Excel资料
http://www.b88104069.com/archives/4133
VBA如何检查应付帐款负数
http://www.b88104069.com/archives/4126
Excel如何自动化整理报表
http://www.b88104069.com/archives/4099

Links booklink

Contact Us: admin [ a t ] ucptt.com