はじめに
以前に公開したメール一括配信では、BASP21を利用したもので、Excelが32ビット限定でした。
今回は「CDO.Message」を利用して配信できます。Excelが64ビットでも利用できます。添付ファイルも同様に対応しています。
ダウンロード
ちょこっと解説
上記よりダウンロードして直接みていただければと思いますが、今回の大きな変更点は、標準モジュールのMailSendファンクション部分です。
BASP21を利用したときは以下の1行でよろしくやってくれましたが、
ret = SendMail(szServer, mailTo, szFrom, szSubject, szBody, szFile)
次の内容で置き換えております。
Set objMessage = CreateObject("CDO.Message") objMessage.From = szFrom objMessage.To = mailTo 'objMessage.Cc = MailCc objMessage.Bcc = mailBcc objMessage.Subject = szSubject objMessage.BodyPart.Charset = "ISO-2022-JP" '' 文字化け対策 objMessage.TextBody = szBody ' 添付ファイル If Len(fileBuf) > 0 Then szFile = Split(fileBuf, vbCrLf) For i = LBound(szFile) To UBound(szFile) objMessage.AddAttachment (szFile(i)) Next i End If objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = szServer objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = szPort If authId <> "" Then objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = authId objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = authPass End If objMessage.Configuration.Fields.Update ret = objMessage.Send() Set objMessage = Nothing
添付ファイルは、objMessage.AddAttachment を何度も実行することで複数追加できます。
上記のコード以外にもちょこちょこ修正していますので、前回のものを修正しようと思っている方はご注意ください。
最後に
それからメールアドレスやメールの内容を間違わないように十分にご注意ください。間違っても私の責任ではございませんので(⌒ω⌒;)