[[20150630092736]] 『連番で印刷』(ゆう) ページの最後に飛ぶ

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

 

『連番で印刷』(ゆう)

初めまして。

シート1:印刷をする表があるシート
シート2:シート1に必要なデータをコピペするシート

上記とは別にデータの入ったブックがあり、そこから必要な分だけデータを一行ずつとってきてシート2にコピペします。品名、準備、納品日、など・・・。そのデータの数(行数)だけ、A列に連番を入力します。(ここまでは手動でやろうと思っています。)
番号を入力すると、シート1の表の外(印刷範囲外)のどこかのセルと連動させて、例えば”1”と入力すれば、シート2の”1”の行のデータを表に転記させます。(ここまでは関数でやっています)

ここから、印刷ボタンを押せば、シート2の連番最後まで1,2,3,4,5・・・と自動で印刷されるようにしたいのです。このようなことは可能でしょうか。ご教示をお願いいたします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 仮に、シート1の表の外(印刷範囲外)のどこかのセル を G1 としています。
 実際にはコード内の PrintPreview は PrintOutにしてください。

 Sub Test()
    Dim c As Range

    For Each c In Sheets("Sheet2").Range("A1", Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp))
        Sheets("Sheet1").Range("G1").Value = c.Value '★
        DoEvents        '念のため
        Sheets("Sheet1").PrintPreview   'PrintOut
    Next

 End Sub

(β) 2015/06/30(火) 09:57


βさん、ありがとうございます。

こんなに短いコードで出来るとは知りませんでした
もう一つお伺いしたいのですが、シート2のA列で、番号をふっていない行があった場合に、その行を飛ばして印刷することはできますでしょうか。
(ゆう) 2015/06/30(火) 10:30


 たとえば

 Sub Test2()
    Dim c As Range

    For Each c In Sheets("Sheet2").Range("A1", Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp))
        If Not IsEmpty(c) Then
        'If c.Value <> "" Then
            Sheets("Sheet1").Range("G1").Value = c.Value '★
            DoEvents        '念のため
            Sheets("Sheet1").PrintPreview   'PrintOut
        End If
    Next

 End Sub

 空欄が、本当の空欄ではなく、式で "" といったものが入っている見かけ上の空欄であれば
 'If c.Value <> "" Then のほうを使ってください。

(β) 2015/06/30(火) 11:04


βさん
ありがとうございました!おかげで望みどおりの結果を得ることができました!大変感謝です
(ゆう) 2015/06/30(火) 11:20

コメント返信:

[ 一覧(最新更新順) ]


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