VBA、VBScript:Windows(2003以降)のCDO(Collaboration Data Objects)を使用してVBAでメールを送信するサンプルプログラム

VBA、VBScript:Windows(2003以降)のCDO(Collaboration Data Objects)を使用してVBAでメールを送信するサンプルプログラム

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を使ってメールを送信する
コマンド・プロンプトでメールを送信できれば、さまざまな管理業務などに応用することができる。その場合、Windowsの標準機能だけで送信できるようになっていると、OSプラットフォームを問わずに利用できる。Windowsシステムに含まれるCDO...

コメント

タイトルとURLをコピーしました