こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2007-02-17 23:13:15

QNo.2761556

困ってます

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

例えば、「マクロの記録」で、1~2ページを印刷すると
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1, Collate:=True

の様なマクロ(VBA)が出来ます
From:=1 が開始ページ、To:=2 が終了ページなのが判ります
あとは、この 2 の部分にページを計算してはめ込めば出来ると思います

投稿日時 - 2007-02-17 23:51:00

補足

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

投稿日時 - 2007-02-18 00:45:09

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

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

投稿日時 - 2007-02-18 14:28:44

お礼

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

投稿日時 - 2007-02-19 23:30:16

ANo.2

>sheet1のA1に計算結果があるとして、マクロの記述はどうすればいいのでしょう? (To:=A1 などでしょうか?)

To:=Range("A1")

で、良いと思います

ただ、このままだとマクロ実行で、すぐ印刷が始まってしまいます
小窓で「○ページ印刷します」と表示して、「OK」を押すと印刷が始まる
というような事も出来ます
ぜひ、マクロ(VBA)を勉強して使いやすい物にしてください(^_^)v

投稿日時 - 2007-02-18 08:26:53

あなたにオススメの質問