Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


289 / 13645 ツリー ←次へ | 前へ→

【81165】Excelからメールを自動作成するマクロについて Questioner 20/1/23(木) 20:14 質問[未読]
【81166】Re:Excelからメールを自動作成するマクロに... γ 20/1/24(金) 8:46 発言[未読]
【81167】Re:Excelからメールを自動作成するマクロに... Questioner 20/1/24(金) 14:50 質問[未読]

【81165】Excelからメールを自動作成するマクロに...
質問  Questioner  - 20/1/23(木) 20:14 -

引用なし
パスワード
   こんちには。初めて投稿させていただきます。

以下のサイトを参考に、Excelのデータからメールを自動作成するマクロを作成しています。
moripro.net/vba-outlook-createmail

質問は2点です。

1.
データの行数分、メールを一括で作成する方法は理解できたのですが、複数行にわたって同じメールアドレスがあった場合も、1行に対し1件メールを作成してしまいます。

同じメールアドレスが続く場合、データをまとめメールを1件だけ作成するように制御することは可能でしょうか?

例えば以下の表でマクロを実行した場合、
「佐藤さん宛てに3件」+「鈴木さん宛てに1件」+「田中さん宛てに1件」
=合計5件のメールが作成されてしまいますが、

--------------------------------------
宛先(To)    氏名 使用日  金額
--------------------------------------
sato@xxx.co.jp  佐藤 2018/7/1 100
sato@xxx.co.jp  佐藤 2018/7/2 200
sato@xxx.co.jp  佐藤 2018/7/3 300
suzuki@xxx.co.jp 鈴木 2018/7/4 400
tanaka@xxx.co.jp 田中 2018/7/5 500
--------------------------------------

佐藤さん宛ては3行分の情報を1件のメールにまとめ、以下のようにメールが3件作成されるようにしたいです。

------------------------------------
【宛先】sato@xxx.co.jp

【本文】佐藤さん
    使用日:2018/7/1 金額:100
        2018/7/2 金額:200
        2018/7/3 金額:300
------------------------------------
【宛先】suzuki@xxx.co.jp

【本文】鈴木さん
    使用日:2018/7/4 金額:400
------------------------------------
【宛先】tanaka@xxx.co.jp

【本文】田中さん
    使用日:2018/7/5 金額:300
------------------------------------

2.
すべての行に対して処理を繰り返すのではなく、特定の行のみに対して処理をしたい場合、どのように変更すれば良いでしょうか?

VBA超初心者のため質問の仕方が適切なのかも分からないのですが、不足している情報があれば教えてください。
どのように記述をすれば良いのか、ご教示いただけますと幸いです。

【81166】Re:Excelからメールを自動作成するマクロ...
発言  γ  - 20/1/24(金) 8:46 -

引用なし
パスワード
   こんにちは。

(1)まずは、重複を除いた宛先データの表を作ります。
  フィルタオプションでも、重複の排除ボタンでもよいでしょう。
(2)上記の各行ごとに、
  オートフィルタを実行して、対応するデータを抽出し、
  それに対して本文文字列を作成すればよいと思います。

まずは、質問者さんがトライされることをお奨めします。

【81167】Re:Excelからメールを自動作成するマクロ...
質問  Questioner  - 20/1/24(金) 14:50 -

引用なし
パスワード
   γ さん

早速ご回答いただきありがとうございます。
オートフィルタは試していたのですが、必要な行だけチェック・表示させた状態でも、表示・非表示に関わらず全ての行に対して処理をされてしまいます。

フィルタで選択した行のみ指定することが出来れば一番簡単で良いのですが、その処理をさせるためにはどのように記述を追加すれば良いでしょうか?

どうぞよろしくお願いいたします。

289 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free