'========================================================================================= ' 244 VLOOKUPで左端行から検索する '----------------------------------------------------------------------------------------- '【ヒント】 ' このマクロは、おためし機能の動作用のコードを含んでいます。(概ね下半分) ' ★★★の行またはサブプロシージャーが、タイトル機能に関係するコードです。(概ね上半分) '========================================================================================= ' ◆標準モジュールのコード◆ '----------------------------------------------------------------------------------------- Option Explicit Public タイトル As String Public スタイル As Long Public メッセージ As String Public 応答 As Variant '----------------------------------------------------------------------------------------- Sub おためしマクロ() おためしメッセージを準備する UserForm1.Show 'ユーザーフォームを表示する End Sub '----------------------------------------------------------------------------------------- Private Sub おためしメッセージを準備する() Worksheets("所得税").Select Range("A1").Select 'カーソルを定位置へ移動する タイトル = "500連発 第2弾 サンプルマクロ" スタイル = 64 'vbInformation End Sub '----------------------------------------------------------------------------------------- Sub Auto_Close() Application.DisplayAlerts = False '閉じる際に確認メッセージを出さない ActiveWorkbook.Close '現在開いているブックを閉じる End Sub '----------------------------------------------------------------------------------------- '========================================================================================= ' ◆UserForm1のコード◆ '----------------------------------------------------------------------------------------- Option Explicit Dim 検査値 As String '◆◆◆ Dim 範囲 As Range '◆◆◆ Dim 列番号 As Long '◆◆◆ Dim 検索の型 As Boolean '◆◆◆ Dim 配偶者 As Integer Dim 扶養人数 As Integer Dim 控除後給与 As Long Dim 控除率 As Integer Dim 加算額 As Long Dim 給与所得控除 As Long '----------------------------------------------------------------------------------------- Private Sub UserForm_Initialize() 'ユーザーフォームを初期化する TextBox1.Text = "" TextBox2.Text = "" End Sub '----------------------------------------------------------------------------------------- Private Sub CommandButton1_Click() If OptionButton1.Value = True Then 'オプションボタン1がクリックされていたら 配偶者 = 1 '配偶者あり Else 配偶者 = 0 '配偶者なし End If 扶養人数 = TextBox1.Text 'テキストボックス1の値を取得する 控除後給与 = TextBox2.Text UserForm1.Hide 'ユーザーフォームを非表示にする ' Set 範囲 = Range("税率!$D$11:税率!$G$16") '検索テーブルは税率シートのD11:G16セル範囲 列番号 = 3 '控除率は検索テーブルの左端から3列目 検索の型 = True '検索値未満で最も大きい値を検索する 控除率 = Application.VLookup(控除後給与, 範囲, 列番号, 検索の型) '◆◆◆ 控除率を検索する ' 列番号 = 4 '加算額は検索テーブルの左端から4列目 加算額 = Application.VLookup(控除後給与, 範囲, 列番号, 検索の型) '◆◆◆ 加算額を検索する 給与所得控除 = Application.RoundUp(控除後給与 * 控除率 / 100 + 加算額, 0) '給与所得控除額を計算する ' メッセージ = "控除後給与が " & 控除後給与 & "円の場合の、" & Chr(13) & Chr(13) & _ "給与所得控除は、" & 給与所得控除 & "円です" 応答 = MsgBox(メッセージ, スタイル, タイトル) Unload Me 'ユーザーフォームを閉じる Worksheets("Title").Select Range("O17").Select 'カーソルを定位置へ移動する End Sub '=========================================================================================