• 締切済み

エクセルVBA

エクセル2003です エクセルの印刷レビュ-までのマクロをおしえてください *A列からQ列までで行は1~150で伸縮します  最終行をA5より下のA列のセルに値が連続で入っている最後が最終印刷範囲行とします *罫線ありです *1ページを30行とします *2ページ目からの先頭行に(A7:Q7)を印刷に入れたい *ヘッダーは右上に日付 *フッダーは右下にページ 現状では罫線で最終行が決まってしまいます 現状コード Sub 印刷() With ActiveSheet.PageSetup .PrintTitleRows = "$7:$7" .PrintTitleColumns = "" End With ActiveSheet.PageSetup.PrintArea = Range("A1:Q1").Resize(Range("A" & Rows.Count).End(xlUp).Row).Address With ActiveSheet.PageSetup .RightHeader = "&""MS Pゴシック,太字 斜体""&14&D" .RightFooter = "&""MS Pゴシック,太字 斜体""&14&P/&N" .PaperSize = xlPaperA4 .Zoom = 75 .PrintErrors = xlPrintErrorsDisplayed End With ActiveWindow.SelectedSheets.PrintPreview End Sub 罫線ではなくA列のセルに文字列等が入っている行を最終行にしたいのですが 教えて頂けないでしょうか? 出来れば説明付きでよろしくお願いします

みんなの回答

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

>出来なかった訳は別シートからA列をVBAでコピーしてきており空欄部分ではなく、0が入っていました >空欄と0も省き最終行を設定したいのですが、教えて頂けないでしょうか? コピー元では空白なのに、コピー先では 0と表示されるのであれば、そちらを直した方が良いと 思うのですが。とりあえずここでは コピーしたA列の 0 を空白に置き換えてしまっては如何でしょうか。 A5~A150は基本文字列のデータが入るべきだったとして Range("A5:A150").Replace What:="0", Replacement:="" Rnage("A1:Q" & Range("A" & Rows.Count).End(xlUp).Row).PrintPreview

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

VBAでデータが入っている範囲だけ印刷する という作業は結構ありますよね。 しかし、印刷のたびにページ設定が必要なのでしょうか。 私の経験では、印刷範囲以外は、手動で設定しておいて Rnage("A1:Q" & Range("A" & Rows.Count).End(xlUp).Row).PrintPreview といったように、印刷範囲をVBAで指定するほうが簡単で一般的だと思います。

KICHIMAROBON
質問者

お礼

ありがとうございます Range("A1:Q150").Resize(Range("A" & Rows.Count).End(xlUp).Row).Address で、出来ました。 出来なかった訳は別シートからA列をVBAでコピーしてきており空欄部分ではなく、0が入っていました 空欄と0も省き最終行を設定したいのですが、教えて頂けないでしょうか? よろしくお願いします

回答No.2

No.1 です。失礼しました。「usedarea」じゃなく、「usedrange」のことです。それと、これは罫線が引いてある空白セルも含んでしまうので、そういうのは含めないためには、usedrange でもなく、End(xlUp) で範囲を指定してあげる必要がありそうです。よく読まず、すみません。

KICHIMAROBON
質問者

お礼

ありがとうございます Range("A1:Q150").Resize(Range("A" & Rows.Count).End(xlUp).Row).Address で、出来ました。 出来なかった訳は別シートからA列をVBAでコピーしてきており空欄部分ではなく、0が入っていました 空欄と0も省き最終行を設定したいのですが、教えて頂けないでしょうか? よろしくお願いします

回答No.1

○○.printarea = ××.usedarea.address みたいな感じのコードでいかがでしょう。印刷範囲の設定については、参考 URL を。

参考URL:
http://www.moug.net/tech/exvba/0070011.html

関連するQ&A