[[20150630222529]] 『特定の列に入力があるページのみ印刷する方法』(じゅん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『特定の列に入力があるページのみ印刷する方法』(じゅん)

Aというファイルの"抽出先"というシートに他のファイルより必要項目を抽出して張り付け印刷するマクロを作成しました。(日によって抽出するデータ量が異なります)
必要項目だけを貼り付けたページのみを印刷したいのですが、A列の100まで数式を入力しているので、その数式が入力されている全てのページが印刷されてしまいます。

そこで、抽出先シートのB列にデータが入っているページのみ印刷したいのですが、以下のVBAでは上手くできません。

Sub 必要ページのみ印刷()

    Dim ws As Worksheet
    For Each ws In Worksheets("データ抽出先")
        If IsNumeric(ws.Range("B1:B100")) Then ws.PrintOut
    Next
End Sub

お力添え宜しくお願いします。

< 使用 Excel:Excel2007、使用 OS:WindowsXP >


 よくわかりませんが、そもそも

 For Each ws In Worksheets("データ抽出先")

 Worksheets("データ抽出先") というものはありません。記述するなら Worksheet("データ抽出先")
 で、そこからセルを取り出したいなら、取り出す変数(コードでは ws)はRange型変数でなければいけません。

 ところで、1ページ目はすべて数式による空白、なので1ページ目は印刷したくないということですか?

 で、A列の数式に与えている参照セルがB列で、そこに数字が入っていればA列に値が入るということでしょうか?

(β) 2015/07/01(水) 07:18


 要件が不明なところもありますが、いずれにしても、改ページを調べて、そのページの内容をチェックして判断するのは
 可能ですけど、結構コードが面倒になります。

 ちょっと、横着ですが、以下でよろしいのでは?

 Sub Test()
    Dim w As Variant

    With Sheets("データ抽出先").UsedRange
        w = .Formula
        .Value = .Value
        .Parent.PrintOut
        .Value = w
    End With

 End Sub

(β) 2015/07/01(水) 07:58


不明確な質問にも関わらずお答えいただきありがとうございました。何をしたいかが伝わりにくい内容でした、申し訳ありません。もう一度、説明させていただきます。
数式(透明表示)がA列の1から100まで入っているシートに、他ファイルからデータを抽出してA列以外に貼り付け、まとまった一つの表を作ります。印刷したいのはまとまった表の部分のみですが、A列の影響で白紙が何枚も印刷されます。その為、手動で印刷プレビューをみてから、可視ページのみ印刷をしています。
A列を無視して、印刷できるようにできませんでしょうか?
宜しくお願いします。
(じゅん) 2015/07/02(木) 16:10

 私がアップしたコードでは、数式が入って""になっているところは無視されると思うのですが
 印刷されてしまいましたか?

(β) 2015/07/02(木) 17:18


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.