源泉税額を、マクロ関数で作る


ワークシートに、if関数で税額計算を作ることもできますが、マクロシートに関数を定義すると、もっと便利に使えます。これはマクロになるので、シートを開くたびに警告が出ます。しかし、使い勝手はマクロ関数の方が便利です。計算の根拠は、こちらを参考にして下さい。ここでは、関数の内容を説明します。 (平成25年1月より、別表第三が改定されました。以下の内容は、25年1月より適用されるものです。

関数の構造   関数名を、gensenとし、引数は給与額と扶養家族数の2つにします。

select case文(スイッチ文)

マクロ関数ではVBAの関数が使え、分岐が多くなるようなとき、select case文が使えます。

select case 引数
case is 条件式 または、case 数値1 to 数値2で条件を書き、このときの処理を指定します。このようなcase文を並べ、最後を end selectで閉めます。

Function gensen(q4, f4)        (q4とf4という2つの引数を持つ、gensenという関数を定義します。)
Select Case q4        (q4の大きさで、caseを分けます。<=は以下の意味。)
Case Is <= 135416
kz = 54167           (変数kzは、控除額です。)
Case 135417 To 149999   (次は、135417以上・149999以下のcaseです。)
kz = q4 * 0.4
Case 150000 To 299999   (同様に、case文で条件を整理します。)
kz = q4 * 0.3 + 15000
Case 300000 To 549999
kz = q4 * 0.2 + 45000
Case 550000 To 833333
kz = q4 * 0.1 + 100000
Case Is >= 833334
kz = q4 * 0.05 + 141667
End Select           (ここまでで、最初のcase文は終わりです。)
kz = kz + 31667 * (f4 + 1)  (扶養控除を、人数を使って計算します。)
q40 = q4 - kz         (変数q40に、控除後の給与額を代入します。)

Select Case q40       (今度は、q40の値によって処理を分岐させます。)
Case Is <= 162500
z0 = q40 * 0.05105        (変数z0を、計算します。これが、税額になります。)
Case 162501 To 275000    (以下、平成25年1月より改定の数値です。
z0 = q40 * 0.1021 - 8296
Case 275001 To 579166
z0 = q40 * 0.2042 - 36374
Case 579167 To 750000
z0 = q40 * 0.23483 - 54113
Case 750001 To 1500000
z0 = q40 * 0.33693 - 130688
Case Is > 1500000
z0 = q40 * 0.4084 - 237893
End Select          (これで、第2のcase文が終わります。)
gensen = Int((z0 + 5) / 10) * 10  (税額z0を10の位で四捨五入し、これを関数の値にします。)
End Function         (関数の定義終了)

以上を、モジュールシートに記述して、関数の出来上がりです。使うときは、
=gensen(A1,B1)のように、使います。

モジュールシートの編集の仕方は、ここを参考にして下さい。
 

*追加  賞与の源泉税計算について、表と関数で自動計算する方式について載せました。こちらをご覧下さい

戻る