• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでの一括印刷について)

エクセルでの一括印刷について

このQ&Aのポイント
  • エクセルでの一括印刷についての質問です。VBA初心者であるため、簡単なマクロ設定は可能ですが、一括印刷に関しては効率化ができるか検討しています。
  • 現在、accessからエクセルにインポートした情報を元に印刷を行っており、入力フォームに入力されたIDを元にテンプレートタブから情報を取得しています。個人ごとの印刷では手作業で行っていますが、一括で印刷する方法をVBAで実現できるかどうかについて質問です。
  • マクロ登録において、IDの最大数が変化するため、60名で登録しておくと無駄な印刷が発生する可能性があります。IDの最大数が変動しても対応できるVBAの記載方法について教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

> VBAの式を全て書いていただけると大変助かります>< 一括印刷のボタンを右クリックしてマクロの登録→新規作成か、デザインモードにしてダブルクリックすると Sub なんとか() ←なんとかはボタンによるのでこちらでは書けません。 End Sub となるので Sub なんとか() Dim i As Long With Sheets("情報") For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row Sheets("入力フォーム").Range("C2").Value = .Cells(i, "A").Value ここに印刷コード Next End With End Sub となるようにしてください。情報や入力フォームは実際のシート名にしてください。 「ここに印刷コード」と書いているところに現在の個人印刷マクロの名前、上記でいうと「なんとか」の部分を記載してください。 なんとかでエラーになるようでしたら Call なんとか にしてください。 ボタンによってはそれでもエラーになる事がありますので、その場合は、個人印刷のコードをそのまま該当部分に入れ込んでください。

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

No1です。 入力フォームのC2に入れるのを記載忘れてました。 For Each c In .Range(.Cells(2, "A"), .Cells(Rows.Count, "A").End(xlUp)) Sheets("入力フォーム").Range("C2").Value = c.Value '↑にIDデータが2行目から順に最終行まで入ります。 '印刷のコード Sheets("入力フォーム").Range("C2").Value = .Cells(i, "A").Value '↑にIDデータが2行目から順に最終行まで入ります。 '印刷のコード

NSrai
質問者

補足

Dim i As Long With Sheets("情報") For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row .Cells(i, "A").Value Sheets("入力フォーム").Range("C2").Value = .Cells(i, "A").Value ここに印刷コード Next End With 上記で間違っていませんでしょうか?

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

マクロで最終行が求められますので以下のどちらかで Dim c As Range With Sheets("情報") For Each c In .Range(.Cells(2, "A"), .Cells(Rows.Count, "A").End(xlUp)) c.Value '↑にIDデータが2行目から順に最終行まで入ります。 'やりたいこと Next End With もしくは Dim i As Long With Sheets("情報") For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row .Cells(i, "A").Value '↑にIDデータが2行目から順に最終行まで入ります。 'やりたいこと Next End With

NSrai
質問者

お礼

お返事が遅くなり申し訳ありません。 VBAの式の理解をしないと難しいですね>< VBAの式を全て書いていただけると大変助かります>< わがままいって申し訳ありません><

関連するQ&A