- ベストアンサー
印刷するページを自動で増減したいのですが・・・
エクセル2000です。 シート1で入力したデーターをシート2に抽出して印刷する際に、条件によって印刷ページを増減する方法はありませんか? データーが、1~10件なら1ページ、11~20件なら2ページ・・・、 と言う具合なのですが、条件分岐がうまくいかなくて困っています(VBA)。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
あっ!、一部コードが違ってました(^^; p = Int(a-1 / 10) + 1 の行なのですが正しくは、下記の通りです。 p = Int((a - 1) / 10) + 1
その他の回答 (1)
- wildcard
- ベストアンサー率54% (54/100)
質問の意図が、良く分かってないかも知れませんが… 印刷ページ数の設定は、1~2ページを印刷する場合 ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2 _ , Copies:=1, Collate:=True となります。1ページ目のみを印刷する場合、上記のTo:=2をTo:=1に、 2ページ目のみを印刷する場合、上記のFrom:=1をFrom:=2に変更するだけです。 また、シート1のデータ量に応じて条件分岐させる場合、 1行目をタイトル行、データは2行目以降と仮定すると。 a = Range("A1").CurrentRegion.Rows.Count - 1 'として、aに代入された値が、入力されたデータ行数になります。 '次に、Int関数を使って、ページ数pを求めます。 p = Int(a-1 / 10) + 1 'あとは、印刷するだけですので、下記の用になるハズです。 ActiveWindow.SelectedSheets.PrintOut From:=p, To:=p _ , Copies:=1, Collate:=True 'ただし、シート1のページ設定は、Excel上で完了していると仮定して 'おりますので、御了承下さい。また変数aとpは、事前に長整数型で宣言 'しておいて下さい。
補足
回答していただき大変ありがとうございます。 ですが、PrintOut に代入しようとすると「数値は1から32767の範囲でなければなりません」のエラーメッセージがでてしまいます。最初の設定の仕方が悪いのでしょうか?
お礼
完璧です!。また何かありましたらよろしくお願い致します。