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

締切り済みの質問

エクセルで途中の空白ページを印刷しない方法は・・・?

Excel2003で複数のページを印刷する際、途中の空白ページをとばして印刷をする事は可能でしょうか?

月に一度、30ページ~50ページ程度の印刷を行い、しかも空白ページの数・場所が毎月変化するので、自動で出来るようにするのが理想です。詳しくは無いのですがマクロ等を使用すれば出来るのでしょうか…。
現在は手動で印刷範囲を複数選択しております。

ちなみにExcel2002(使用経験はありません…)の製品ガイドページには、強化された印刷機能として「空白のページを印刷しない」が追加され、しかも自動的に実行されるとあります。2003ではその機能は引き継がれていないのでしょうか…。

また蛇足ですが、同じマイクロソフトのソフトで「Project 2003」では空白のページが印刷されないようにする方法として[ページ設定]→[データを含まないページを印刷する]のチェックボックス(!?)をオフにする、ともあります…。

この事について、もしどなたかご存知の方がいらっしゃいましたらお教え頂ければ幸いです。宜しくお願い致します。

投稿日時 - 2005-04-07 21:42:57

QNo.1317785

困ってます

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

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

回答(1)

ANo.1

ページ = シート? 空白ページ・・ フォームに未入力のシート?


とりあえず 印刷不要なシートを 非表示にする。

判定基準  フォームの設定された シート の
 空白判定領域 に 式、数、文字 の 入力の無いものを 空白ページと判定し 非表示にする。


・非表示を 全て 表示 するマクロで復活


↓マクロ 標準モジュール ↓

Sub フォーム未記入シートを非表示()

空白判定領域 = "B2:D3,B5:D6" '範囲指定
'フォームの初期設定 行,列を除外 "B3:D10"
'フォームの入力項目 複数設定 "B2:D5,B10:D10"

For Each シート In ActiveWorkbook.Worksheets
On Error Resume Next
With シート.Range(空白判定領域)
入力数 = 0
入力数 = .SpecialCells(xlCellTypeFormulas).Count
入力数 = 入力数 + .SpecialCells(xlCellTypeConstants).Count

If 0 = 入力数 Then シート.Visible = False

End With
Next

End Sub




Sub 非表示のシートを全部表示()
For Each シート In ActiveWorkbook.Worksheets

If シート.Visible = False Then
シート.Visible = True
End If

Next

End Sub

投稿日時 - 2005-04-08 13:27:04

補足

at121様、ご回答頂きありがとうございます。分かりづらい書き方で申し訳ありませんでした…。

1枚のシートに複数頁に渡るデータを入力し印刷しております。例えば3頁にわたる文書の2頁目が空白の場合、その頁をとばして1頁目と3頁目だけを自動で印刷したいのです…。

上の条件で試しに印刷した場合、2頁目に文字・書式・数式が全く無い場合でも白紙で印刷されてしまいます。この状態を解消するには、やはり手動で複数の印刷範囲を設定するしかないのでしょうか…。

投稿日時 - 2005-04-08 15:09:24

あなたにオススメの質問