Option Explicit '賞与の源泉所得税クラス 'プロパティはメンバー以外アクセスできない。 'プロパティの実体 Private mdblZei As Double '源泉所得税 Private mdblRitu As Double '税率 Private mdblSyakaiHoken As Double '社会保険料 Private mdblTeigaku As Double '月額標準報酬額による社会保険料 Private mdblSyouyo As Double '賞与総額 Private mdblKazeiSyouyo As Double '評価基準賞与金額 Private mdblKazeiHyoujun As Double '課税標準 Private mdblFuyouNinzu As Double '扶養親族数 Public Property Get Zei() As Double Zei = mdblZei End Property Public Property Let Zei(ByVal dblZei As Double) mdblZei = dblZei End Property '賞与税額計算 Public Sub CalculateZei(ByVal lngSyouyo As Long, ByVal lngTeigaku As Long, ByVal lngSyakai As Long, ByVal intNinzu As Integer) '引数[lngSyouyo]:賞与総額 '引数[lngTeigaku]:月額標準報酬額による社会保険料 '引数[lngSyakai]:社会保険料 '引数[intNinzu]:扶養親族数 'プロパティに格納 mdblFuyouNinzu = CDbl(intNinzu) mdblTeigaku = CDbl(lngTeigaku) mdblSyakaiHoken = CDbl(lngSyakai) mdblSyouyo = CDbl(lngSyouyo) Call CalculateKazei Call CalculateRitu Call CalculateHyoujun Call GensenZei End Sub '乙欄税額計算 Public Sub CalculateZei2(ByVal lngSyouyo As Long, ByVal lngTeigaku As Long, ByVal lngSyakai As Long) '引数[lngSyouyo]:賞与総額 '引数[lngTeigaku]:月額標準報酬額による社会保険料 '引数[lngSyakai]:社会保険料 'プロパティに格納 mdblTeigaku = CDbl(lngTeigaku) mdblSyakaiHoken = CDbl(lngSyakai) mdblSyouyo = CDbl(lngSyouyo) Call CalculateKazei Call CalculateRitu2 Call CalculateHyoujun Call GensenZei End Sub '税額の計算 Private Sub GensenZei() '引数[lngSyouyo]:課税金額 '引数[dblRitu]:税率 Const intKeta As Integer = 10 '四捨五入桁数 Const dblRound As Double = 0.5 '四捨五入定数 mdblZei = Int(CDbl((mdblKazeiHyoujun * mdblRitu) / intKeta + dblRound)) * intKeta End Sub '課税標準の計算 Private Sub CalculateHyoujun() mdblKazeiHyoujun = mdblSyouyo - mdblSyakaiHoken End Sub '評価対象金額の計算 Private Sub CalculateKazei() mdblKazeiSyouyo = mdblSyouyo - mdblTeigaku End Sub '賞与の源泉所得税率の算出(所得税等負担軽減措置法別表第三) Private Sub CalculateRitu() Select Case mdblFuyouNinzu Case Is = 0 Select Case mdblKazeiSyouyo Case Is < 65000 mdblRitu = CDbl(0) Case mdblKazeiSyouyo = 65000 To 70999 mdblRitu = CDbl(0.02) Case mdblKazeiSyouyo = 71000 To 76999 mdblRitu = CDbl(0.04) Case mdblKazeiSyouyo = 77000 To 84999 mdblRitu = CDbl(0.06) Case mdblKazeiSyouyo = 85000 To 370999 mdblRitu = CDbl(0.08) Case mdblKazeiSyouyo = 371000 To 409999 mdblRitu = CDbl(0.1) Case mdblKazeiSyouyo = 410000 To 497999 mdblRitu = CDbl(0.12) Case mdblKazeiSyouyo = 498000 To 681999 mdblRitu = CDbl(0.14) Case mdblKazeiSyouyo = 682000 To 714999 mdblRitu = CDbl(0.16) Case mdblKazeiSyouyo = 715000 To 748999 mdblRitu = CDbl(0.18) Case mdblKazeiSyouyo = 749000 To 785999 mdblRitu = CDbl(0.2) Case mdblKazeiSyouyo = 786000 To 826999 mdblRitu = CDbl(0.22) Case mdblKazeiSyouyo = 827000 To 874999 mdblRitu = CDbl(0.24) Case mdblKazeiSyouyo = 875000 To 950999 mdblRitu = CDbl(0.26) Case mdblKazeiSyouyo = 951000 To 1330999 mdblRitu = CDbl(0.28) Case mdblKazeiSyouyo = 1331000 To 1470999 mdblRitu = CDbl(0.3) Case mdblKazeiSyouyo = 1471000 To 1744999 mdblRitu = CDbl(0.32) Case Is <= 1745000 mdblRitu = CDbl(0.35) End Select Case Is = 1 Select Case mdblKazeiSyouyo Case Is < 89000 mdblRitu = CDbl(0) Case mdblKazeiSyouyo = 89000 To 97999 mdblRitu = CDbl(0.02) Case mdblKazeiSyouyo = 98000 To 114999 mdblRitu = CDbl(0.04) Case mdblKazeiSyouyo = 115000 To 364999 mdblRitu = CDbl(0.06) Case mdblKazeiSyouyo = 365000 To 400999 mdblRitu = CDbl(0.08) Case mdblKazeiSyouyo = 401000 To 437999 mdblRitu = CDbl(0.1) Case mdblKazeiSyouyo = 438000 To 497999 mdblRitu = CDbl(0.12) Case mdblKazeiSyouyo = 498000 To 703999 mdblRitu = CDbl(0.14) Case mdblKazeiSyouyo = 704000 To 738999 mdblRitu = CDbl(0.16) Case mdblKazeiSyouyo = 739000 To 773999 mdblRitu = CDbl(0.18) Case mdblKazeiSyouyo = 774000 To 812999 mdblRitu = CDbl(0.2) Case mdblKazeiSyouyo = 813000 To 855999 mdblRitu = CDbl(0.22) Case mdblKazeiSyouyo = 856000 To 905999 mdblRitu = CDbl(0.24) Case mdblKazeiSyouyo = 906000 To 982999 mdblRitu = CDbl(0.26) Case mdblKazeiSyouyo = 983000 To 1355999 mdblRitu = CDbl(0.28) Case mdblKazeiSyouyo = 1356000 To 1497999 mdblRitu = CDbl(0.3) Case mdblKazeiSyouyo = 1498000 To 1777999 mdblRitu = CDbl(0.32) Case Is <= 1778000 mdblRitu = CDbl(0.35) End Select Case Is = 2 Select Case mdblKazeiSyouyo Case Is < 123000 mdblRitu = CDbl(0) Case mdblKazeiSyouyo = 123000 To 139999 mdblRitu = CDbl(0.02) Case mdblKazeiSyouyo = 140000 To 247999 mdblRitu = CDbl(0.04) Case mdblKazeiSyouyo = 248000 To 392999 mdblRitu = CDbl(0.06) Case mdblKazeiSyouyo = 393000 To 426999 mdblRitu = CDbl(0.08) Case mdblKazeiSyouyo = 427000 To 465999 mdblRitu = CDbl(0.1) Case mdblKazeiSyouyo = 466000 To 513999 mdblRitu = CDbl(0.12) Case mdblKazeiSyouyo = 514000 To 724999 mdblRitu = CDbl(0.14) Case mdblKazeiSyouyo = 725000 To 762999 mdblRitu = CDbl(0.16) Case mdblKazeiSyouyo = 763000 To 799999 mdblRitu = CDbl(0.18) Case mdblKazeiSyouyo = 800000 To 838999 mdblRitu = CDbl(0.2) Case mdblKazeiSyouyo = 839000 To 885999 mdblRitu = CDbl(0.22) Case mdblKazeiSyouyo = 886000 To 936999 mdblRitu = CDbl(0.24) Case mdblKazeiSyouyo = 937000 To 1015999 mdblRitu = CDbl(0.26) Case mdblKazeiSyouyo = 1016000 To 1381999 mdblRitu = CDbl(0.28) Case mdblKazeiSyouyo = 1382000 To 1526000 mdblRitu = CDbl(0.3) Case mdblKazeiSyouyo = 1526000 To 1810999 mdblRitu = CDbl(0.32) Case Is <= 1811000 mdblRitu = CDbl(0.35) End Select Case Is = 3 Select Case mdblKazeiSyouyo Case Is < 158999 mdblRitu = CDbl(0) Case mdblKazeiSyouyo = 159000 To 179999 mdblRitu = CDbl(0.02) Case mdblKazeiSyouyo = 180000 To 247999 mdblRitu = CDbl(0.04) Case mdblKazeiSyouyo = 248000 To 416999 mdblRitu = CDbl(0.06) Case mdblKazeiSyouyo = 417000 To 451999 mdblRitu = CDbl(0.08) Case mdblKazeiSyouyo = 452000 To 493999 mdblRitu = CDbl(0.1) Case mdblKazeiSyouyo = 494000 To 544999 mdblRitu = CDbl(0.12) Case mdblKazeiSyouyo = 545000 To 746999 mdblRitu = CDbl(0.14) Case mdblKazeiSyouyo = 747000 To 786999 mdblRitu = CDbl(0.16) Case mdblKazeiSyouyo = 787000 To 824999 mdblRitu = CDbl(0.18) Case mdblKazeiSyouyo = 825000 To 866999 mdblRitu = CDbl(0.2) Case mdblKazeiSyouyo = 867000 To 914999 mdblRitu = CDbl(0.22) Case mdblKazeiSyouyo = 915000 To 967999 mdblRitu = CDbl(0.24) Case mdblKazeiSyouyo = 968000 To 1047999 mdblRitu = CDbl(0.26) Case mdblKazeiSyouyo = 1048000 To 1406999 mdblRitu = CDbl(0.28) Case mdblKazeiSyouyo = 1407000 To 1553999 mdblRitu = CDbl(0.3) Case mdblKazeiSyouyo = 1554000 To 1843999 mdblRitu = CDbl(0.32) Case Is <= 1844000 mdblRitu = CDbl(0.35) End Select Case Is = 4 Select Case mdblKazeiSyouyo Case Is < 195000 mdblRitu = CDbl(0) Case mdblKazeiSyouyo = 195000 To 218999 mdblRitu = CDbl(0.02) Case mdblKazeiSyouyo = 219000 To 247999 mdblRitu = CDbl(0.04) Case mdblKazeiSyouyo = 248000 To 440999 mdblRitu = CDbl(0.06) Case mdblKazeiSyouyo = 441000 To 477999 mdblRitu = CDbl(0.08) Case mdblKazeiSyouyo = 478000 To 521999 mdblRitu = CDbl(0.1) Case mdblKazeiSyouyo = 522000 To 578999 mdblRitu = CDbl(0.12) Case mdblKazeiSyouyo = 579000 To 768999 mdblRitu = CDbl(0.14) Case mdblKazeiSyouyo = 769000 To 810999 mdblRitu = CDbl(0.16) Case mdblKazeiSyouyo = 811000 To 850999 mdblRitu = CDbl(0.18) Case mdblKazeiSyouyo = 851000 To 894999 mdblRitu = CDbl(0.2) Case mdblKazeiSyouyo = 895000 To 943999 mdblRitu = CDbl(0.22) Case mdblKazeiSyouyo = 944000 To 998999 mdblRitu = CDbl(0.24) Case mdblKazeiSyouyo = 999000 To 1080999 mdblRitu = CDbl(0.26) Case mdblKazeiSyouyo = 1081000 To 1431999 mdblRitu = CDbl(0.28) Case mdblKazeiSyouyo = 1432000 To 1582000 mdblRitu = CDbl(0.3) Case mdblKazeiSyouyo = 1582000 To 1876999 mdblRitu = CDbl(0.32) Case Is <= 1877000 mdblRitu = CDbl(0.35) End Select Case Is = 5 Select Case mdblKazeiSyouyo Case Is < 228000 mdblRitu = CDbl(0) Case mdblKazeiSyouyo = 228000 To 253999 mdblRitu = CDbl(0.02) Case mdblKazeiSyouyo = 254000 To 285999 mdblRitu = CDbl(0.04) Case mdblKazeiSyouyo = 286000 To 464999 mdblRitu = CDbl(0.06) Case mdblKazeiSyouyo = 465000 To 503999 mdblRitu = CDbl(0.08) Case mdblKazeiSyouyo = 504000 To 550999 mdblRitu = CDbl(0.1) Case mdblKazeiSyouyo = 551000 To 609999 mdblRitu = CDbl(0.12) Case mdblKazeiSyouyo = 610000 To 789999 mdblRitu = CDbl(0.14) Case mdblKazeiSyouyo = 790000 To 835999 mdblRitu = CDbl(0.16) Case mdblKazeiSyouyo = 836000 To 876999 mdblRitu = CDbl(0.18) Case mdblKazeiSyouyo = 877000 To 922999 mdblRitu = CDbl(0.2) Case mdblKazeiSyouyo = 923000 To 972999 mdblRitu = CDbl(0.22) Case mdblKazeiSyouyo = 973000 To 1029999 mdblRitu = CDbl(0.24) Case mdblKazeiSyouyo = 1030000 To 1113999 mdblRitu = CDbl(0.26) Case mdblKazeiSyouyo = 1114000 To 1456999 mdblRitu = CDbl(0.28) Case mdblKazeiSyouyo = 1457000 To 1609999 mdblRitu = CDbl(0.3) Case mdblKazeiSyouyo = 1610000 To 1909999 mdblRitu = CDbl(0.32) Case Is <= 1910000 mdblRitu = CDbl(0.35) End Select Case Is = 6 Select Case mdblKazeiSyouyo Case Is < 259000 mdblRitu = CDbl(0) Case mdblKazeiSyouyo = 259000 To 287999 mdblRitu = CDbl(0.02) Case mdblKazeiSyouyo = 288000 To 323999 mdblRitu = CDbl(0.04) Case mdblKazeiSyouyo = 324000 To 487999 mdblRitu = CDbl(0.06) Case mdblKazeiSyouyo = 488000 To 529999 mdblRitu = CDbl(0.08) Case mdblKazeiSyouyo = 530000 To 581999 mdblRitu = CDbl(0.1) Case mdblKazeiSyouyo = 582000 To 639999 mdblRitu = CDbl(0.12) Case mdblKazeiSyouyo = 640000 To 811999 mdblRitu = CDbl(0.14) Case mdblKazeiSyouyo = 812000 To 860999 mdblRitu = CDbl(0.16) Case mdblKazeiSyouyo = 861000 To 902999 mdblRitu = CDbl(0.18) Case mdblKazeiSyouyo = 903000 To 949999 mdblRitu = CDbl(0.2) Case mdblKazeiSyouyo = 950000 To 1001999 mdblRitu = CDbl(0.22) Case mdblKazeiSyouyo = 1002000 To 1060999 mdblRitu = CDbl(0.24) Case mdblKazeiSyouyo = 1061000 To 1145999 mdblRitu = CDbl(0.26) Case mdblKazeiSyouyo = 1146000 To 1481999 mdblRitu = CDbl(0.28) Case mdblKazeiSyouyo = 1482000 To 1637999 mdblRitu = CDbl(0.3) Case mdblKazeiSyouyo = 1638000 To 1942999 mdblRitu = CDbl(0.32) Case Is <= 1943000 mdblRitu = CDbl(0.35) End Select Case Is >= 7 Select Case mdblKazeiSyouyo Case Is < 289000 mdblRitu = CDbl(0) Case mdblKazeiSyouyo = 289000 To 321999 mdblRitu = CDbl(0.02) Case mdblKazeiSyouyo = 322000 To 362999 mdblRitu = CDbl(0.04) Case mdblKazeiSyouyo = 363000 To 511999 mdblRitu = CDbl(0.06) Case mdblKazeiSyouyo = 512000 To 555999 mdblRitu = CDbl(0.08) Case mdblKazeiSyouyo = 556000 To 609999 mdblRitu = CDbl(0.1) Case mdblKazeiSyouyo = 610000 To 668999 mdblRitu = CDbl(0.12) Case mdblKazeiSyouyo = 669000 To 833999 mdblRitu = CDbl(0.14) Case mdblKazeiSyouyo = 834000 To 885999 mdblRitu = CDbl(0.16) Case mdblKazeiSyouyo = 886000 To 929999 mdblRitu = CDbl(0.18) Case mdblKazeiSyouyo = 930000 To 977999 mdblRitu = CDbl(0.2) Case mdblKazeiSyouyo = 978000 To 1031999 mdblRitu = CDbl(0.22) Case mdblKazeiSyouyo = 1032000 To 1091999 mdblRitu = CDbl(0.24) Case mdblKazeiSyouyo = 1092000 To 1178999 mdblRitu = CDbl(0.26) Case mdblKazeiSyouyo = 1179000 To 1507999 mdblRitu = CDbl(0.28) Case mdblKazeiSyouyo = 1508000 To 1664999 mdblRitu = CDbl(0.3) Case mdblKazeiSyouyo = 1665000 To 1975999 mdblRitu = CDbl(0.32) Case Is <= 1976000 mdblRitu = CDbl(0.35) End Select End Select End Sub '乙欄のとき Private Sub CalculateRitu2() Select Case mdblKazeiSyouyo Case Is < 278000 mdblRitu = CDbl(0.1) Case mdblKazeiSyouyo = 278000 To 509999 mdblRitu = CDbl(0.2) Case mdblKazeiSyouyo = 510000 To 562999 mdblRitu = CDbl(0.32) Case Is >= 563000 mdblRitu = CDbl(0.35) End Select End Sub