• 締切済み

if関数?

こんにちは、いつもお世話になります。1シートをA4サイズで5ページに分けそれぞれのページにA~Eの表を作成しています。その5表に毎日数値を記入して印刷するのですが、日によっては「A,B,D」には数値を記入出来たが「C,E」はゼロという日が有ります。その場合個別に印刷すると良いのでしょうがそれでは手間なので、5ページ一括印刷で数字が記入されていないページは印刷されない様に設定出来ませんでしょうか?(なにぶん数字の入っていない紙を毎回印刷するのは無駄ですので)その場合「if関数」を使用するのでしょうか?お教え下さい。

みんなの回答

回答No.2

ページが縦に並んでいる場合に限りますが、 印刷したいページのみ表示させるようにオートフィルタを作ったらどうでしょうか? 作業列で印刷したいデータが入力されたらそのページ文の作業列に「1」になり、表示したくないなら「0」としておく。なんて考え方はあると思います。そして、印刷前には1を抽出して印刷すればよい。 抽出や印刷はマクロの記録で対応できると思います。 マクロを使いたくなければ、ユーザー設定とレポートでの印刷も使うことになると思います。

すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.1

エクセルの関数は印刷を左右できません。 こんなことはエクセルの関数の常識です。 またコンピュターにとっては、罫線や見出し文字もデータであって、普通言うデータのあるなしは、印刷メニューなどの印刷の処理では判断がつきません。 >設定出来ませんでしょうか 出来ないでしょう。 ーーー プログラム(VBA)を組めれば、質問者にとって意味の在るデータ(>数字が記入されていない)の部分のあるなしは判別できるかもしれないが(質問振りからそんなこと期待できず)、この方法も質問者には無理でしょう。 ーーー シートを見て質問者がデータの有無を判断し、印刷のページ指定をして、3,4ページまたは4ページを印刷しないように入力して、印刷すればよい。 ーーー 他の読者のために Sub test01() d = Range("A65536").End(xlUp).Row MsgBox "最下行は" & d & "行" 改ページ数 = ActiveSheet.HPageBreaks.Count For I = 1 To 改ページ数 改ページ位置行 = ActiveSheet.HPageBreaks(I).Location.Row MsgBox 改ページ位置行 改ページ位置列 = ActiveSheet.HPageBreaks(I).Location.Column 改ページ位置行列番号 = ActiveSheet.HPageBreaks(I).Location.Address Next '3番目は下記の行のセルの上 MsgBox "三番目の改ページ線は" & ActiveSheet.HPageBreaks(3).Location.Row & "行" End Sub そして A.第3と第4の間の、しかるべきセル(範囲)が空白か 何処か代表で1セルだけで判別できると少し簡単になる。 最悪では損範囲の全セルについて日空白セルがあるかチェック。 B.第4番目の改ページ線と最下行の間のしかるべきセル(範囲)が空白か で 印刷設定のページ設定を、プログラムでセットし印刷する。 この部分は印刷のマクロの記録で、コードの原型は出てくるので、それを修正して使える。

bosuketin
質問者

お礼

文頭にエクセル初心者と明記するのを忘れていました!というわけで初心者です。私がしたかった事はマクロ作成した印刷ボタンでA~Eまでの5ページを一括印刷する時に、経費節約の観点から数値入力してないページを飛ばして印刷する事です。ですから『もし数値入力していないページなら印刷しない』という設定になると思い『もし』という文字に着目して『if関数?』とタイトル付けしました。まぁそこが初心者なわけですが…どなたか『こういう風にすれば簡単に出来ますよ』と指南して下さる方がおられましたら宜しくお願いします。

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

関連するQ&A