私も何度も回答してます。
例データ
Sheet1はデータシート
A1:E5
行番号 氏名 住所 年齢 印刷
1 大田 東京都 34 p
2 山田 横浜市 36
3 上村 千葉市 15 p
4 木村 静岡市 16 p
Sheet2は印刷シート
そこに行って
A1に「1」と入力(A1はどこか目立たないところでもよい)
あるいは第1列か第1列を遊び行にしてしまう。
氏名を印刷したいセルに
=VLOOKUP($A$1,Sheet1!$A$1:$C$100,2,FALSE)
住所をセットしたいセルに
=VLOOKUP($A$1,Sheet1!$A$1:$C$100,3,FALSE)
これは判りますね。他の項目も好きなところへ、第3引数だけ変えて
式をセット。
(印刷)
ALTきを押しつつF11,I,Mを順次押すと、標準モジュール画面になる。
そこへ下記をコピペする。
骨子ですが
Sub test01()
Range("A2:J20").PrintOut
End Sub
ーー
これでは今の1ページしか印刷しない。
VBAでA1を変化させる。するとSheet2の中身が変わります。
●これを第2行から最下行まで繰り返し
●F列がブランクで無い行だけを印刷する
に改良すると下記コードになる。
ーー
Sub test01()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
'--
d = sh1.Range("a65536").End(xlUp).Row
For i = 2 To d
If sh1.Cells(i - 1, "E") <> "" Then
sh2.Cells(1, "A") = i - 1
sh2.Range("A2:H20").PrintOut
End If
Next i
End Sub
ーー
これをF5を押して実行する。
このほかにも、ボタンをクリックすると実行する、などの方法があるので、勉強してください。
ーーー
印刷シートのSheet2に関して、書式、行高、列幅、印刷設定についてはVBAでやってません。手動でやってください。VBA熟練者には、型破りですが、そのほうが初心者には判りやすく、すぐ応用(自分で自由にできる)が効くからです。
わざわざ関数VLOOKUPを使うことを残しているのも、そういう見地からです。
自分流にチュニングが必要ですが(sh2.Range("A2:H20").PrintOutの印刷範囲など)推測して、テストしてみてください。
お礼
早速のご回答ありがとうございます。 丁寧な説明ありがとうございます。 早速試してみます。また経過をご報告します。 まずはお礼まで・・ ありがとうございました。m(__)m