Excel

VBAやVBScriptでCDOを使用してVBAでメール送信をする方法について覚書。

Windows 2000/XP/Server 2003には、CDO(Collaboration Data Objects)と呼ばれるメッセージング・コンポーネント(CDOSYS.DLL)が標準で搭載されている。

これを利用すればWindows Script HostやVBS、ExcelやAccessのVBAなどからメール送信ができる。

ただし、実行するPCでSMTPサービスが実行されていないと動作しません。

今までbasp21を使用してたけどWindows 2000以上であれば必要ない。
スポンサードリンク


VBAでCDOを使用してメール送信するサンプルプログラム

以下CDOを使用したVBAのサンプルプログラム。
Sub SendMessage()
Dim oMsg As Object
    Set oMsg = CreateObject("CDO.Message")
    oMsg.From = "yyyyy@xxx.co.jp"
    oMsg.To = "xxxxx@xxx.co.jp"
    oMsg.Subject = "Test "
    oMsg.TextBody = "テストメッセージです" & vbCrLf & Now
    oMsg.Send
End Sub

ファイルを添付する場合

送信するメールにファイルを添付して送る場合のサンプルプログラム。
AddAttachmentをSendの前に挿入するだけ。
Sub SendMessage()
Dim oMsg As Object
    Set oMsg = CreateObject("CDO.Message")
    With oMsg
        .From = "yyyyy@xxx.co.jp"
        .To = "xxxxx@xxx.co.jp"
        .Subject = "Test "
        .TextBody = "テストメッセージです" & vbCrLf & Now
        .AddAttachment ("file://C:/test.txt")
        .Send
    End With
End Sub
サンプルを実行してもうまくメールが送信されない場合は、常駐しているウィルスチェックプログラムをチェックしてください。

ウィルスチェックプログラムのほうで送信をブロックする設定がされている場合があります。

参考サイト
@IT:Windows標準機能とWSHを使ってメールを送信する

スポンサードリンク

  

関連記事