• 締切済み

文字が出ているところのみ印刷したい。

excel VBAの質問です。 列がA~BR、行が500行のシートがありまして、A~Gまでが1つの種類(合計10種類)で 分かれてるシートがあります。プリント範囲が1ページA6:G50(A1:A5は行のタイトル) 2ページ目がA51:G45と下に下がってから、又となりのH6:N50のページに移る感じで プリントしています。下に下がってから又上横にずれてという感じに10種類の300ページ を手動でプリントしていますが、空白のページがどうしてもプリントされてしまい、文字が入っているページのみ印刷したいのですが、どの様にVBAで記述したらよろしいのでしょうか? また、フッターでページ総数を入れていますがそれも空白のページが出た時は自動的に減らしたいです。 よろしくお願い致します。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

水平および垂直改ページを事前に設置しておく必要があります。 それと >文字が入っているページのみ印刷したい 印刷したくない範囲は,事前にキチンと「文字が入っていない」状態にしておく必要があります。 sub macro1()  dim r as long, c as long  dim s as string  for c = 1 to 70 step 7  for r = 6 to 500 step 45   if application.counta(cells(r, c).resize(45,7)) > 0 then   s = s & "," & cells(r,c).resize(45,7).address(false,false)   end if  next r  next c  activesheet.pagesetup.printarea = mid(s, 2, len(s))  activesheet.pagesetup.order = xldownthenover  ’念のため  activesheet.printout end sub

masm
質問者

お礼

keithinさん 早速ご教授いただきましてありがとうございます。 実行しましたところ、きちんと出来ました。 ありがとうございました。

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