• ベストアンサー

エクセルで印刷ページ数の制御

CSV形式の抽出データをエクセルにコピーし、別のシートに必要なデータを参照(=Sheet2!A2)や、年齢計算などをして、印刷するのですが。 データ数が決まっておらず、印刷時に計算式が入っているため、自動では計算式が入っているセルまで印刷してしまうので。 現状では、印刷件数が1ページに10件分として45件なら5ページまでと手入力しているのですが、データ数から印刷ページ数を自動設定して印字するようなマクロなどよい方法は無いでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.1

例えば、「マクロの記録」で、1~2ページを印刷すると ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1, Collate:=True の様なマクロ(VBA)が出来ます From:=1 が開始ページ、To:=2 が終了ページなのが判ります あとは、この 2 の部分にページを計算してはめ込めば出来ると思います

beer-daisuki
質問者

補足

早速回答ありがとうございます。 申し訳ないのですが、計算結果のはめ込み方が分りません? sheet1のA1に計算結果があるとして、マクロの記述はどうすればいいのでしょう? (To:=A1 などでしょうか?) 教えてもらえますでしょうか?

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

>データ数から印刷ページ数を自動設定 データ数は >データ数が決まっておらず、であっても d=range("A65536").End(xlUp).Row などで知れるが、 >印刷時に計算式が入っているため、自動では計算式が入っているセルまで印刷してしまうので・・ その印刷から省く行数や行はプログラム的に目印は何ですか。 第何行以下は印刷対象としないとかになっているの? そういうことって、この質問の回答者が知る必要が有るのでは。 >To:=A1  右は値を指定するものです。 VBAでは値はrange("A1").Valueと指定します。初歩的なことです。 少し難しいことをやるのが早すぎる感じ。

beer-daisuki
質問者

お礼

皆さんありがとうございました。 今後皆さんにあまり頼ることのないように、色々勉強して行きたいと思います。

すると、全ての回答が全文表示されます。
  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.2

>sheet1のA1に計算結果があるとして、マクロの記述はどうすればいいのでしょう? (To:=A1 などでしょうか?) To:=Range("A1") で、良いと思います ただ、このままだとマクロ実行で、すぐ印刷が始まってしまいます 小窓で「○ページ印刷します」と表示して、「OK」を押すと印刷が始まる というような事も出来ます ぜひ、マクロ(VBA)を勉強して使いやすい物にしてください(^_^)v

すると、全ての回答が全文表示されます。

関連するQ&A