今回は、Excelの顧客リストをもとにメールを送信する方法について解説します。
【STEP1】Excelの起動
「ドキュメント パス」に対象のExcelファイルのフルパスを指定します。フルパスはファイルの上にカーソルを当てた状態でCtrlを押しながら右クリック>パスのコピー、もしくは「ドキュメント パス」横にあるファイルマークを押して指定することもできます。
【STEP2】Excelのシートからリストを読み込む
「取得」は、今回は「ワークシートに含まれる使用可能なすべての値」としました。
今回の例と同じようなファイル内容であればこれで大丈夫かと思いますが、欄外にコメントが書いてあったりするとうまく取れないので、その場合は以下を選んでみてください。
項目 | 概要 |
---|---|
単一セルの値 | 単一のセルを取得します。 先頭列・先頭行を指定します。 |
セル範囲の値 | セル範囲の値を取得します。 先頭列・先頭行を指定します。 |
選択範囲の値 | ワークシートでアクティブになっているセルを取得します。 |
ワークシートに含まれる使用可能な すべての値 | ワークシートに存在する値すべてを取得します。 |
【STEP3】Outlookの起動
Outlookを起動します。
設定内容はデフォルトのままでOKです。
【STEP4】For eachでリストの件数分処理する
取得したExcel内容から、For eachを使って1件ずつ取り出し処理します。
「反復を行う値:」には「%ExcelData%」を選択します。
リストの各データをもとにメール送信
次に、取得したリストに対して、1件ずつメール送信を行います。全体像としては以下のようになります。
ちょっと複雑そうに見えますが、以降で詳しく解説していきますのでご安心ください。
ヘッダ行は処理しないようにする
Excelのリストを1行ずつ取り出したとき、1行目はヘッダである「名前」「メールアドレス」になっています。
なので、取り出した内容がヘッダだったらメール送信の処理はしない、というフローを作成します。
for文で取り出した、ExcelDataの1行分(CurrentItem)から、「メールアドレス」の行だけ取り出して、「メールアドレス」という文字列が入っているかどうかで判断します。
最初のオペランド
「最初のオペランド」は、%CurrentItem[1]%が入ります。これは、CurrentItemの中から「メールアドレス」の列のみ取り出した形となります。
演算子
「演算子」には「と等しくない(<>)」を設定します。
2番目のオペランド
「2番目のオペランド」には、比較対象となる文字列である「メールアドレス」を入力します。
メールの送信
if文のなかに「Outlookからのメールメッセージの送信」を追加します。
変更するのは以下になります。
項目 | 設定内容 |
---|---|
宛先 | %CurrentItem[1]% |
件名 | メール送信のテスト |
本文 | こんにちは!%CurrentItem[0]%さん これはメール送信のテストです。 |
%CurrentItem[1]%のように設定することで、For eachループで取り出した中身をメール本文に埋め込むことができます。
【STEP5】Outlookを閉じる
設定内容はデフォルトのままでOKです。
まとめ
今回は、Excelの顧客リストをもとにメールを送信する方法について解説しました。
なんらかのリストに対してループを回して処理する場面はけっこうあるかなと思います。このようなフローが作成できれば、定期的にメールを配信したり、今回の例のように名前を埋め込んで内容を変えることも可能です。
For each、ifを使う箇所、[0]のように取り出す位置を指定する方法はやや応用になるので、もしよく分からなかった、こんな処理を自動化したい、等ありましたらお気軽にお問合せ/コメントいただければと思います。
コメント