- ベストアンサー
VBAでVlookup関数を使って所得税の計算式を作る方法
- VBAのVlookup関数を使って所得税の計算式を作りたい場合、Select case文を活用することで計算方法を選択することができます。
- 具体的な計算方法は、所得税の基準額と税率を格納したシートを作成し、Vlookup関数を使って該当する税率を取得します。
- そして、入力されたデータを参照して所得税を計算することができます。Application.WorksheetFunction.Vlookup関数を使用することで、簡単に計算式を作成することができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Select Case で判定するなら Function 住民税( 基本給 as Single ) as Single dim 税率 as Single, 控除 as Single Select Case 基本給 case is <1 MsgBox "基本給の設定を点検してください" 住民税 = -1 Exit Function case 1 to 195000 税率 = 0.05 控除 = 0 case 19500.001 to 3300000 税率 = 0.10 控除 = 97500 case 3300000.001 to 6950000 税率 = 0.20 控除 = 427500 case 6950000.001 to 9000000 税率 = 0.23 控除 = 636000 case 9000000.001 to 18000000 税率 = 0.33 控除 = 1536000 case else ' 18000000を超える場合 税率 = 0.40 控除 = 2796000 end select 住民税 = 基本給 * 税率 - 控除 End Function といった具合でしょう ・・・ # お金を扱うならSingleよりCurrency(通貨型)でやったほうがいいかも
その他の回答 (1)
- howarage
- ベストアンサー率20% (2/10)
VBAじゃなく、Excelの関数だけでできるかと思います。 まず、所得税シートを以下のように作り直します。 所得 税率 控除 0 5% 0 1950001 10% 97500 3300001 20% 427500 6950001 23% 636000 9000001 33% 1536000 18000001 40% 2796000 で、所得を参照したVLOOKUP関数を使います、 =基本給のセル*Vlookup(基本給のセル, 所得税表の範囲, 2, True ) - Vlookup(基本給のセル,所得税表の範囲,3,True ) ※所得税の計算方法知らないので、まちがってたらすいません。 ここで、Vlookupの4番目の引数をTrueにするのがミソです。こうすると検索値未満の最大の値がヒットします。なので表の所得は1足した額にしてます。