[Office Master] | |||||||||||
配信リストを使ってメールをいっせいに配信する
|
|||||||||||
|
操作方法 |
Microsoft Excel上で管理されているメール・アドレス情報をそのまま使って、メールの配信に利用できれば、どんなにか便利だろう。多数の受信者に向けて同時にメールを配信する場合、これまではいちいちメール・ソフトウェア上でアドレスを指定したり、(配信)グループを定義したりと、何かと不便なことが多かった。しかし、本サンプルを利用することでそうした苦労からも解放される。また、配信する/しないも「○」「×」のフラグを設定するだけで簡単に振り分けることができる。
なお、本TIPSを利用するには、使用しているコンピュータがインターネットに接続されていること、自分が利用できるメール・サーバが用意されていること(プロバイダのメール・サーバなどでも可能)、メール送信用の追加コンポーネント(Basp21)がご使用のコンピュータにインストールされていることが条件となる。
それでは早速、作成までの流れを見てみることにしよう。
手順1―追加コンポーネント「Basp21」をインストールする
まずは、サンプル実行に必要な追加コンポーネント「Basp21」をインストールしよう。
「Basp21」は馬場達夫氏が作成したフリーウェアのネットワーク・コンポーネントである(製品版もある)。メール送信やファイル・アップロード、文字エンコーディング変換など、Visual BasicやVisual Basic for Application(VBA)、Windows Scriptなどが持っていない機能を豊富に盛り込んだ、ユーティリティ的なコンポーネントだ。IISのサーバサイド技術であるASP(Active Server Pages)の世界で比較的よく使用されているコンポーネントだが、もちろん、VBやVBAからも使用することができる、汎用的なコンポーネントである。
インストールといっても、何ら難しいことはない。以下のWebページから「Basp21」のインストール・プログラムBASP21-YYYY-MMDD.exe(YYYY-MMDDには日付が入る。執筆時点の最新は2003年2月11日版。67メソッドをサポート)をダウンロードし、実行するだけでよい。詳細は以下のサイトを参照していただきたい。
手順2―配信リストのテンプレートを作成する
今回作成する配信リストの画面を以下に示す。あらかじめExcelの表として、メールを送信する相手とメール・アドレスの一覧を作成しておき、[メール配信開始]というボタンをクリックすると、実際にメールが送信される。ただし一時的に送信を停止したりできるように、あて先ごとに配信するかどうかを選択できるようにしておく。
Excelでいっせいにメールを送信する「メール配信リスト」サンプル | |||||||||||||||
Excel上でメールの送信先アドレスと名前、送信の許可/不許可を設定してボタンをクリックすると、指定されたあて先に自動的にメールが送信される。 | |||||||||||||||
|
- サンプルExcelファイルのダウンロード
(注:このリンクを右クリックして、ファイルとして保存してから実行してください。なお間違えて送信してしまわないように、このサンプル・ファイルでは、メール・サーバ名や差出人名フィールドなどは空白にしてあります。必ず各自の環境に合わせて変更の上、実行してください)
メール配信リストの表には、配信の是非を決める「配信」列のほか、あて先のエイリアスとなる「送付先名」(別名。メーラにはこの名前があて先として表示される)、そして配信先の「メール・アドレス」を含めるものとする。
サンプルのExcelファイルでは、「配信」列に「○」「×」以外のデータが入らないよう入力制限を設定しているが(この列はプログラム中で配信の是非を判断するキーとなる部分なので、特に重要だ)、これは必ずしも必須ではない。ただ、コードを見ていただけるとお分かりのように、その場合、誤って「○」以外の文字(例えば「〇(Shift JISコードでいうと0x815aの文字。漢数字の零)」や「0(ゼロ)」)が入力された場合にもメールは配信されないことになってしまうので、注意が必要だ。
表を作成したら、配信を実行するためのコマンド・ボタンを設置しておこう。Excelをデザイン モードに変更して([コントロール ツール ボックス]パレットにある[デザイン モード]ボタンをクリックする)、ツール・バー上の[コマンド ボタン]をクリックしてから、シート上でもう1度クリックすればよい。そして、作成されたボタンの[プロパティ]を以下のように変更しておく。オブジェクト名とは、プログラムの中でこのコマンド・ボタンを参照するときに使用される名前のことであり、デフォルトでは[CommandBottun1]となっているはずである。
プロパティ | 概要 |
(オブジェクト名) | btnCmd |
BackColor | &H80000018&(任意) |
Caption | “メール配信開始” |
作成するボタンのプロパティ | |
オブジェクト名さえこの通りにしておけば、あとの属性は任意でよい。分かりやすいものにしておこう。 |
手順3―メール配信のコードを記述する
さあ、外枠ができたら、いよいよコードを記述してみよう。
デザイン・モードの状態でシート上に配置したコマンド・ボタンをダブル・クリックすると、Visual Basic Editorが起動して、btnCmd_Click()プロシージャの編集モードになるはずだ。コード・エディタ上に、以下のコードを記述してほしい。もちろん、メール(SMTP)サーバ名や差出人名、サブジェクト、メール本文などは、実際の用途に合わせて変更していただきたい。なおこのサンプルでは、エラー・チェックなどは行っていないし、送信完了の表示なども行っていないので、必要ならば各自で変更していただきたい。
Private Sub btnCmd_Click() |
btnCmd_Clickプロシージャは、コマンド・ボタンがクリックされたときに呼び出されるプロシージャだ。また、プロパティ・ウィンドウから、ワークシートの「(オブジェクト名)」をあらかじめ「maillist」に変更しておこう。
変数strSrv、strTo、strFrm、strSbj、strBdy、strFleには、それぞれ使用するメール・サーバ名、あて先アドレス、送信元アドレス、件名、本文、添付ファイルのパス(今回は空文字列)をセットする。あて先/送信元アドレスは「名前 <アドレス>」の形式で指定することが可能だ。
変数strToには、シートの上から順番に送付先をセットしていく。途中にあるForループを見てほしい。読み取りの範囲は、定数END_ROWで設定することができる。今回は「5」をセットしているが、表の大きさに応じて変更する必要がある。
Forループ内では、Cellsメソッドを介して、それぞれあて先のアドレス(strAdd)、名前(strNam)、送信の是非(strFlg)を取得する。結果、strFlgが「○」で、かつstrAddが空文字列でない場合のみメールを送信することになる。
メールの実際の配信は、Basp21のSendMailメソッド(詳細はBASP21の配布サイトにあるAPIの解説を参照)で行なうことができる。あらかじめCreateObject関数でBasp21コンポーネントのインスタンス(オブジェクト)を生成しておくのを忘れないでほしい。
手順4―メールを配信する
コードの記述が終わったら、いよいよ[メール配信開始]ボタンをクリックしてみる。繰り返しにはなるが、あらかじめインターネットに接続できるようにしておく必要がある。今回の例では、エラー処理もしていないし、正しく送信できたかどうかも確認していないので、ボタンをクリックしても何も応答はないが、このあたりは必要に応じて改良していただきたい。
ボタンをクリックしてしばらくののち、配信先に以下のようなメールが届いたら、めでたく成功だ。
受信したメールの例 | ||||||||||||
サンプルのシート上の[メール配信開始]ボタンをクリックすると、このようなメールが指定されたアドレスに配信される。送信者名や件名、本文などはプログラム中にハード・コーディングされているので、適宜変更していただきたい。 | ||||||||||||
|
今回は、単純に送信するかどうかを切り替えるだけであったが、そのほかにも「部内連絡用」「××××プロジェクト用」「主要取引先」など、さまざまなフラグを設けて、必要に応じてフィルタを変更する、というようなことも可能だろう。また、今回はメールの本文をハード・コーディングしているが、別のファイルに分けるなどして、メンテナンス性を高めるということもできる。
まだまだ、応用の可能性はあるので、次の機会にはさらに活用してみたい。どうぞお楽しみに。
この記事と関連性の高い別の記事
- テンプレートを元に複数メールを一括配信する(TIPS)
- WSHからExcelファイルの設定情報を読み込む(TIPS)
- PowerShellでテンプレートを使ってメールを一斉配信する(TIPS)
- Outlookでメールの配信日時を指定する(TIPS)
- 間違いメールの発信を予防する方法(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|