• ベストアンサー

エクセルで空行を印刷しない方法

50行×30列の表を仕事で使っています。 51行目には1~50行の集計が出てきます。 印刷を押すとこの表が印刷されますが、 使っている行が1行目の場合だけのときも2~50行目の罫線が印刷されるので時間もかかります。 印刷範囲を指定すれば良いのですが沢山の人がこの表を使って印刷しているので面倒臭がっています。 簡単な方法で入力行と集計行のみ印刷する方法は有りますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.7

> 1.名前ボックスにプリントエリア、プリントタイトルという2つの名前も入っています プリントタイトルの範囲が表の2行目より上であればこれは問題ないです。 2.空欄行に色々な計算式が入っています。これは選択した表のエリア外からデータを読みこんだりしています 式があっても、答えが "" で見えなくなっているのなら問題ないのですが・・・。ひょとして""ではなく"  "とかになってます? エクセルで空白と判断されてるかどうか、関数で、つまり=COUNTBLANK(範囲)で調べてみてください。

fusabo
質問者

お礼

""に直しましたところ完璧にできました。 アドバイスのお陰です。 ありがとうございました。 m(_ _)m

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

その他の回答 (7)

  • NCU
  • ベストアンサー率10% (32/318)
回答No.8

空白行を下から調べて非表示にするコードを2種類。 表の範囲に「Table」という名前が付けてある前提です。 Sub 空白非表示()   Dim i As Long, 終 As Range   With Range("Table")     i = .Rows.Count - 1     Set 終 = .Resize(i).Find("*", , xlFormulas, , xlByRows, xlPrevious)     If Not 終 Is Nothing Then       If 終.Row + 1 < .Row + i Then Range(終.Offset(1), _         .Rows(i)).EntireRow.Hidden = True     End If   End With End Sub Sub 空白非表示2()   Dim i As Long, j As Long   With Range("Table")     i = .Rows.Count - 1     For j = i To 1 Step -1       If WorksheetFunction.CountA(.Rows(j)) Then Exit For     Next     If j < i Then .Rows(j + 1).Resize(i - j).EntireRow.Hidden = True   End With End Sub Sub 復元()   Range("Table").EntireRow.Hidden = False End Sub

すると、全ての回答が全文表示されます。
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.6

fusaboさんこんばんは。 merlionXXです。 >ちなみに表に名前を付けるのは >挿入-名前-定義でよろしいのですよね? はいそれでOKです。 一応、名前ボックス(A列の上あたり)で、「表」を選んでみて、正しく表が選択されているか確認してみてください。 コードは標準モジュールに書いてますね? あとは、表と名づけた範囲の中で空欄行には、たとえば番号をふった列など空白でない列があったりしますか?もしそうであればコードを変えなくてはなりません。

fusabo
質問者

お礼

度々すみません。 コードは標準モジュールに書いて有ります。 ただ2点気になるのは 1.名前ボックスにプリントエリア、プリントタイトルという2つの名前も入っています 2.空欄行に色々な計算式が入っています。これは選択した表のエリア外からデータを読みこんだりしています 私が作った表ではないのでよくわからなくてごめんなさい。 お手数でなければこれらについてまたご教授下さい。

すると、全ての回答が全文表示されます。
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.5

多数の人が使うのであれば、マクロを組み込んでしまうのが一番いいのではないでしょうか? まず表に名前ボックスで名前を付けてください。 仮に、「表」という名前にした場合、サンプルコードは以下の通りです。 Sub test01() Dim i As Long With Range("表") Application.ScreenUpdating = False For i = 1 To .Rows.Count If Application.CountBlank(.Rows(i)) = .Columns.Count Then .Rows(i).EntireRow.Hidden = True Else .Rows(i).EntireRow.Hidden = False End If Next ActiveSheet.PrintPreview Application.ScreenUpdating = True .EntireRow.Hidden = False End With End Sub

fusabo
質問者

お礼

ありがとうございます。 作ってみたのですが、うまくいきません。 印刷プレビュー画面は出てきますが 空欄行も出てきます。 何かやり方がまずいのでしょうか・・ ちなみに表に名前を付けるのは 挿入-名前-定義でよろしいのですよね?

すると、全ての回答が全文表示されます。
  • wisemac21
  • ベストアンサー率39% (171/429)
回答No.4

No.2です。 空白行の行番号の範囲を選択した状態で、右クリックして「表示しない」を選択する。

すると、全ての回答が全文表示されます。
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.3

>マクロの作り方は簡単にできますでしようか? [ツール]-[マクロ]-[新しいマクロの記録]で、エクセルの操作を記録してくれます。 通常は記録終了ボタンが表示されたツールバーが表示されるので、閉じないで置いて作業の邪魔にならない位置に移動しておいてください。 表の範囲を選択 オートフィルタのセット 空白以外の抽出 印刷 と作業をして、マクロの記録終了ボタンをクリック。 http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vba_01.html http://www.moug.net/skillup/ebb/evbb/evbb001-1.htm

fusabo
質問者

お礼

ご親切にありがとうございました!

すると、全ての回答が全文表示されます。
  • wisemac21
  • ベストアンサー率39% (171/429)
回答No.2

空白行を一旦非表示にしてから、印刷する方法もあります。

fusabo
質問者

お礼

回答ありがとうございます。 空白行を一気に非表示にする方法を教えて頂けますか?

すると、全ての回答が全文表示されます。
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

オートフィルタを使います。 表全体を選択してフィルタをセット 項目のところを「空白以外のセル」で抽出 記録マクロを使って、印刷までの操作を登録してしまう事も可能です。

fusabo
質問者

お礼

ありがとうございます。 マクロの作り方は簡単にできますでしようか?

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

関連するQ&A