- ベストアンサー
エクセル形式の住所録から自動的にハガキ宛名印刷する方法
- エクセル形式の住所録からハガキ宛名を自動的に選択し印刷する方法を紹介します。過去の印刷回数を元に名簿から選び出したリストに対してハガキ印刷を行い、回数を増やすことも可能です。
- 名簿のリストをエクセル形式で保持している場合、ワードの差込印刷では送付回数を自動的に増やすことができません。しかし、エクセルやワードなどのソフトを使って自動化する方法があります。
- 専用ソフトの費用負担ができない場合でも、エクセルやワードなどの既存のソフトを活用して、エクセル形式の住所録からハガキ宛名を自動的に印刷することができます。ハガキの下半分には異なったコメントを刷り込むことも可能です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1です。VBAのコードは Sub test01() Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("sheet3") Set sh2 = Worksheets("sheet4") '---最下行数取得 d = sh1.Range("A65536").End(xlUp).Row For i = 2 To d '----郵便番号セット sh2.Cells(2, "C") = Mid(sh1.Cells(i, "F"), 1, 1) sh2.Cells(2, "D") = Mid(sh1.Cells(i, "F"), 2, 1) sh2.Cells(2, "E") = Mid(sh1.Cells(i, "F"), 3, 1) sh2.Cells(2, "G") = Mid(sh1.Cells(i, "F"), 5, 1) sh2.Cells(2, "H") = Mid(sh1.Cells(i, "F"), 6, 1) sh2.Cells(2, "I") = Mid(sh1.Cells(i, "F"), 7, 1) sh2.Cells(2, "J") = Mid(sh1.Cells(i, "F"), 8, 1) '----住所セット sh2.Cells(11, "B") = sh1.Cells(i, "G") sh2.Cells(12, "C") = sh1.Cells(i, "H") '----氏名セット sh2.Cells(15, "C") = sh1.Cells(i, "D") & "様" '---2回以上出した方に If sh1.Cells(i, "Q") > 2 Then '---セールス文言セット sh2.Cells(17, "C") = "ただいまクリスマスセール中!" sh2.Cells(18, "C") = "会員さま限定" End If '---出状回数+1 sh1.Cells(i, "Q") = sh1.Cells(i, "Q") + 1 '---印刷 sh2.Range("a1:K20").PrintOut sh2.Range("a1:k20").ClearContents Next i End Sub です。 イメージは 700 0847 岐阜県本巣市 東町3-1-3 6棟305号室 田中 太郎様 ただいまクリスマスセール中! 会員さま限定 (1)フオントのサイズをワークシート上で調節すること 上記プログラムでは触ってない。 郵便番号は18ポ程度か。 (2)セル幅、行高を調節すること(特に郵便番号)。 上記プログラムでは触ってない。 A列、B列など。A,B列は伸縮調節用の列です。 (3)天辺の余白の調節をすること。印刷のページ設定。 上記プログラムでは触ってない。 (4)セールス文言のところは適宜文字を変えること。 (5)プログラム中の下記のワークシート名を変えること。””の中。 Set sh1 = Worksheets("sheet3") 住所録シーと名 Set sh2 = Worksheets("sheet4") ハガキシート名 (6)何度かハガキコピー紙に試し印刷して郵便番号の 位置を合わせること。 (7)Cells(i,j)の形が出てくるが、セルを示すもので、iは行、jは列を表す。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
#1です。取りあえずエクセルの名簿の見だし名と1人分の 内容(1レコード)を例示してみてください。 >ソフト会社に依頼することかもして(れ?)ません 言いたかったのは、ソフト会社に依頼するほどの内容では 無いと言うことでも有ります。発注すれば何十万とられますよ。
お礼
再度のアドバイスありがとうございます。 エクセルシートの貼り付けは、できないので補足欄に見出しと1レコードを書いてみました。
補足
No 初回入力日 IDコード 氏名 カナ 郵便番号 住所1 住所2 TEL1 TEL2 商品 動機 職業 備考1 備考2 備考3 備考4 486 2003/07/29 030701418 田中 太郎 タナカタロウ 710-0847 岐阜県本巣市 東町3-1-3 6棟305号室 0888-88-8888 C1 来店 4 2 6 1 以上のような名簿です。はがきの発送回数は、備考4のセルに入っています。現在は、全て手作業です。
- imogasi
- ベストアンサー率27% (4737/17069)
質問の文章表現が整然としていて、相当こう言う事務などにお慣れになっている方とお見受けします。しかし (1)プログラムの必要 A任意に選択したリストから B過去の印刷回数に応じて、 Cハガキの宛名の下半分の欄にそれぞれ異なったコメントを刷り込み D回数を1つ増やす はエクセルVBAでやると、丁度できる内容です。 逆に市販の年賀状ソフトなどもB,Cは出来るものが 無いのではと思う。 しかしVBAは直ぐ習得できるとは言えません。 (2)またもう一つの難しい点は、郵便番号枠に上手く 郵便番号を印字することです。 試行錯誤を繰り返し、それらしくした経験はあります。 また横書きで印字と言うのが、易しいです。
お礼
ありがとうございます。こんな難しいことは教えてgooで聞くことではなくソフト会社に依頼することかもしてません。でも、エクセル、ワードのVBAの組み合わせで何とかできるような気がするのです
補足
どのようにVBAを組めばいいのか、具体的にお教えいただけるとありがたいです。
お礼
大変ありがとうございました。ばっちりできました。VBAのコードの書き方も理解でき、自分でいろんな条件式を書き加えることもできるようになりました。 本当に、感謝の表しようがありません