Excelで一斉メール送信ソフトを作ってみよう

Step 5 一斉送信の実行




Homeに戻る > Excelでアプリケーションソフト > 一斉メール送信ソフト

シートのVBAコード

下記のVBAコードを追加してください。

Private Sub ExAllSendMail(lrow As Long)
    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    '添付ファイル
    Dim i As Long
    
    szServer = Range("J7") & ":" & Range("M7")
    If Range("J6") = "" Then
        szFrom = Range("JI8")
    Else
        szFrom = Range("J6") & "<" & Range("J8") & ">"
    End If
    szSubject = Range("J10")
    szBody = Range("J11")
    szFile = ""
    
On Error GoTo ErrEnd
    For i = 7 To lrow
        '送信マークとアドレスの確認
        If Cells(i, 2) = 1 And Cells(i, 4) <> "" Then
            Cells(i, 5) = ""
            Cells(i, 6) = "送信中!!"
            Cells(i, 6).Font.Color = RGB(255, 0, 0)
            
            '宛名
            If Cells(i, 3) = "" Then
                szTo = Cells(i, 3)
            Else
                szTo = Cells(i, 3) & "<" & Cells(i, 4) & ">"
            End If
        
            sret = SendMail(szServer, szTo, szFrom, szSubject, szBody, szFile)

            Cells(i, 6).Font.Color = RGB(0, 0, 0)
            '送信エラーの場合
            If Len(sret) <> 0 Then
                Cells(i, 5) = "Error"
                Cells(i, 6) = sret
            Else
                Cells(i, 5) = Format(Now, "yyyy/mm/dd hh:nn:ss")
                Cells(i, 6) = ""
            End If
        End If
    Next
    Exit Sub
ErrEnd:
    Range("E2") = ""
MsgBox "送信中にエラーが発生しました。処理を中止します。" _
& vbCrLf & Err.Description, , "一斉メール送信"

End Sub

下記のVBAコードに変更してください。

Private Sub CommandButton2_Click()
    Dim lrow As Long
    
    '送信設定値のチェック
    If ExDataCheck = False Then
        Exit Sub
    End If
    '送信先アドレスの最終行を調べる
    lrow = ActiveSheet.Range("D65536").End(xlUp).Row
    If lrow = 6 Then
        MsgBox "送信先アドレスは最低1件は入力してください。", , "一斉メール送信"
    End If
    '一斉メール送信
    ExAllSendMail lrow
End Sub


シート画面

「結果」列を追加しています。

「一斉送信開始」ボタンをクリックすると、通信列が1の宛先に順に送信します。
送信中の宛名の結果欄には「送信中!!」と赤色で表示されます。

※. yahooメール、hotmailメール 等のフリーメールを利用した迷惑メール送信には絶対に使用しないでください。


Homeに戻る > Excelでアプリケーションソフト > 一斉メール送信ソフト

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


Copyright (c) Excel-Excel ! All rights reserved