エクセルからメール送信

エクセルからメール送信するにはどうしたらよいでしょうか。Outlookライブラリを使えば、簡単にできます。サンプルでは、ワークシートの内容を送っていますが、ワードドキュメントを添付したり、応用範囲はいろいろ考えられると思います。

 

参照設定: Microsoft Outlook 16.0 Object Library

 

Public Sub MailToGmail()

    Dim oMail As Outlook.MailItem
    Dim oOutLook As Outlook.Application
    Dim buff As String
    Dim xCell As Excel.Range

    Set oOutLook = New Outlook.Application
    Set oMail = oOutLook.CreateItem(olMailItem)
    oMail.Subject = "Today's result " & Format(Now, "MM/DD hh:mm")

    Set xCell = Sheet1.Range("V2")
    buff = xCell.Text & vbTab & xCell.Offset(0, 1).Text & vbCrLf
    buff = buff & xCell.Offset(1, 0).Text & vbTab & xCell.Offset(1, 1).Text & vbCrLf
    buff = buff & xCell.Offset(2, 0).Text & vbTab & xCell.Offset(2, 1).Text & vbCrLf
    buff = buff & xCell.Offset(3, 0).Text & vbTab & xCell.Offset(3, 1).Text & vbCrLf
    buff = buff & xCell.Offset(5, 0).Text & vbTab & xCell.Offset(4, 1).Text

    oMail.Body = buff
    oMail.To = "myemail@gmail.com"
    oMail.Send

End Sub

 

 

前もってエクセルのスケジューラーを使って指定した時間にメール送信することも可能です。

Application.OnTime "11:35:00", "MailToGmail"

 キャンセルしたい場合は、

Application.OnTime "11:35:00", "MailToGmail", , False