VBA如何自定義健保級距的計算函數 - 會計

Elvira avatar
By Elvira
at 2016-12-11T20:43

Table of Contents


VBA如何自定義健保級距的計算函數

網誌圖文版:

http://www.b88104069.com/archives/4140

先前文章分享利用IF函數,依照健保級距計算應負擔金額,並且介紹如何以
VBA達到相同效果。VBA程式在設計上非常靈活自由,但純粹用在計算式上,
有個麻煩點在定義儲存格,如果報表的內容和位置不會更新,直接在程式裡
寫好固定的作用範圍即可,但如果報表可能會變動,能夠參照儲存格的函數
公式,似乎方便許多。對此,完美解決方案是將VBA程式設定為函數,也就是
自定義函數,以下分享具體操作:

一、健保級距計算公式:「=IF(D2<20100,284,IF(D2<21000,296,IF(
D2<21900,309,IF(D2<22800,323,336))))」。有多少級距,架多少層
IF判斷式,雖然錯不了,但整個看起來很傷眼。

二、開啟「Visual Basic(Alt+F11)」編輯器。現在常用VBA,於是把這個
指令加到快速工具列。具體作法,可參考《會計人的Excel小教室》第一章第
一節。

三、在VBE(Visual Basic Editor,VBA編輯器)上方的工具列:「插入」、
「模組」。

四、和上個步驟比較,可以發現在左邊的專案視窗中(VBAProject),多了
一個模組(Module1),打開「Module1」的編輯視窗,輸入如下程式:

Public Function TAX(income)
If income < 20100 Then TAX = 284
If income >= 20100 And income < 21000 Then TAX = 296
If income >= 21000 And income < 21900 Then TAX = 309
If income >= 21900 And income < 22800 Then TAX = 323
If income >= 22800 And income < 24000 Then TAX = 336
End Function

「Function」是設定函數的意思,「TAX」是自定義名稱,「income」是函數
的第一個參數,如須設定第二個以上的參數,要用「,」隔開。中間便是原本
IF函數公式的VBA版,最後以「End Function」結束。

五、關掉VBE,回到工作表,在資料編輯列輸入公式:「=TAX(D2)」。神
奇的事情發生了,原本一串又臭又長的公式,變得如此乾淨俐落。重點是,
計算結果完全一樣。

六、開啟「插入函數」視窗,會發現「或選取類別」多了一個「使用者定義
」,下面的「選取函數」有剛新增的「TAX」函數。

七、按下資料編輯列,跳出「函數引數」,從另外一個角度,欣賞自己一手
打造的Excel函數。

VBA自定義函數有蠻多用途的,除了簡化Excel工作表計算公式,它還同時也
能使用在VBE程式中,這是一般程式語言都會有的功能。一方面,在程式代碼
越寫越長的情況下,簡化整體代碼、顯得更有架構和層次、更易於閱讀理解
,另方面,有些工作表的函數可以直接套用在VBE,例如這篇文章的IF函數,
兩邊通用,但也有些常用的工作表函數,例如COUNTIF、SUNIF、VLOOKUP,並
不能直接在VBE環境使用,這是因為VBA和Excel本來就是兩個不同的環境,這
時候如果有需要,可以在VBA自己寫相同效果的自定義函數,具體用法,以後
有機會再分享。


延伸閱讀:

VBA如何檢查應付帳款負數

http://www.b88104069.com/archives/4126

VBA如何計算健保應負擔金額

http://www.b88104069.com/archives/4136

《會計人的Excel小教室》 序

http://www.b88104069.com/archives/4128

--


周末,我們繼續Excel:精華區=>21.心得=>5.其他=>3.office

會計人的Excel小教室: https://www.facebook.com/acctexcel


--
Tags: 會計

All Comments

2017北一中會 講義

Caitlin avatar
By Caitlin
at 2016-12-11T10:12
想要徵求北一補習班2017年 高普特考 會計師 的課本講義 中級會計學 林正林詮 徵求今年課程最新版,希望是全新的 還沒全部拿到沒關係,我先預訂全套 然後先寄給我已出版的 麻煩站內信報價 - ...

唸研究所或工作?

Elvira avatar
By Elvira
at 2016-12-11T01:11
學士畢業就進事務所的都會建議先讀研究所,也恨當年自己不再多讀兩年……因為邊工作 邊讀書真的有夠累。 碩士畢業進事務所的會建議先工作,因為會研真的很無聊,學一堆可能都用不到。而且出 來發現年資很重要。 各有優缺點, 不過既然都上台政了應該去讀吧! ※ 引述《jubilation (happy)》 ...

高會:非控制權益期末餘額計算

Puput avatar
By Puput
at 2016-12-10T19:23
子公司SE餘額應為:300+180+50-20=510 但子公司未含商譽之SE餘額:510+40*6/8=540 NCI:540*10%+分派之GW 6=60 我想差在子公司帳上不會認設備低估之攤銷數。 故若你要用X5 NCI去計算的話,淨增加數 80000-5000+45000-20000)*10%=10 ...

高會:非控制權益期末餘額計算

Elvira avatar
By Elvira
at 2016-12-10T18:24
各位好! 請教大家一個高等會計學題目(出自林蕙真、劉嘉雯老師教科書) 題目如圖:http://imgur.com/a/z8pF7 關於最後一小題,課本用子公司權益份額加上商譽、設備等未攤銷差額,計算出未控制權益餘額是60,000;這部分我可以理解。 但是,若我改採採控制權益原始金額50,000,並 ...

公司法173條第一項

Quanna avatar
By Quanna
at 2016-12-10T18:01
引述法條原文: 公 173 I: 「繼續一年以上,持有and#34;已發行股份總數百分之三and#34;以上股份之股東 ,得以書面記名提議事項及理由,請求董事會召開臨時股東會。」 請教一下各位前輩 所謂and#34;已發行股份總數and#34; 計算時是否要包含特別股呢?? 感激不盡!! - ...