EXCEL VBA コンボ選択時 指定列まで非表示にして印刷範囲も再設定する

EXCELで横長に月次の明細等、履歴を残してゆく場合、印刷範囲が何ヶ月分と決まっている場合、必要な箇所のみ表示して、古い履歴列を非表示にしたい場合がある。

コンボ選択時に、非表示列を指定して、列を非表示にし、それと同時に印刷範囲も変更する。

Private Sub ComboBox1_Change()

Dim RC As Integer ‘行数
RC = ActiveSheet.Cells(Rows.Count, “B”).End(xlUp).Row + 1 ‘「合計」という文字列の入った結合セルのためプラス1

Dim n As Integer ‘リストインデックス
n = ComboBox1.ListIndex

Application.ScreenUpdating = False

Select Case n

Case 0 ‘全表示
Columns(“G:CL”).Hidden = False
ActiveSheet.PageSetup.PrintArea = “A3:T” & RC

Case 1 ‘履歴01 以下繰り返し
Columns(“G:CL”).Hidden = False
Columns(“G:H”).Hidden = True
ActiveSheet.PageSetup.PrintArea = “A3:V” & RC

Case 2
Columns(“G:CL”).Hidden = False
Columns(“G:J”).Hidden = True
ActiveSheet.PageSetup.PrintArea = “A3:X” & RC

Case 3
Columns(“G:CL”).Hidden = False
Columns(“G:L”).Hidden = True
ActiveSheet.PageSetup.PrintArea = “A3:Z” & RC

End Select

Application.ScreenUpdating = True

End Sub