スポンサードリンク

ステップメールで、送信間隔を設定できるようにするプログラム。

Excelからステップメールを送信するVBAプログラムの仕上げとして、送信間隔を設定できるように、プログラムをカスタマイズ(改良)してみましょう。

通常、ステップメールでは、次のステップを送信するまでの送信間隔(1日後、3日後、7日後など)を設定できるものがあります。

そこで今回の課題では、以下のようなステップメールを送信できる機能を実現します。

まずは完成図を見て、イメージを掴んでください。

【完成図】
(1)ワークシート「送信」のD列に、「最終送信日」を記録できるようにします。

mail-344.gif

最終送信日とは、前回にステップメールを送信した日付のことです。

ステップが 0 の場合は、新しい読者なので、まだメールは未送信です。その時は登録日の日付を入力しておきます。

*日付は空白にはしないでください。
*日付として正しい形式で入力します。(半角で)

日付の値は、ランダムに入力してかまいません。でも、必ず今日より前の日付にしてください。


(2)ステップメールの送信が成功すると、D列の最終送信日を、更新するようにします。
自動的に送信日の日付が、入力されるようにしてください。


(3)ワークシート「文章」では、D列に次のステップメールを送るまでの「間隔(日)」を指定できるようにします。

mail-345.gif

*数値は、半角で入力してください。
*step1は新規の読者なので、間隔は0にします。(すぐに送るため)

間隔の値は、ランダムに入力してかまいません。

例えば上の図では、step1とstep2の間には、1日あることになります。

また、step4はstep3を送ってから、3日後に送信するという意味です。


(4)動作確認について
今回の課題の動作確認の方法は、これまでと変わりません。

ワークシート「送信」に切り替えると、ユーザーフォーム「frm送信」が自動的に表示されます。

あとはテキストボックスに入力して、メールを一括送信します。

送信フォームの件名と本文に入力する文字列を掲載しておきます。動作確認の際にご利用ください。

・件名

[氏名]様 [タイトル]


・本文

[氏名]様

こんにちは。○○です。
本日はメールマガジンをお届けします。

[氏名]様のお役に立てれば幸いです。

[文章]

最後までお読みいただき、ありがとうございました。
株式会社○○


既に最大ステップに達している人には、これ以上メールが配信されないのは、前回までと同じです。

これまでとの違いは、ステップごとに間隔(日)を設定しているので、条件を満たしていない場合は、メールが送信されないことです。

つまり、最大ステップに達していない、かつ日付の間隔を満たしている時だけ、ステップメールが送信されます。

そして最後に、ワークシート「送信」のD列の最終送信日が、自動的に更新されていることを確認してください。

もちろん今回送信した人だけ、更新されていなければなりません。


(5)メーラーで受信してみる
ステップメールの送信が上手くいったかどうかは、送信したメールを Outlook Express のようなメーラーで受信して確認します。

・条件に一致しているメールは、ちゃんと届いていますか?
・本来は送信されないはずのメールが届いていませんか?


【課題の手順】
今回の課題は、前回までに作成した「ステップメール.xls」をカスタマイズして行ないます。ついでにステップメールの復習を兼ねています。

課題は、以下の順番で行なってください。
・「ステップメール.xls」を開く *マクロを有効にする
・VBEを起動する 「Altキー」+「F11キー」
・プログラムを一部変更、追加する
・動作確認


以上の図と説明を見ただけで、ステップメールをカスタマイズできれば、かなりプログラミングが上達しています。

まずは自力で挑戦してみてください。もし出来なくても、自分の頭で考えてみることが大切です。

「日付をどう扱うか」というのがポイントです。

次回にヒントを掲載します。


【補足】
今回の課題では、完全には自動化していません。

ユーザーが送信作業を行なう時に、日付を計算して、条件を満たしていれば送信するという、シンプルな仕組みにします。

したがって、ユーザーが毎日一度は、「メール送信」ボタンをクリックすることが、前提となっています。

ユーザーが送信作業を怠けると、必ずしも設定した間隔で送信されるとは限りません。少し遅れることもあります。

完全に自動化するには、タイマーなどの機能を追加すれば可能です。

毎日決まった時間に、自動的に「メール送信」ボタンをクリックするように、プログラミングするだけです。

でもここまでやると、課題としては難しくなるので、今回は省きました。

スポンサードリンク






メール送信・受信プログラミング初心者入門 TOPへ