データ例
Sheet1
データ部に連番を振っておきます(必須)。
連番 購入者 住所 品名 価格
1 木田 次郎 京都市 テレビ 150000
2 山田 太郎 大阪市 パソコン 130000
3 上田 健太郎 名古屋市 ドライヤ 5000
4 恩田 雅夫 浜松市 デジカメ 40000
5 坂田 俊夫 岡崎市 クーラー 120000
Sheet2 単票の例
(Sheet2)
()内はセル番地を説明のため入れてます。場所がわかれば()内は除いて
ください。基本的には項目内容と見出しの配置は自由です。
どこでも良いがG1を番号指定用に確保します。
-----------------------------------
送り状(C3)
住所(B5) (C5)
お名前(B6) (C6) 様(D6)
お買上げ品(B8)
品名(B10) (C8)
価格(B11) (C9)
-----------------------------------------
C5に=VLOOKUP(G1,Sheet1!A3:D10,3,FALSE)
C6に=VLOOKUP(G1,Sheet1!A3:E10,2,FALSE)
C10に=VLOOKUP(G1,Sheet1!A3:E10,4,FALSE)
C11に=VLOOKUP(G1,Sheet1!A3:E10,5,FALSE)
を入れます。
(結果)
(Sheet2)
送り状(C3)
住所 京都市
お名前 木田 次郎 様
お買上げ品
品名 テレビ
価格 150000
Sheet2の罫線・文字書式や列幅・行高は工夫してください。
不動文字は入れても影響なし。
(利用方法)
これを印刷し、
G1の値を2にする。
すると山田太郎の書類になる。印刷する。
G1に3を入れる。上田健太の書類になる。これを印刷するを繰り返す。
必要ない人は飛ばせるのはわかりますね。
(問題点)
多数や全員印刷するときは面倒。
この問題は関数では解決しない。
(マクロ)VBAを勉強する必要がある。
自動でG1を1づつ増やして、印刷するを繰り返すプログラムを組む。
Sub test07()
Worksheets("Sheet2").Select
For i = 1 To 3
Range("G1") = i
Range("A1:D11").PrintOut
Next i
End Sub
For i = 1 To 3の3は実際のデータ行数に変えてください。
上記はわざと最大限やさしいVBAにしてます。こうしたいという要求はVBAを勉強して実現してください。
("A1:D11").はSheet2の帳票の印刷部分全体を表わしてます。
Sheet2のようなものを作らず、全部をVBAで作れます。しかし関数と組み合わせるのも判りやすいという良さがあるかと思って紹介します。(テスト済み)
お礼
ありがとうございます。 参考になりました。 やってみます。