[Excel]メールアドレスのリストから、送信先一覧を簡単に作る方法
▶ 目次
先日の「[EXCEL] データを繋ぐ記号と関数(&、CONCATENATE、CONCAT、TEXTJOINの使い分け)」で説明した「TEXTJOIN関数」の実践例です。
Excelの連絡先一覧(メールアドレスあり)から、メールソフトの宛名に入れる送信先一覧を簡単に作る方法です。

【まとめ】
1 エクセルで、メールアドレス一覧があることが前提
2 以下の計算式を作る。
=TEXTJOIN(“;”,TRUE,アドレスの範囲を指定)
3 合体したアドレスを、メールソフトの宛名に張り付ける。
*TO、CC、BCC別にアドレスをまとめる方法は【説明】参照。
【説明】
メールソフトのアドレス帳には登録していないけれど(登録するほどではないけれど)、一気にメールを送りたい場合に使える方法です。
1 エクセルでアドレス一覧があることが前提
相手方の所属や住所や電話番号、担当者名とともに、メールアドレスも含めて一覧化されている場合が多いと思います。
CSV方式などにして、メールソフトのアドレス帳に移管(インポート)するのも一つの手ですが、送信頻度が少ない場合、そこまでするのも面倒です。
Excel表の方が管理(メンテ)しやすいというメリットもあります。
(「お役所」の担当者はよく変わりますから、毎年修正が必要になります。)
担当者会議等を行う場合は、出席報告とともにアドレスももらうと、後の連絡やURL配布などが楽です。
参照
[EXCEL] 出席者名簿には番号を付ける ~実践編 小ネタ~ 表の枠外に連絡先も入れておく(報告時に入れてもらう)
リストさえあれば、メールの宛先を一気に作ることができます。
一覧表から、アドレスを一つ一つ、メールソフトの宛先欄にコピーしている姿を見かけたことがありますが、かなり手間だし、間違えも起きます。
なお、メールソフトによっては、Excelなどのメールアドレスを直接ベタ貼りしても、送信先として認識される場合もあるので、この操作が必須というわけではありません。
やらずに済めば、それが一番です。
まずは、ダメ元でそこから試してみるのがいいと思います。
メールソフトは、複数アドレスに送る場合、アドレスとアドレスの間を特定の記号で区切ります。
多くの場合は「;」ではないでしょうか?(あるいは「, 」)
というわけで、一覧表のメールアドレスを「;」で区切りつつ、合体させます。
2 計算式 =TEXTJOIN(“;”,TRUE,アドレスの範囲を指定)
やり方は簡単です。
上の計算式を、どこかに入れるだけ。
TEXTJOIN関数は、文字通りテキストを合体させる関数です。
=TEXTJOIN(“;”,TRUE,アドレスの範囲を指定)
の意味は、
「指定した範囲の文字(アドレス)を「;」を間に入れて合体させる」です。
*「TRUE」は「空欄セルは無視する」という意味になります。
これが「FALSE」だと空欄セルも合体させてしまいますので、要注意です(空欄なので、実際は「 ;; 」と「;」が続きます)。
「TRUE」は省略可能ですが、その場合、
=TEXTJOIN(“;”,,アドレスの範囲を指定)と、「,」が2つ続くことに注意です。わかりづらいので、TRUE は入れておいた方がいいでしょう。
*TEXTJOINは、Office2019から使える模様です。
3 合体したアドレスを、メールソフトの宛名に張り付ける。
こうして合体したアドレスを、メールソフトの宛先欄に張り付ければ完了です。
今回の場合、以下のとおり合体できました。
aomori123@dmail.com;iwaiwaxxx@abc.co.jp;akitataro@ddi.com;yama-jiro@tnet.co.jp;2456d@telnet.co.jp;yamaaki@deb,go.jp;shizu234@tvb.com
*基本的に、複数アドレスに送信する場合は、受信者に他のアドレスが見えないようにBCCで送るべきです。
行政組織のみへ送る場合、オープンなアドレスなら、TOに入れても構わないでしょう。
ただし、TOに入れると、受信の際、ヘッダーに宛先一覧が表示されます。
受信者によっては、「送信先一覧が分かってよい」という意見もあるし、「(印刷したときに)ひたすらアドレスが並んで見づらい」という意見もありますので、ケースバイケースかと思います。
*行政機関のようオープンアドレスでも、できるだけBCCにした方がいいかもしれません。
迷惑メール対策の観点から、行政機関もメールアドレスをHPに載せなくなってきているので、この手の配慮は必要でしょう。
【おまけ】
メールアドレス一覧のうち、「いくつかのアドレスにだけ送りたい」「いくつかのアドレスにはTOで、それ以外はCCかBCCで送りたい」という場合があるかもしれません。
そんな時は・・・

①一覧のどこかに「宛先」欄を作る
②「宛先」欄に TO、CC,BCCと入れる。(送らない相手は空欄)
③シートのどこかに(別シート可)に、TO、CC、BCCと縦に入れ、その横に以下の計算式を入れる。
=TEXTJOIN(";",TRUE,IF(「宛先」欄の範囲=③で作ったTO/CC/BCCのセル、$B13,メールアドレスの範囲,"")) *B13がToの場合
これを、CC、BCC欄にコピーします。
*「宛先」欄の範囲は、絶対参照($付き)にしておきます。相対参照($なし)だと範囲がずれます。
できれば、列のみで指定(例 C:C )すればコピーしても「範囲ずれ」は起こりません。
これで、TO/CC/BCC別に送るべきアドレスのまとまりが出来ます。
今回の場合、以下の通りとなります。
TO aomori123@dmail.com;yama-jiro@tnet.co.jp
CC iwaiwaxxx@abc.co.jp;2456d@telnet.co.jp
BCC akitataro@ddi.com;yamaaki@deb,go.jp;shizu234@tvb.com
なお、最後の「””」は、条件に合わないアドレスは空欄にする、つまり、「TRUE」により、無視するために必要です。
計算式の対象セルがどうなっているか、「書式のトレース」機能を使って「見える化」してみました。

Alt → M(数式) → P(参照元のトレース)で、どのセルを対象としているか、数式だけより、分りやすいと思います。
トレースは、(Alt → M → A → A 又は 上書き保存で、消えます。)
以上、参考になれば幸いです。
