エクセルVBAでお願いします。

下記のコードのように、実施人数をあるシートでカウントしていて、別のシートを印刷するようにしています。

その際、実施人数により印刷範囲を設定したいのですが、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

回答の条件
  • 1人2回まで
  • 登録:2007/10/13 12:25:45
  • 終了:2007/10/13 13:26:52

回答(1件)

id:airplant No.1

airplant回答回数220ベストアンサー獲得回数492007/10/13 13:10:32

ポイント60pt

「Select Case」をやめて、単純に計算式で表すということでどうでしょう。

印刷下端行 = 30 * INT((実施人数 + 1)/2)

1~2=1, 3~4=2, ・・・のようですので。

id:anglar

素早い回答ありがとうございました。単純明快。おっしゃるとおりです。

2007/10/13 13:26:15

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません