• 締切済み

エクセルによる流し込み印刷をしたい。

今現在、 ”リスト”シートに個人リストがあり、VLOOKUPを使用し A列に「1」を入力するとその行の個人データが ”カード”シートにレポート(個人カード)として出るようになっております。 ”リスト”シートのA列に「1」入力、”カード”シートを印刷 ↓ ”リスト”シートのA列の「1」を消して一段下に「1」入力、”カード”シートを印刷 これを繰り返していますが、 ”カード”シート内に、「何行から何行までを印刷する」マクロを作成したいのです。 A6に開始行を入力、A7に修了行を入力すると流し込み印刷が出来るようになりたいのです。 VBA初心者です。 恥ずかしいような質問ですが、よろしくお願いします。

みんなの回答

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

質問の回答をそのまますれば Sub test() Dim i As Integer Dim pStart As Integer, pEnd As Integer pStart = Worksheets("カード").Range("A6").Value pEnd = Worksheets("カード").Range("A7").Value For i = pStart To pEnd Worksheets("リスト").Range("A:A").ClearContents Worksheets("リスト").Cells(i, 1).Value = 1 Worksheets("カード").PrintOut Next i End Sub のようになります しかし、次のように変更することにより もっと使いやすくなるのではと思います リストシートのA列に連番を振ります カードシートのA5をリスト表示番号とし VLOOKUP関数を一部変更します 現在は =VLOOKUP(1,リスト!$A$1:$F$20,2) こんな感じで使用されているのではと思います =VLOOKUP($A$5,リスト!$A$1:$F$20,2) この様に変更すれば、今までの作業が効率がよくなります 今までは リストシートに移動し、1を消して、1を入力して、カードシートに戻って、印刷の繰り返しでしたよね 変更後は A5に印刷したいリストの番号を入力、印刷の繰り返しで済みます さらに、A6開始リスト番号、A7終了リスト番号にして 下記のマクロを使用すれば連続印刷も出来ます Sub 変更後test() Dim i As Integer Dim pStart As Integer, pEnd As Integer pStart = Worksheets("カード").Range("A6").Value pEnd = Worksheets("カード").Range("A7").Value For i = pStart To pEnd Worksheets("カード").Range("A5").Value = i Worksheets("カード").PrintOut Next i End Sub 如何でしょう?

ochiko02
質問者

お礼

回答していただいてたのに、お礼が遅くなり申し訳ありません。 変更後Test、すごくいいです。 改良版まで作っていただいて、本当にありがとうございました。

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

関連するQ&A