|
> 次に、社会保険料等控除後金額から税額表の「以上」フィールドの値を求める
>ユーザー定義関数を作ります。
興味が湧いたので、このユーザー定義関数を考えてみました。
Function FnIjogaku(lngKojogo As Long) As Long
Dim lngHasu As Long
Dim lngRslt As Long
If lngKojogo < 1010000 Then
Select Case lngKojogo
Case Is < 99000
lngHasu = lngKojogo Mod 1000
Case Is < 221000
lngHasu = (lngKojogo - 99000) Mod 2000
Case Is < 1010000
lngHasu = (lngKojogo - 221000) Mod 3000
End Select
lngRslt = lngKojogo - lngHasu
Else
End If
End Function
補足すると、引数のlngKojogoは、社会保険料等控除後の給料額です。
以上と未満の幅は、
控除後給料額が 0〜 99,000のとき、1000円幅、
99,000〜 221,000のとき、2000円幅、
221,000〜1,010,000のとき、3000円幅
ですが、変数lngHasuは、この幅に満たない端数のことです。
社会保険料等控除後の給料額からこの端数を引けば、
所得率表テーブルの「以上」フィールドの値になるはずです。
返り値は、所得率表テーブルの「以上」フィールドの数値です。
Else以下、つまり、社会保険料控除後の給料額が101万円以上の場合も
書こうかと思ったのですが、力尽きました。
|
|