重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

変動するデータを自動的に範囲設定して印刷したいです。

エクセル2007を使用しています。
sheet1を元データとして、sheet2で元データの必要項目だけ選んで表を作成しています。
sheet2は5000行×15列の表で罫線も引いてます。
元データは毎回変動するので、データの入っているところだけ自動的に印刷できるようにしたいです。
行数が毎回変動します。列は15列で固定ですが、印刷は12列迄で固定です。
すいませんが、教えてください。

A 回答 (5件)

クリアするとエラー出ますね


対処してみました
こちらも一つ分からないことがあるので、補足願います
最終行に必ずデータの入る列はどの列になりますか?
現在は、A列の最終行を印刷の最終行としています
宜しくお願いします

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Long
For rng = 5000 To 1 Step -1
If Cells(rng, 1).Value <> "" Then Exit For
Next rng
If rng = 0 Then Exit Sub
ActiveSheet.PageSetup.PrintArea = "$A$1:$L$" & rng
End Sub

この回答への補足

A列で大丈夫です。
明日、トライしてみます!

補足日時:2009/03/12 19:10
    • good
    • 0
この回答へのお礼

お返事遅くなってしまい、すいませんでした。
上の内容でトライしてみましたが、
上手くいきませんでした。
でも、いろいろと調べてみたら、
A列~L列の印刷範囲設定とオートフィルタを
組み合わせたらできました。
フィルタの選択作業は増えますが
これで進めてみようと思います。
今までわがままに付き合っていただき
ほんとにありがとうございました。

お礼日時:2009/03/22 09:15

#2、#3です


関数では無理みたい
マクロでよいなら
印刷シートのシートタブを右クリック
一番下の「コードの表示」を選択
出てきた画面に下のコードをコピペ
出ている画面を閉じて、シートに戻り
試してみて

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Long
For rng = 5000 To 1 Step -1
If Cells(rng, 1).Value <> "" Then Exit For
Next rng
ActiveSheet.PageSetup.PrintArea = "$A$1:$L$" & rng
End Sub
    • good
    • 0
この回答へのお礼

お返事遅くなってすいません。
1回目はちゃんと元データの最終行(例えは1000行)まで
印刷範囲ができたのですが、
次に元データをクリアにしてから別のデータ(例えば2000行)を
貼り付けたら、
印刷範囲は1回目のデータまでしか(1000行)、
できません。。。
なぜでしょうか。
すいません。。。もし、もう少しわがままに付き合っていただけるなら、教えてください。

お礼日時:2009/03/11 00:41

#2です


>式を入れているせいでしょうか・・・。
その通りです
この方法は、A列の値、数式などを入力されたセルを数えて
その数だけ印刷行を設定するものなので


これもダメかな?

=INDIRECT("A1:L"&COUNTIF(A:A,"*?")+COUNT(A:A))

試してみてください
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
試してみましたが、
ダメでした。。。
でも、回答頂きほんとに
ありがとうございます。

お礼日時:2009/03/01 22:13

2007も同じだと思うので


名前の定義の名前に「Print_Area」を入力
参照設定に次の式を入力
=INDIRECT("A"&COUNTA(A:A)):L1
ここで一度OKで閉じる
データがあるにもかかわらず、印刷領域に入っていない行を数えて
先ほどの式を修正
例えば5行なら
=INDIRECT("A"&COUNTA(A:A)+5):L1
と変更します

ダメなら、パスして
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
やってみましたが、
行がデータによって印刷領域が変動しないです・・・。
5000行まで印刷範囲になってます・・・。
A列も元データが入力されていれば繁栄するように
式を入れているせいでしょうか・・・。

お礼日時:2009/02/27 00:12

VBAで設定するしかないと思います。

    • good
    • 0
この回答へのお礼

回答ありがとうございます。
VBAはまだまだ勉強不足です。
一度しっかり勉強してみようと思います。

お礼日時:2009/02/27 00:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!