[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『入力行に応じて、印刷するシートを増やしたい』(ハムヲ)
はじめて質問をさせていただきます。
至らない部分があるかもしれませんが、お許しください。
sheet1で入力フォームを作成しており、1行から20行まで変動で入力をします。
1行から5行まで入力→sheet2を印刷
1行から10行まで入力→sheet1とsheet2を印刷
1行から15行まで入力→sheet1とsheet2とsheet3を印刷
1行から20行まで入力→sheet1とsheet2とsheet3とsheet4を印刷
上記のとおりに印刷を行いたいのですが、どのようにしたらよいでしょうか?
< 使用 Excel:Excel2010、使用 OS:unknown >
VBAになりますが。
Sub Test() Dim v As Variant
With Sheets("Sheet1").UsedRange
Select Case .Rows.Count Case 1 To 5 v = Array("Sheet1") Case 6 To 10 v = Array("Sheet1", "Sheet2") Case 11 To 15 v = Array("Sheet1", "Sheet2", "Sheet3") Case Else v = Array("Sheet1", "Sheet2", "Sheet3", "Sheet4") End Select
Sheets(v).PrintOut
End With
End Sub
(β) 2015/07/02(木) 20:22
Sheets(v).PrintOut
この部分でエラーがでてしまいました…。
入力して判断するセルはB1〜B20になります。
入力状況により、1行目と3行目を入力する場合もあり空欄の行が発生することもあります。
この場合は判断する部分をシートではなく、セルで判断しなくてはならなくてはいけないのでしょうか。
教えてばかりで申し訳ありません。
どうぞよろしくお願いいたします。
(ハムヲ) 2015/07/03(金) 14:15
途中に空欄がでてもOKです。 1行目と3行目に入力があり、2行目が空欄の場合も、マクロで取得する行数は3になりますので。
ただし、B1:B20の範囲以外に値(適用とか備考)があった場合、それらも含めての行数になりますので シートレイアウトによっては、具合が悪いこともあるでしょうね。
なので、確実な B1:B20 のみをチェックして判断するように書き替えることは可能ですが
>>実際のシートに当てはめてみたところ Sheets(v).PrintOut この部分でエラーがでてしまいました…。
ここが気になります。なんというエラーでしたか?
(β) 2015/07/03(金) 14:25
もしかして、エラー 9 インデックスエラー でしたか? そうであれば、私がコードで使っている "Sheet1" や "Sheet2" は 「シート名」です。 実際のブックのシート名が、それらとは異なるなら、指定シートがないよ ということで インデックスエラーになりますけど?
(β) 2015/07/03(金) 16:41
エラーは気になりますが、以下。
Sub Test2() Dim v As Variant
With Sheets("Sheet1").UsedRange
Select Case .Range("B21").End(xlUp).Row 'B1:B20"の中の最終データ入力行 Case 1 To 5 v = Array("Sheet1") Case 6 To 10 v = Array("Sheet1", "Sheet2") Case 11 To 15 v = Array("Sheet1", "Sheet2", "Sheet3") Case Else v = Array("Sheet1", "Sheet2", "Sheet3", "Sheet4") End Select
Sheets(v).PrintOut
End With
End Sub
(β) 2015/07/03(金) 16:51
お返事ありがとうございます。
シート名を変更し、再度実行したところうまくできました。
ですが、出力が大量になりました…。
出力の作業を何度も繰り返しているようです。
指定しているシートの他にもたくさんのシートが存在するからでしょうか…?
それとも引用している値がよくないのでしょうか…?
土曜日、日曜日は確認することができないため
月曜日に改めて教えていただいたもので作業したいとおもいます。
確認でき次第、またこちらに書かせていただきます。
(ハムヲ) 2015/07/03(金) 18:20
>>出力の作業を何度も繰り返しているようです。
それは、ありえないですが、もしかして、このコードの中身を シートモジュールの Changeイベントあたりに書いたとか?
(β) 2015/07/03(金) 18:24
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.