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 < 68000 mdblRitu = CDbl(0) Case mdblKazeiSyouyo = 68000 To 78999 mdblRitu = CDbl(0.02) Case mdblKazeiSyouyo = 79000 To 251999 mdblRitu = CDbl(0.04) Case mdblKazeiSyouyo = 252000 To 299999 mdblRitu = CDbl(0.06) Case mdblKazeiSyouyo = 300000 To 333999 mdblRitu = CDbl(0.08) Case mdblKazeiSyouyo = 334000 To 362999 mdblRitu = CDbl(0.1) Case mdblKazeiSyouyo = 363000 To 394999 mdblRitu = CDbl(0.12) Case mdblKazeiSyouyo = 395000 To 425999 mdblRitu = CDbl(0.14) Case mdblKazeiSyouyo = 426000 To 549999 mdblRitu = CDbl(0.16) Case mdblKazeiSyouyo = 550000 To 667999 mdblRitu = CDbl(0.18) Case mdblKazeiSyouyo = 668000 To 713999 mdblRitu = CDbl(0.2) Case mdblKazeiSyouyo = 714000 To 749999 mdblRitu = CDbl(0.22) Case mdblKazeiSyouyo = 750000 To 790999 mdblRitu = CDbl(0.24) Case mdblKazeiSyouyo = 791000 To 846999 mdblRitu = CDbl(0.26) Case mdblKazeiSyouyo = 847000 To 916999 mdblRitu = CDbl(0.28) Case mdblKazeiSyouyo = 917000 To 1279999 mdblRitu = CDbl(0.3) Case mdblKazeiSyouyo = 1280000 To 1481999 mdblRitu = CDbl(0.32) Case mdblKazeiSyouyo = 1482000 To 1760999 mdblRitu = CDbl(0.35) Case Is <= 1761000 mdblRitu = CDbl(0.38) End Select Case Is = 1 Select Case mdblKazeiSyouyo Case Is < 94000 mdblRitu = CDbl(0) Case mdblKazeiSyouyo = 94000 To 242999 mdblRitu = CDbl(0.02) Case mdblKazeiSyouyo = 252000 To 281999 mdblRitu = CDbl(0.04) Case mdblKazeiSyouyo = 282000 To 337999 mdblRitu = CDbl(0.06) Case mdblKazeiSyouyo = 338000 To 364999 mdblRitu = CDbl(0.08) Case mdblKazeiSyouyo = 365000 To 393999 mdblRitu = CDbl(0.1) Case mdblKazeiSyouyo = 394000 To 421999 mdblRitu = CDbl(0.12) Case mdblKazeiSyouyo = 422000 To 454999 mdblRitu = CDbl(0.14) Case mdblKazeiSyouyo = 455000 To 549999 mdblRitu = CDbl(0.16) Case mdblKazeiSyouyo = 550000 To 688999 mdblRitu = CDbl(0.18) Case mdblKazeiSyouyo = 689000 To 737999 mdblRitu = CDbl(0.2) Case mdblKazeiSyouyo = 738000 To 774999 mdblRitu = CDbl(0.22) Case mdblKazeiSyouyo = 775000 To 816999 mdblRitu = CDbl(0.24) Case mdblKazeiSyouyo = 817000 To 875999 mdblRitu = CDbl(0.26) Case mdblKazeiSyouyo = 876000 To 948999 mdblRitu = CDbl(0.28) Case mdblKazeiSyouyo = 949000 To 1303999 mdblRitu = CDbl(0.3) Case mdblKazeiSyouyo = 1304000 To 1509999 mdblRitu = CDbl(0.32) Case mdblKazeiSyouyo = 1510000 To 1793999 mdblRitu = CDbl(0.35) Case Is >= 1794000 mdblRitu = CDbl(0.38) End Select Case Is = 2 Select Case mdblKazeiSyouyo Case Is < 133000 mdblRitu = CDbl(0) Case mdblKazeiSyouyo = 133000 To 268999 mdblRitu = CDbl(0.02) Case mdblKazeiSyouyo = 269000 To 311999 mdblRitu = CDbl(0.04) Case mdblKazeiSyouyo = 312000 To 368999 mdblRitu = CDbl(0.06) Case mdblKazeiSyouyo = 369000 To 392999 mdblRitu = CDbl(0.08) Case mdblKazeiSyouyo = 393000 To 419999 mdblRitu = CDbl(0.1) Case mdblKazeiSyouyo = 420000 To 449999 mdblRitu = CDbl(0.12) Case mdblKazeiSyouyo = 450000 To 483999 mdblRitu = CDbl(0.14) Case mdblKazeiSyouyo = 484000 To 549999 mdblRitu = CDbl(0.16) Case mdblKazeiSyouyo = 550000 To 709999 mdblRitu = CDbl(0.18) Case mdblKazeiSyouyo = 710000 To 761999 mdblRitu = CDbl(0.2) Case mdblKazeiSyouyo = 762000 To 800999 mdblRitu = CDbl(0.22) Case mdblKazeiSyouyo = 801000 To 843999 mdblRitu = CDbl(0.24) Case mdblKazeiSyouyo = 844000 To 904999 mdblRitu = CDbl(0.26) Case mdblKazeiSyouyo = 905000 To 979999 mdblRitu = CDbl(0.28) Case mdblKazeiSyouyo = 980000 To 1327999 mdblRitu = CDbl(0.3) Case mdblKazeiSyouyo = 1328000 To 1537999 mdblRitu = CDbl(0.32) Case mdblKazeiSyouyo = 1538000 To 1827999 mdblRitu = CDbl(0.35) Case Is >= 1828000 mdblRitu = CDbl(0.38) End Select Case Is = 3 Select Case mdblKazeiSyouyo Case Is < 171000 mdblRitu = CDbl(0) Case mdblKazeiSyouyo = 171000 To 294999 mdblRitu = CDbl(0.02) Case mdblKazeiSyouyo = 295000 To 344999 mdblRitu = CDbl(0.04) Case mdblKazeiSyouyo = 345000 To 397999 mdblRitu = CDbl(0.06) Case mdblKazeiSyouyo = 398000 To 416999 mdblRitu = CDbl(0.08) Case mdblKazeiSyouyo = 417000 To 444999 mdblRitu = CDbl(0.1) Case mdblKazeiSyouyo = 445000 To 476999 mdblRitu = CDbl(0.12) Case mdblKazeiSyouyo = 477000 To 512999 mdblRitu = CDbl(0.14) Case mdblKazeiSyouyo = 513000 To 556999 mdblRitu = CDbl(0.16) Case mdblKazeiSyouyo = 557000 To 729999 mdblRitu = CDbl(0.18) Case mdblKazeiSyouyo = 730000 To 785999 mdblRitu = CDbl(0.2) Case mdblKazeiSyouyo = 786000 To 825999 mdblRitu = CDbl(0.22) Case mdblKazeiSyouyo = 826000 To 871999 mdblRitu = CDbl(0.24) Case mdblKazeiSyouyo = 872000 To 933999 mdblRitu = CDbl(0.26) Case mdblKazeiSyouyo = 934000 To 1011999 mdblRitu = CDbl(0.28) Case mdblKazeiSyouyo = 1012000 To 1351999 mdblRitu = CDbl(0.3) Case mdblKazeiSyouyo = 1352000 To 1565999 mdblRitu = CDbl(0.32) Case mdblKazeiSyouyo = 1566000 To 1860999 mdblRitu = CDbl(0.35) Case Is >= 1861000 mdblRitu = CDbl(0.38) End Select Case Is = 4 Select Case mdblKazeiSyouyo Case Is < 210000 mdblRitu = CDbl(0) Case mdblKazeiSyouyo = 210000 To 299999 mdblRitu = CDbl(0.02) Case mdblKazeiSyouyo = 300000 To 377999 mdblRitu = CDbl(0.04) Case mdblKazeiSyouyo = 378000 To 423999 mdblRitu = CDbl(0.06) Case mdblKazeiSyouyo = 424000 To 443999 mdblRitu = CDbl(0.08) Case mdblKazeiSyouyo = 444000 To 469999 mdblRitu = CDbl(0.1) Case mdblKazeiSyouyo = 470000 To 503999 mdblRitu = CDbl(0.12) Case mdblKazeiSyouyo = 504000 To 542999 mdblRitu = CDbl(0.14) Case mdblKazeiSyouyo = 543000 To 591999 mdblRitu = CDbl(0.16) Case mdblKazeiSyouyo = 592000 To 750999 mdblRitu = CDbl(0.18) Case mdblKazeiSyouyo = 751000 To 809999 mdblRitu = CDbl(0.2) Case mdblKazeiSyouyo = 810000 To 851999 mdblRitu = CDbl(0.22) Case mdblKazeiSyouyo = 852000 To 900999 mdblRitu = CDbl(0.24) Case mdblKazeiSyouyo = 901000 To 962999 mdblRitu = CDbl(0.26) Case mdblKazeiSyouyo = 963000 To 1042999 mdblRitu = CDbl(0.28) Case mdblKazeiSyouyo = 1043000 To 1376000 mdblRitu = CDbl(0.3) Case mdblKazeiSyouyo = 1377000 To 1593999 mdblRitu = CDbl(0.32) Case mdblKazeiSyouyo = 1594000 To 1893999 mdblRitu = CDbl(0.35) Case Is >= 1894000 mdblRitu = CDbl(0.38) End Select Case Is = 5 Select Case mdblKazeiSyouyo Case Is < 243000 mdblRitu = CDbl(0) Case mdblKazeiSyouyo = 243000 To 299999 mdblRitu = CDbl(0.02) Case mdblKazeiSyouyo = 300000 To 405999 mdblRitu = CDbl(0.04) Case mdblKazeiSyouyo = 406000 To 449999 mdblRitu = CDbl(0.06) Case mdblKazeiSyouyo = 450000 To 471999 mdblRitu = CDbl(0.08) Case mdblKazeiSyouyo = 472000 To 495999 mdblRitu = CDbl(0.1) Case mdblKazeiSyouyo = 496000 To 530999 mdblRitu = CDbl(0.12) Case mdblKazeiSyouyo = 531000 To 573999 mdblRitu = CDbl(0.14) Case mdblKazeiSyouyo = 574000 To 621999 mdblRitu = CDbl(0.16) Case mdblKazeiSyouyo = 622000 To 770999 mdblRitu = CDbl(0.18) Case mdblKazeiSyouyo = 771000 To 833999 mdblRitu = CDbl(0.2) Case mdblKazeiSyouyo = 834000 To 878999 mdblRitu = CDbl(0.22) Case mdblKazeiSyouyo = 879000 To 928999 mdblRitu = CDbl(0.24) Case mdblKazeiSyouyo = 929000 To 991999 mdblRitu = CDbl(0.26) Case mdblKazeiSyouyo = 992000 To 1073999 mdblRitu = CDbl(0.28) Case mdblKazeiSyouyo = 1074000 To 1400999 mdblRitu = CDbl(0.3) Case mdblKazeiSyouyo = 1401000 To 1621999 mdblRitu = CDbl(0.32) Case mdblKazeiSyouyo = 1622000 To 1927999 mdblRitu = CDbl(0.35) Case Is >= 1928000 mdblRitu = CDbl(0.38) End Select Case Is = 6 Select Case mdblKazeiSyouyo Case Is < 275000 mdblRitu = CDbl(0) Case mdblKazeiSyouyo = 275000 To 332999 mdblRitu = CDbl(0.02) Case mdblKazeiSyouyo = 333000 To 430999 mdblRitu = CDbl(0.04) Case mdblKazeiSyouyo = 431000 To 475999 mdblRitu = CDbl(0.06) Case mdblKazeiSyouyo = 476000 To 498999 mdblRitu = CDbl(0.08) Case mdblKazeiSyouyo = 499000 To 524999 mdblRitu = CDbl(0.1) Case mdblKazeiSyouyo = 525000 To 558999 mdblRitu = CDbl(0.12) Case mdblKazeiSyouyo = 559000 To 603999 mdblRitu = CDbl(0.14) Case mdblKazeiSyouyo = 604000 To 651999 mdblRitu = CDbl(0.16) Case mdblKazeiSyouyo = 652000 To 791999 mdblRitu = CDbl(0.18) Case mdblKazeiSyouyo = 792000 To 858999 mdblRitu = CDbl(0.2) Case mdblKazeiSyouyo = 859000 To 904999 mdblRitu = CDbl(0.22) Case mdblKazeiSyouyo = 905000 To 956999 mdblRitu = CDbl(0.24) Case mdblKazeiSyouyo = 957000 To 1020999 mdblRitu = CDbl(0.26) Case mdblKazeiSyouyo = 1021000 To 1105999 mdblRitu = CDbl(0.28) Case mdblKazeiSyouyo = 1106000 To 1424999 mdblRitu = CDbl(0.3) Case mdblKazeiSyouyo = 1425000 To 165099 mdblRitu = CDbl(0.32) Case mdblKazeiSyouyo = 1651000 To 1960999 mdblRitu = CDbl(0.35) Case Is >= 1961000 mdblRitu = CDbl(0.38) End Select Case Is >= 7 Select Case mdblKazeiSyouyo Case Is < 308000 mdblRitu = CDbl(0) Case mdblKazeiSyouyo = 308000 To 371999 mdblRitu = CDbl(0.02) Case mdblKazeiSyouyo = 372000 To 455999 mdblRitu = CDbl(0.04) Case mdblKazeiSyouyo = 456000 To 501999 mdblRitu = CDbl(0.06) Case mdblKazeiSyouyo = 502000 To 526999 mdblRitu = CDbl(0.08) Case mdblKazeiSyouyo = 527000 To 552999 mdblRitu = CDbl(0.1) Case mdblKazeiSyouyo = 553000 To 587999 mdblRitu = CDbl(0.12) Case mdblKazeiSyouyo = 588000 To 631999 mdblRitu = CDbl(0.14) Case mdblKazeiSyouyo = 632000 To 682999 mdblRitu = CDbl(0.16) Case mdblKazeiSyouyo = 683000 To 811999 mdblRitu = CDbl(0.18) Case mdblKazeiSyouyo = 812000 To 883999 mdblRitu = CDbl(0.2) Case mdblKazeiSyouyo = 884000 To 931999 mdblRitu = CDbl(0.22) Case mdblKazeiSyouyo = 932000 To 984999 mdblRitu = CDbl(0.24) Case mdblKazeiSyouyo = 985000 To 1049999 mdblRitu = CDbl(0.26) Case mdblKazeiSyouyo = 1050000 To 1136999 mdblRitu = CDbl(0.28) Case mdblKazeiSyouyo = 1137000 To 1448999 mdblRitu = CDbl(0.3) Case mdblKazeiSyouyo = 1449000 To 1678999 mdblRitu = CDbl(0.32) Case mdblKazeiSyouyo = 1679000 To 1993999 mdblRitu = CDbl(0.35) Case Is >= 1994000 mdblRitu = CDbl(0.38) End Select End Select End Sub '乙欄のとき Private Sub CalculateRitu2() Select Case mdblKazeiSyouyo Case Is < 241000 mdblRitu = CDbl(0.1) Case mdblKazeiSyouyo = 241000 To 304999 mdblRitu = CDbl(0.2) Case mdblKazeiSyouyo = 305000 To 562999 mdblRitu = CDbl(0.3) Case Is >= 563000 mdblRitu = CDbl(0.38) End Select End Sub