プロが教えるわが家の防犯対策術!

シート1のA列に以下の様な数式が200行近くあります。


・シート1のA列内容
=IF(Sheet2!A1="","",Sheet2!A1)
=IF(Sheet2!A1="","",Sheet2!A2)
空欄
=IF(Sheet2!A1="","",Sheet2!A4)
=IF(Sheet2!A1="","",Sheet2!A5)
空欄
=IF(Sheet2!A1="","",Sheet2!A6)
=IF(Sheet2!A1="","",Sheet2!A7)
  ・
  ・
  ・


他の列にはなにもありません。




シート2で文字列を上から入力していき、
シート1に表示された部分を印刷しております。

日によってシート2で入力する行数は異なります。


A1から文字列が入っている最後の行まで印刷できればいいのですが、
そのまま印刷すると空白の「""」の計算部分まで印刷範囲になり、
ページ数が必ず3ページになります。

毎回入力した部分の行までのページ数を印刷時に指定して印刷しています。


急いでいる時などページ範囲を指定するのを忘れることが多く、
そのまま全ページ印刷されて白紙の用紙が排出されるのが面倒です。


マクロ等でも良いので自動で「""」の部分が印刷されない又は印刷範囲外にする
又は、文字列が入っている部分までを印刷する方法、または「""」の数式結果の部分を削除する方法は無いでしょうか?

A 回答 (2件)

こんにちは



>マクロ等でもよいので
とのことなので、マクロでの回答です。

印刷範囲を設定するだけでは手間がほとんど変わらないので、ボタン等(またはコマンド)に登録して、これを実行することで印刷までするようにしてあります。

Sub Sample()
Dim rw As Long

For rw = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Cells(rw, 1).Value <> "" Then Exit For
Next rw

ActiveSheet.PageSetup.PrintArea = Cells(1, 1).Resize(rw, 2).Address
ActiveSheet.PrintPreview
End Sub

※ 上記では印刷するかわりに、印刷プレビューにしてあります。
 PrintPreviewの部分をPrintOutにすれば、直接印刷するようになります。
https://docs.microsoft.com/ja-jp/office/vba/api/ …

※ 1列のみで良いものと推察しますが、印刷範囲の指定はB列まで含む範囲にしてあります。
これは、印刷対象が無い場合に、印刷範囲の設定を1セルだけにすると、警告がでるのを避けるためです。(A列だけでページ幅全部を使ってしまっているような場合には、A列のみの指定に変えてください)
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
""が発生までカウントするのはこのように記述すれば良いのですね。
意図した場所まで自動で印刷範囲が指定されワンボタンでばっちり印刷まで行うことが出来ました。
警告の件まで教えて頂きありがとうございました。

お礼日時:2020/04/23 22:13

こんにちは!



一案です。
印刷する前に「空白以外」でフィルタを掛けてみてはどうでしょうか?

その一連の操作をVBAでやってみました。
↓のコードをSheet1のシートモジュールにして、マクロを実行してみてください。

Sub 印刷()
 Range("A:A").AutoFilter field:=1, Criteria1:="<>"
  If Cells(Rows.Count, "A").End(xlUp).Row > 1 Then
   ActiveSheet.PrintPreview '//★//
  Else
   MsgBox "印刷k可能データなし"
  End If
   ActiveSheet.AutoFilterMode = False
End Sub

※ とりあえず「印刷プレビュー」でやめています。
すぐに印刷したい場合は「★」の行を
>ActiveSheet.PrintOut

に変更してください。m(_ _)m
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

3、6・・・行目の空欄も印刷範囲に入れる必要がありました。
説明不足がありお手数おかけしまして申し訳ございません。

フィルタはこうやってかけるのですね。
今後の参考にさせて頂きます。
丁寧に教えて頂きまして誠にありがとうございました。

お礼日時:2020/04/23 22:13

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

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


このQ&Aを見た人がよく見るQ&A