アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル形式の住所録があります。1行に1人のレコードになっており氏名、郵便番号、住所(市町村名)、住所(番地以降)は、それぞれ別々の列に、はいっています。
また、各レコードごとに宛名を印刷した回数を入力してある列があります。

今回、やりたい作業は、
1.過去に宛名を印刷した回数を元に名簿の中から選び出したリストにハガキ宛名印刷をし、回数を1つ増やす。例えば、過去に2回印刷し、送付した名簿に3回目のハガキ印刷をし、その方の回数のセルのところを3に書き換える作業。

2.任意に選択したリストから、過去の印刷回数に応じて、ハガキの宛名の下半分の欄にそれぞれ異なったコメントを刷り込み、印刷し、かつ印刷回数の数字を1つ増やす

レコードは、固定的なものでなく、下に頻繁に新しい方が付け加わり、また行の削除により消して行くものもあります。

名簿のリストに1回目はこれ、2回目はこれと毎回変えた内容のハガキをお送りしているのですが、リストにより送付時期がずれてくるので手作業では大変で、何とか自動化できないかと考えています。

専用ソフトを方法もあるのでしょうが、手にはいるリストがエクセル(CSVをxlsに変換したもの)形式であり、また新たなソフトの費用負担はできないため、エクセル、ワードなどのソフトでお願いいたします。
ワードの差込印刷でもいいのですが、送付回数を自動的に増やすことができないので

A 回答 (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は列を表す。
    • good
    • 0
この回答へのお礼

大変ありがとうございました。ばっちりできました。VBAのコードの書き方も理解でき、自分でいろんな条件式を書き加えることもできるようになりました。
本当に、感謝の表しようがありません

お礼日時:2004/11/29 01:15

#1です。

取りあえずエクセルの名簿の見だし名と1人分の
内容(1レコード)を例示してみてください。
>ソフト会社に依頼することかもして(れ?)ません
言いたかったのは、ソフト会社に依頼するほどの内容では
無いと言うことでも有ります。発注すれば何十万とられますよ。

この回答への補足

No初回入力日IDコード氏名カナ郵便番号住所1住所2TEL1TEL2商品動機職業 備考1 備考2 備考3 備考4

4862003/07/29030701418 田中 太郎タナカタロウ710-0847岐阜県本巣市東町3-1-3 6棟305号室
0888-88-8888    C1来店4  26 1

以上のような名簿です。はがきの発送回数は、備考4のセルに入っています。現在は、全て手作業です。

補足日時:2004/11/25 21:02
    • good
    • 0
この回答へのお礼

再度のアドバイスありがとうございます。
エクセルシートの貼り付けは、できないので補足欄に見出しと1レコードを書いてみました。

お礼日時:2004/11/25 21:24

質問の文章表現が整然としていて、相当こう言う事務などにお慣れになっている方とお見受けします。

しかし
(1)プログラムの必要
A任意に選択したリストから
B過去の印刷回数に応じて、
Cハガキの宛名の下半分の欄にそれぞれ異なったコメントを刷り込み
D回数を1つ増やす
はエクセルVBAでやると、丁度できる内容です。
逆に市販の年賀状ソフトなどもB,Cは出来るものが
無いのではと思う。
しかしVBAは直ぐ習得できるとは言えません。
(2)またもう一つの難しい点は、郵便番号枠に上手く
郵便番号を印字することです。
試行錯誤を繰り返し、それらしくした経験はあります。
また横書きで印字と言うのが、易しいです。

この回答への補足

どのようにVBAを組めばいいのか、具体的にお教えいただけるとありがたいです。

補足日時:2004/11/25 01:06
    • good
    • 0
この回答へのお礼

ありがとうございます。こんな難しいことは教えてgooで聞くことではなくソフト会社に依頼することかもしてません。でも、エクセル、ワードのVBAの組み合わせで何とかできるような気がするのです

お礼日時:2004/11/25 01:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!