元々の出荷用に作成したエクセルシート(住所印刷)を参照に、ヤマト運輸、佐川急便、郵便事業会社の出荷CSVから追跡番号などピックアップして エクセルのメール送信用シートに貼り付けたいのです。 画像を見ていただければ、イメージがつかみやすくなるかと思います。 あとは追記いたします。
ログインして回答する
回答はまだありません
これ以上回答リクエストを送信することはできません。制限について
コメント(3件)
元の住所氏名など発送をまとめたxlsファイルが【住所印刷】
ヤマト運輸の伝票xlsファイルが【ヤマト出力用】
佐川急便の伝票csvファイルが【佐川出力用】
郵便事業会社の伝票csvファイルが【出荷実績一覧】
メールを送るxlsファイルが【エクセルメール】
といいます。実際には【】をのぞいた中身です。
それらがすべてデスクトップ上にあり、パスはC:\Users\yamada\Desktop\
とします。
【住所印刷】ファイルのみを開いた状態でマクロをスタートさせると、
住所印刷のファイルに書いてある名前を読み取り、宅配各社の名前とその同じ行にある、該当する追跡番号を読み取り、
エクセルメールの該当箇所にコピー&ペーストされるという形です。
エクセルファイルのそれぞれ、1行目の見出し語を頼りに感知してほしいのです。
(貼り付け先のエクセルメールだけ9行目が見出しです)
参照して貼り付けてほしい該当箇所はそれぞれ下記のようになります。
【住所印刷】
2行目(A列)商品名 (E列)計 (F列)送付先氏名 (L列)指定 (P列)メールアドレス1
【佐川出力用】
2行目(A列)お問合せ送り状№ (J列)お届け先名称1
【ヤマト出力用】
2行目(D列)伝票番号 (P列)お届け先名
【出荷実績一覧】
2行目(M列)お届け先 氏名 (DW列)お問い合わせ番号
※↑実際には(●列)の後にある言葉は1行目のそれぞれ該当列にあります。たとえば、【住所印刷】で商品名とあるセルは1Aで、2Aには「りんご」など具体的な商品名が入ります。
貼り付け先の
【エクセルメール】
(※このシートはシェアソフトのため、標準モジュールなどは開けませんが、貼り付けなどの操作は可能です)
※見出しが9行目。実際の貼り付け開始行が11行目となります。
9行目(D列)[TO]を探し出して、同列11行目から下に【住所印刷】のメールアドレスを貼り付け。
9行目(F列)[BCC] を探し出して、あらかじめマクロ先頭で設定しておいた、BCCアドレス「xyz@yahoo.co.jp」を貼り付け
9行目(N列)[項目8] を探し出して、同列11行目から下に【住所印刷】の商品名を貼り付け。
9行目(AE列)[項目25] を探し出して、同列11行目から下に【住所印刷】の商品名を貼り付け。
9行目(Z列)[項目20] を探し出して、同列11行目から下に【住所印刷】の指定を貼り付け。
以上です。
★列はファイルの出力方法によりかわりますので、1行目の見出し言葉を探り出してから、下の行を検索していくようにしてください。
★伝票番号のヒット条件は送付先氏名が、各宅配会社のファイルの名前と完全一致するかにします(同姓同名は無視します)
★実際には各ファイル、3行目以降も見出しの情報が続きますが100行まで検索するようにしていただき、その検索数値も調節できるように上に設定しておいてくださいませ。(書き換えはこちらでします)
★CSVファイルの伝票などは、開くと、数値が4.01998E+11などと桁オーバーの表記がされることがありますので注意してください。
ご質問がございましたら、いただけたら幸いです。
きちんとマクロを書いていただいた方にはポイントを差し上げます。
自分だったら、外部データの取り込みとVLOOKUP関数とかで必要なデータを抽出してそれを参照させるか、単純なコピペで済むような配位で参照させるか、更新やコピペの部分だけマクロにするかすると思います。