VBA

EXCEL VBAでメール一括配信!添付ファイルも付けられるよ

更新日:

ニーズの高いメールの一括配信処理ですが、お手軽にできる方法がなんだかパッとしません。※私が見つけられていないだけかもですが。。。

いろいろ検索してもVBAからメールソフトを利用する方法だったり、やり方が詳しく書かれていなかったりで、結局メールソフトで1件1件送っていたりします。

「先日も一覧表でメールアドレスのわかる方には一括でメールを送りたい!添付ファイルも付けたい!」と相談されておりました。

今までその方はWindowsソフトの”メールディストリビューター?”なるものを駆使して配信されておりましたが、配信先が変わるたび操作に手間取っていたので何とかしたいと思いややしばらくの間考えておりました。

ある日、ふと思い出しました。あ! BASP21 使えるかも!

随分昔に何かでつかっており、久々にBASP21のサイトを見たらまだ公開されておりました。(⌒ω⌒)良かった~

参考BASP21

ASPの VBScript やVisual Basic、EXCEL VBA WSH(Windows Scripting Host)などから使える汎用のコンポーネントです。

というわけでEXCEL VBAを使って作成しました。

機能
  • メール配信先一覧シートよりメールアドレスの入力がある方に対して一括でメール配信します。
  • あらかじめ5種類の文章(タイトル・本文・署名)を用意して送信時に切り替えられます。
  • メール本文中に会社名・部署名・名前を差し込めます。
  • 添付ファイルを複数添付できます。

動作確認

EXCEL2010 32ビット版

2020/05/11追記 64ビット版はこちらをご利用ください。

準備

BASP21のダウンロードとインストール

こちらのサイト BASP21 より以下の矢印を付けたファイルをダウンロードします。

basp21-2003-0211.exe を実行して画面の指示に従ってインストールを完了します。

bsmtp20070629-587.lzh を解凍して、現れた2つのファイル(Bsendm.exeとBsmtp.dll)を C:\Windows\System32 へ上書きコピーします。

メール配信用EXCELの準備

基本的に自由なレイアウトで作成していただいて良いと思います。私はこんな感じにしました。

作るのめんどくさい方はこちらからダウンロードしてください。

ご利用の際には、左上のメール設定を行ってから、校閲>シートの保護でパスワード設定してください。件名・本文・署名はシート保護後も編集可能です。

VBAの説明

メール送信シート
  • 添付ファイルを付けるための処理を記述します。添付ファイルボタン名はcmdFile1~5としてます。
  • また添付ファイルボタン横のテキストボックス名はtxtFile1~5としてます。
  • ファイルは複数添付出来ますが、添付ファイルをクリアするようにしてあるので、一度にまとめて選択しないといけません。

標準モジュール
  • テスト送信ボタン名はTESTとしてます。TEST_Click() ではメール送信者宛にテストメールを送ります。メール本文のレイアウト等をチェックするために利用できます。
  • 一括配信ボタン名はAllSendとしてます。
  • BASP21は、Declare~で利用できるようにしてます。
  • bccで自分宛にもメール配信するようにしてます。
  • メール配信結果は上段のListboxにOKかNGを出力します。

最後に

ファイルをダウンロード出来るようにしたので実際の動きを確認していただくのが良いと思います。

それからメールアドレスやメールの内容を間違って一括配信しても、私の責任ではありませんので内容を良く確認してから配信するように気を付けてください。

スポンサードリンク

スポンサードリンク

-VBA
-, , ,

Copyright© あきらちんの技術メモ , 2023 All Rights Reserved Powered by STINGER.