精華區beta Accounting 關於我們 聯絡資訊
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 -- 周末,我們繼續Excel:精華區=>21.心得=>5.其他=>3.office 會計人的Excel小教室: https://www.facebook.com/acctexcel -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.149.4.70 ※ 文章網址: https://www.ptt.cc/bbs/Accounting/M.1480432344.A.079.html
bluexiaomi: 推 11/30 08:22