エクセル形式の住所録があります。1行に1人のレコードになっており氏名、郵便番号、住所(市町村名)、住所(番地以降)は、それぞれ別々の列に、はいっています。
また、各レコードごとに宛名を印刷した回数を入力してある列があります。
今回、やりたい作業は、
1.過去に宛名を印刷した回数を元に名簿の中から選び出したリストにハガキ宛名印刷をし、回数を1つ増やす。例えば、過去に2回印刷し、送付した名簿に3回目のハガキ印刷をし、その方の回数のセルのところを3に書き換える作業。
2.任意に選択したリストから、過去の印刷回数に応じて、ハガキの宛名の下半分の欄にそれぞれ異なったコメントを刷り込み、印刷し、かつ印刷回数の数字を1つ増やす
レコードは、固定的なものでなく、下に頻繁に新しい方が付け加わり、また行の削除により消して行くものもあります。
名簿のリストに1回目はこれ、2回目はこれと毎回変えた内容のハガキをお送りしているのですが、リストにより送付時期がずれてくるので手作業では大変で、何とか自動化できないかと考えています。
専用ソフトを方法もあるのでしょうが、手にはいるリストがエクセル(CSVをxlsに変換したもの)形式であり、また新たなソフトの費用負担はできないため、エクセル、ワードなどのソフトでお願いいたします。
ワードの差込印刷でもいいのですが、送付回数を自動的に増やすことができないので
No.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は列を表す。
大変ありがとうございました。ばっちりできました。VBAのコードの書き方も理解でき、自分でいろんな条件式を書き加えることもできるようになりました。
本当に、感謝の表しようがありません
No.2
- 回答日時:
#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のセルに入っています。現在は、全て手作業です。
No.1
- 回答日時:
質問の文章表現が整然としていて、相当こう言う事務などにお慣れになっている方とお見受けします。
しかし(1)プログラムの必要
A任意に選択したリストから
B過去の印刷回数に応じて、
Cハガキの宛名の下半分の欄にそれぞれ異なったコメントを刷り込み
D回数を1つ増やす
はエクセルVBAでやると、丁度できる内容です。
逆に市販の年賀状ソフトなどもB,Cは出来るものが
無いのではと思う。
しかしVBAは直ぐ習得できるとは言えません。
(2)またもう一つの難しい点は、郵便番号枠に上手く
郵便番号を印字することです。
試行錯誤を繰り返し、それらしくした経験はあります。
また横書きで印字と言うのが、易しいです。
ありがとうございます。こんな難しいことは教えてgooで聞くことではなくソフト会社に依頼することかもしてません。でも、エクセル、ワードのVBAの組み合わせで何とかできるような気がするのです
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでキーリストからデータを取り出して1枚1枚印刷するには? 11 2022/06/27 09:52
- 年賀状作成・はがき作成 Wordによる宛名印刷 2 2023/01/04 15:36
- 年賀状作成・はがき作成 エクセルで作った住所録をワードの差し込み印刷ではがきに印刷したい 3 2022/09/26 15:47
- Word(ワード) office365のWordの印刷範囲が勝手に狭くなっています。 4 2022/07/18 16:31
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- 会計ソフト・業務用ソフト 一太郎で封筒の宛名印刷したいです。 1 2023/07/20 10:14
- フリーソフト 写真の一覧印刷ソフト 2 2023/07/28 16:48
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) VBAで不特定枚数印刷をしたいです。 4 2022/08/02 07:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelの差込印刷で可視セルだけ...
-
エクセルVBA 別シートの複数の...
-
シャープのアクオス sh-m25 を...
-
歯抜けの時間を埋めて行の挿入
-
VBA:同じ文字列データの比...
-
エクセルVBAで SendKeys "{TAB}"
-
VBAの処理が途中で止まる
-
エクセルVBAでの日付順のデ...
-
Excelマクロ データが上書きさ...
-
Excel VBA インデックスの境...
-
VBAで複数シート選択
-
excel:色付き文字の抽出と変換法
-
Excel VBA :2回目以降実行で貼...
-
Excel で行を指定回数だけコピ...
-
複数条件に一致したデータを月...
-
エコウォッシュシステムの値段...
-
EXCELマクロで全シート対...
-
ノートパソコン 2in1について i...
-
VBA 貼付先範囲(行)がいっぱ...
-
情報系の授業の課題なのですが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA 別シートの複数の...
-
Excel で行を指定回数だけコピ...
-
Excel VBA インデックスの境...
-
excelの差込印刷で可視セルだけ...
-
VBA:同じ文字列データの比...
-
VBA別シートの最終行の下行へ貼...
-
エクセル:VBAで月変わりで、自...
-
エクセルVBAで 2種のリストを...
-
歯抜けの時間を埋めて行の挿入
-
エクセルVBAで SendKeys "{TAB}"
-
VBAで条件が一致する行のデータ...
-
EXCELマクロで全シート対...
-
VBAの指示の内容 昨日こちらで...
-
Excel VBAでシート内全体に非表...
-
VBAで複数シート選択
-
Excelマクロ データが上書きさ...
-
Excel VBA 時刻でのD...
-
VBA 貼付先範囲(行)がいっぱ...
-
エクセルVBAでの日付順のデ...
-
【WORD差し込み印刷】複数レコ...
おすすめ情報