下記のコードのように、実施人数をあるシートでカウントしていて、別のシートを印刷するようにしています。
その際、実施人数により印刷範囲を設定したいのですが、select case構文内のcase 1 to 2 などの分を全部入力するのが面倒です。どのように書き直したらいいですか?実施人数は200人程度です。
Sub 実施人数対応印刷プレビュー()
Dim 実施人数 As Integer
Dim 印刷下端行 As Integer
Select Case 実施人数
Case 1 To 2
印刷下端行 = 30
Case 3 To 4
印刷下端行 = 30 * 2
Case 5 To 6
印刷下端行 = 30 * 3
Case 7 To 8
印刷下端行 = 30 * 4
Case Else
???
End Select
With ActiveSheet.PageSetup
.PrintArea = "$A$1:" & Cells(印刷下端行, 44).Address
End With
ActiveSheet.PrintPreview
End Sub
「Select Case」をやめて、単純に計算式で表すということでどうでしょう。
印刷下端行 = 30 * INT((実施人数 + 1)/2)
1~2=1, 3~4=2, ・・・のようですので。
素早い回答ありがとうございました。単純明快。おっしゃるとおりです。