<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 Access2000物置き>Outlookでメールを送る



【仕 様 な ど】MS-Access2000で作成。Windows98/WindowsNTで動作確認。

【ダウンロード】←Zip形式
            (解凍後、mdb初期状態:およそ168KB)

 【主 な 機 能】マイクロソフトのサイトの情報をそのまま使ってます。要VBA知識。


これは、マイクロソフトのサポート技術情報に掲載されている情報を基に作成しています。
(文書番号が変わっているかもしれませんので、もし下記のリンクが切れている場合は、マイクロソフトの技術情報検索サイトで探してください)

 161088 - [ACC2002] オートメーションを使用して Access から Outlook を介して メッセージを送信する方法

 っていうか、ほとんどぱくりです。なので、上記サイトの内容を十分に理解した上でご使用になってください。
掲載されている情報はAccess97とOutlook97のものですが、2000でもなんとか動きそうです。


メールを送受信するソフトって、いろいろありますけど・・・。MicrosoftOutlookっていうやつは、いわゆるVisualBasic for Application(VBA)が動くんです。

なので、「参照設定」っていうやつさえちゃんとやってあれば、MS-Accessからメールを作成/送信するような構文を作ることができるんですね。つまり、Outlookで作成するメールの、宛先欄とかCC欄とか、本文とか、件名とかの欄を、あたかもMS-Accessのオブジェクトの一部みたいな感じで扱うことができるんです。

そんなわけなので、残念ながらわたしには、Outlook以外のメーラーでコレと同じことができるかどうか、は、わかりません。VisualBasicでスクリプト書くことができるようなメーラーであれば可能性は無きにしも非ずですけど、それはわたしにはちとわからないです。 

いちおう、Outlookをお使いの方、ってことで、よろしくお願いします。 (MS-Outlook2000です)


まず、ちょっとだけOutlookの予備知識を。 
Outlookでは、よく送信する相手を、アドレス帳という形で登録しておくことが多いです。

アドレス帳に登録するとき、相手のメールアドレス以外に「表示名」というものを登録することができます。これは、メールアドレスじゃ誰が誰だかわかんなくなりそうだな・・・ということで、このメーラーの中で識別しやすいような名前を自由に付けることができるんです。 

苗字と名前をアルファベットで組み合わせたものが多いかもしれませんが・・・。

で、表示名を使って、相手先を探したりすることができるんです。宛先欄には、直接本物のメールアドレスをタイプすることもできますし、表示名を書き込んで、アドレス帳の中の実際のメールアドレスと連動させることもできます。その場合、宛先欄に書き込んだ表示名の下にアンダーラインが出てきます。

アンダーラインが出てきたら、表示名とメールアドレスがちゃんと結びついてるってことになります。アンダーラインが出てこない場合は、そんな表示名はアドレス帳の中にない、わからん、とOutlookが判断したことになります。

普段Outlook使ってる方なら、この辺イメージ湧きますよね。 

会社内でメールサーバーとして使用することの多いMicrosoftExchangeServerだと、確か、メールアカウントのリストをテキストファイルかExcelのブックか、どっちかの形式でエクスポートする機能があったと思います(ちょっと記憶が定かじゃないので・・・具体的な操作方法などはわからないです。会社内で確認なさってください。ごめんなさい)。そうしたデータをAccessのデータベースの中に取り込んでくれば、メールの送信用のテーブルを作成することができるかなと思います。



このサンプルでは、下のようなテーブルを作成しています。

ただメールを送信するだけじゃつまんないので、少々枝葉をつけていますが、最終的な目的は「表示名」欄に書かれている値をつなげて、メールの宛先リストを作り、Outlookのメールを新規に作成しよう、ということです。

「表示名」に当たるものがない場合は、「メールアドレス」を「表示名」の変わりに使うように改造すればよいと思います。  メールアドレス、みんなうそっこですからね。ここにメール送っても、本人には届かないです(あたりまえだ)

このサンプルデータベースを開くと、黒い画面が出てきます。  
どのグループのみなさんにメールを送りたいのか、画面上のトグルボタンで選んで(こうした画面の作り方については 「MS-Access2000超入門部屋」の中の「オプショングループ」って何スか をぜひとも参照してくださいね)、右下の「メール作成」ボタンをクリックすると、Outlookの「新規メール作成」のウィンドウが開いてきます。

このデータベースを動かすためには、Outlookの操作をすることができるよう、設定をしておかないといけません。このことは、前述のマイクロソフトの技術サイト(http://www.microsoft.com/JAPAN/support/kb/articles/J029/1/81.htm?LN=JA&SD=SO&FR=0)にも記載がありますが、MS-Accessの中の「参照設定」を確認する必要があります。

あと、最初コレ作ったときAccess97だったんで・・・DAOも必要です。DAOも追加した状態で使ってくださいね。


...

■参照設定について■

多分、ここご覧になってる方は、こんなこと承知してらっしゃる方ばかりだと思いますが・・・。
いちおう、参照設定の手順をご案内します。ご存知ない方、参考にしてください。

↑左下に、小さく小さく最小化した状態で、データベースウィンドウを潜ませていますので、これを「もとのサイズに戻」します。

で、ウィンドウの中どこかを右クリックすると、VisualBasicEditorというメニューを選ぶことができると思います。
(エディタを開きたいだけなんですけど、多分この操作が一番手っ取り早いと思います)

エディタが別ウィンドウで起動しますよね。



 メニューバーの「ツール」→「参照設定」を選びましょう。

皆さんが使ってらっしゃるPCの中で、VisualBasicという言語を用いてつつくことのできるものの一覧が出てきます。導入されているソフトウエアなどによって出てくるものの種類は異なりますが、Outlook2000が導入されていれば、どっか下のほうにMicrosoftOutlook9.0ObjectLibraryっていうのがあると思います。

で、多分、ふつうは、左端の□欄、チェックついてないと思います。つまり、用意はあるけどつける状態になってない、って感じですね。これにチェックをつけておきます。

で、あと、もうひとつ。。。

このサンプルデータベースの中での、わたしのコードの書き方が97のときのままなんで、これを動かすためにMicrosoftDAO3.6ObjectLibraryっていうのも必要になります。これはもしかしたら既にチェックつけてる方もいらっしゃるかもしれないですが、いちおうこれも確認してください。

 で、こいつは、「優先順位」っていうボタンを使って、できるだけ上のほうに移動させておいてください。3番目がいいかな・・・。