dポイントプレゼントキャンペーン実施中!

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

A 回答 (8件)

> 1.名前ボックスにプリントエリア、プリントタイトルという2つの名前も入っています



プリントタイトルの範囲が表の2行目より上であればこれは問題ないです。

2.空欄行に色々な計算式が入っています。これは選択した表のエリア外からデータを読みこんだりしています

式があっても、答えが "" で見えなくなっているのなら問題ないのですが・・・。ひょとして""ではなく"  "とかになってます?

エクセルで空白と判断されてるかどうか、関数で、つまり=COUNTBLANK(範囲)で調べてみてください。
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/08/02 09:11

空白行を下から調べて非表示にするコードを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
    • good
    • 1

fusaboさんこんばんは。


merlionXXです。

>ちなみに表に名前を付けるのは
>挿入-名前-定義でよろしいのですよね?

はいそれでOKです。
一応、名前ボックス(A列の上あたり)で、「表」を選んでみて、正しく表が選択されているか確認してみてください。

コードは標準モジュールに書いてますね?
あとは、表と名づけた範囲の中で空欄行には、たとえば番号をふった列など空白でない列があったりしますか?もしそうであればコードを変えなくてはなりません。
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/08/01 19:06

多数の人が使うのであれば、マクロを組み込んでしまうのが一番いいのではないでしょうか?



まず表に名前ボックスで名前を付けてください。
仮に、「表」という名前にした場合、サンプルコードは以下の通りです。

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
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/08/01 16:22

No.2です。


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

>マクロの作り方は簡単にできますでしようか?



[ツール]-[マクロ]-[新しいマクロの記録]で、エクセルの操作を記録してくれます。

通常は記録終了ボタンが表示されたツールバーが表示されるので、閉じないで置いて作業の邪魔にならない位置に移動しておいてください。

表の範囲を選択
オートフィルタのセット
空白以外の抽出
印刷

と作業をして、マクロの記録終了ボタンをクリック。

http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vb …
http://www.moug.net/skillup/ebb/evbb/evbb001-1.htm
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/08/01 11:23

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2006/08/01 11:25

オートフィルタを使います。



表全体を選択してフィルタをセット
項目のところを「空白以外のセル」で抽出

記録マクロを使って、印刷までの操作を登録してしまう事も可能です。
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/08/01 09:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています