
はじめに
以前に公開したメール一括配信では、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 を何度も実行することで複数追加できます。
上記のコード以外にもちょこちょこ修正していますので、前回のものを修正しようと思っている方はご注意ください。
最後に
それからメールアドレスやメールの内容を間違わないように十分にご注意ください。間違っても私の責任ではございませんので(⌒ω⌒;)
