メール送信時に、添付ファイルを付けるプログラム。

Excelからメール送信する時に、添付ファイルを付けることが出来るように、プログラムを改良しましょう。

BASP21 には、メールに添付ファイルを付ける機能が、あらかじめ用意されているので、VBAプログラムの変更点は、少しだけです。

【1】Excelのファイル「メール送受信.xls」を開きます。

*マクロを有効にする


【2】VBEを起動します。

*「Altキー」+「F11キー」


【3】フォーム「frm送信」を選択し、「コードの表示」ボタンをクリックします。


【4】「cmd送信」クリック時のプログラムを、一部変更します。

赤枠で囲った部分を、追加したり、変更するだけです。

mail-250.gif

mail-251.gif

追加・変更部分のみ掲載

Dim files As String



'添付ファイル
files = Trim(Range("F" & i).Value)



'メール作成
msg = bobj.SendMail(mailq, mailto, mailfrom, tmpSubj, tmpBody, files)



【5】プログラムの変更が済んだら、VBEを「保存」してください。


これで添付ファイルを付ける準備は、完了です。

VBAプログラムの動作確認は、次回のステップで行ないます。


【解説】
今回は、プログラムが簡単なので、解説も一緒に行ないます。

(1)添付ファイルを指定する変数を、宣言している部分です。
Dim files As String

添付ファイルは、フルパスを文字列で指定するので、String型にしています。


(2)Excelのワークシートから、添付ファイルの値を取得している部分です。
files = Trim(Range("F" & i).Value)

* i はカウントアップします。

変数 files には、添付ファイルがある場合は、フルパスの文字列が代入されます。
もし無い場合は、空の文字列「""」が代入されます。


(3)メールを作成している部分を変更しました。
msg = bobj.SendMail(mailq, mailto, mailfrom, tmpSubj, tmpBody, "")
↓変更
msg = bobj.SendMail(mailq, mailto, mailfrom, tmpSubj, tmpBody, files)

最後の引数を、「""」から「files」に変更している点が、ポイントです。

実は、BASP21のSendMailメソッドは、最後の引数に添付ファイルを指定することが出来たのですが、これまでは利用していなかっただけです。

「""」を指定すると、添付ファイル無しで、メールが送信されていたわけです。

今回は便利なように、添付ファイルの有無を、ユーザーがワークシート上で指定できるように、プログラミングしました。

スポンサードリンク

スポンサードリンク






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