いま、日本郵政の郵送ラベルの自動作成をしたいと思っております。
そのためには、日本郵政のクリックポストというラベル発行サービスがあり、
そのサービスの指定したcsvをuploadしなければならず、それによりはじめてラベルが自動で印刷できる仕組みになっています。
そこで、そのサービスの指定したcsvを作りたいのですが、一つ一つの入力が大変で自動化したいと思っています
そこで、以下のようにしたいと思っています。
1.ECサイト(shopfy)の注文データの氏名住所データをコピー(氏名, 150-0000, 東京都 住所1,住所2,ビル名,日本)
2.これを日本郵政のサービス(クリックポスト)が求めるデフォルトcsvの入力欄外に上記カンマ区切りデータを貼付(以下codeでは10列目)
3.VBAを実行することで、上記カンマ区切りデータを並べ替えして入力欄に貼付
※問題は、注文者によって住所の描き方が違うことです。つまり住所1に全ての住所を記載する人もいれば、住所1に町名迄、住所2にビル名
など丁寧に分けて書く人がいることです。これにより配列の数が変わってきてしまい、以下のcodeではインデックスエラーが起こります。
ショッピファイの注文データが多く、クリックポストのCSVにするのが大変でどなたか助けてもらえませんでしょうか。
また、こちらの質問とは別件ですが、この方法ではショッピファイの注文を一人一人の画面を見て、その注文データの氏名住所をコピーしてと、まだ少し手間がかかるのですが、本当はなにかすれば、一気に未配送のデータをもとにクリックポストのcsvを作り出す良い方法があるように思っています。検索してもあまりでてこず、もしご存知の方がいらっしゃいましたら教えていただけますと本当に助かります。
御忙しい中恐縮です。
VBA
1Sub clickpostcsv_gen() 2 3 Dim LastRow As Long 4 LastRow = Cells(Rows.Count, 10).End(xlUp).Row - 1 5'あるcsvファイルの(2,10)セルにカンマ区切りデータを入力しておりその行数を調べています。LastRowには入力データ数が入ります。 6 7 Dim i As Long, tmp As Variant 8 For i = 1 To LastRow 9 tmp = Split(Cells(i + 1, 10), ",") 10 11 Cells(i + 1, 2) = tmp(0) '(,2)が氏名入力欄です。 12 Cells(i + 1, 1) = tmp(1〉 '(,1)が郵便番号入力欄です。 13 Cells(i + 1, 4) = tmp(2) '(,4)~(,6)が住所入力欄です。問題はここです。注文データによってはtmp(4)がなくインデックスエラーになるのです。 14 Cells(i + 1, 5) = tmp(3) 15 Cells(i + 1, 6) = tmp(4) 16 17 Next i 18End Sub
回答2件
あなたの回答
tips
プレビュー