Excelでメール送信するVBAの作成|SMTPサーバー・添付ファイル

シートのボタンを配置し、クリックするとメールを送信するVBAを作成します。



Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ

Excelでメールが送信できるようになると、名簿や管理表などから直接送信できるようになり便利です。

そこでこのVBAをご利用ください。

今回、Excel VBAでメール送信するにはTatsuo Babaさん作成のBSMTP.DLLを使用させていただきました。

BSMTP.DLLの著作権はTatsuo Babaさんが所有されています。

BSMTP.DLLはここよりダウンロードできます。

ダウンロード後、システムフォルダ(windows\system32)においてください。

メール関連の記事「メールをすぐに送信する」を掲載しています参照してください。



メールを送信するVBA

Excel VBA コード

Option Explicit

Private Declare Function SendMail Lib "bsmtp" _
      (szServer As String, szTo As String, szFrom As String, szSubject As String,_
       szBody As String, szFile As String) As String

Private Sub ExSendMail()
    Dim sret As String
    Dim szServer As String  'SMTPサーバー名
    Dim szFrom As String    '送信元
    Dim szTo As String      '宛先
    Dim szSubject As String '件名
    Dim szBody As String    '本文
    Dim szFile As String    '添付ファイル
    
    szServer = Range("G13")
    szFrom = Range("G14")
    szTo = Range("G17")
    szSubject = Range("G4")
    szBody = Range("G5")
    szFile = ""
    
    sret = SendMail(szServer, szTo, szFrom, szSubject, szBody, szFile)

    ' 送信エラーの場合
    If Len(sret) <> 0 Then
        MsgBox "送信エラー: " & sret
    End If
End Sub

Private Sub CommandButton1_Click()
    ExSendMail
End Sub



Excelシート画面

下画像の送信ボタンを配置したシートを作成しました。

件名、本文、SMTPサーバー名、送信元アドレス、送信先アドレスを入力します。

※.メールサーバーが「Outbound Port25 Blocking」に対応している場合、送信できない場合があります。

この場合、SMTPサーバー名:587 のようにSMTPの後ろに「:587」を付けると送信できる場合があります。

メールサーバーが対応していないとできません。

「Outbound Port25 Blocking」とは25番ポートブロックといわれています。

ウイルスメールや迷惑メール、フィッシングメールなどの防止の為、近年、採用されるプロバイダーが多くなっています。


メールを送信するExcel VBA


Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved