【VBA】定期自動起動処理のエラー対応処理(処理結果メール送信)

4月 14, 2023

※当ブログではリンク先にプロモーションを含みます。

VBAで自動定期起動処理の処理結果をメール送信したい人
VBA処理エラー時に連絡発信したい人向けに書いています。

本記事の内容

・VBAの定期自動起動処理のエラー対応処理
・VBA処理エラー時のメール送信

VBAの定期自動起動処理の処理結果をメール送信したいと思ったことはありませんか?

VBAの定期自動起動処理のエラー対応処理方法を紹介します。

 

定期自動起動処理のエラー対応処理プログラム

以下が定期自動起動処理のエラー対応処理プログラムです。
処理結果をGmailで送信する処理になっています。

  1. '*****************************************
  2. '* 自動処理
  3. '*****************************************
  4. Sub AutoProcess()
  5.     
  6.     On Error GoTo Err_Exit 'エラー時にErr_Exitへ移動させる
  7.     
  8.     'ここに自動化する処理を入れる
  9.     
  10.     
  11.     
  12.     '処理完了メール送信(処理結果メール送信)
  13.     Call ResultMailSend(1)
  14.     
  15.     Exit Sub
  16.     
  17. 'エラー発生時の処理
  18. Err_Exit:
  19.     
  20.     '処理エラーメール送信(処理結果メール送信)
  21.     Call ResultMailSend(0)
  22.     
  23. End Sub
  24. '*****************************************
  25. '* 自動処理結果Gmailメール送信 ERROR_CHK(0:処理エラー 1:処理完了)
  26. '*****************************************
  27. Public Sub ResultMailSend(ERROR_CHK)
  28.     Dim objMail As Object
  29.     Dim fromMail As String
  30.     Dim toMail As String
  31.     Dim ccMail As String
  32.     Dim bccMail As String
  33.     Dim strMessage As String
  34.     Dim Subject As String
  35.     'CODオブジェクトを取得
  36.     Set objMail = CreateObject("CDO.Message")
  37.     
  38.     '送信元を指定
  39.     fromMail = "送信元メールアドレス"
  40.     '宛先を指定 ※送信アドレスが複数の場合はセミコロンで区切る
  41.     toMail = "宛先メールアドレス"
  42.     ccMail = "CCメールアドレス"
  43.     bccMail = "Bccメールアドレス"
  44.     
  45.     '送信元メールアドレス
  46.     objMail.From = fromMail
  47.     
  48.     '宛先メールアドレス
  49.     objMail.To = toMail
  50.     objMail.CC = ccMail
  51.     objMail.Bcc = bccMail
  52.     
  53.     If ERROR_CHK = 1 Then
  54.         '件名
  55.         objMail.Subject = "処理完了"
  56.         'メール文面
  57.         strMessage = "メール本文"
  58.         strMessage = strMessage & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf
  59.         strMessage = strMessage & "※このメールはシステムから自動送信しています。" & vbCrLf
  60.         strMessage = strMessage & ""
  61.         
  62.         objMail.AddAttachment "添付ファイルパス"
  63.         
  64.     Else
  65.         
  66.         '件名
  67.         objMail.Subject = "処理エラー"
  68.         'メール文面
  69.         strMessage = "処理エラーです。処理内容を確認してください。"
  70.         strMessage = strMessage & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf
  71.         strMessage = strMessage & "※このメールはシステムから自動送信しています。" & vbCrLf
  72.         strMessage = strMessage & ""
  73.         
  74.     End If
  75.     
  76.     'メール本文
  77.     objMail.TextBody = strMessage
  78.     
  79.     '文字コード
  80.     objMail.TextBodyPart.Charset = "ISO-2022-JP"
  81.     '認証方法 1:Basic認証
  82.     objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
  83.     'SMTPサーバの種類 1:内部SMTPサーバ 2:外部SMTPサーバ
  84.     objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
  85.     'SMTPサーバのホスト名やIPアドレス
  86.     objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
  87.     'SMTPサーバの送信用ポート番号
  88.     objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
  89.     'SSLを許可
  90.     objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
  91.     'SMTPサーバのユーザー名
  92.     objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = fromMail
  93.     'SMTPサーバのパスワード
  94.     objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "SMTPサーバパスワード"
  95.     
  96.     '設定を更新
  97.     objMail.Configuration.Fields.Update
  98.     '送信
  99.     objMail.Send
  100.         
  101.     Set objMail = Nothing
  102.     
  103. End Sub

 
メール送信処理部分はYahooメール等に変更可能です。
送信設定も必要ですので詳細はこちらの記事を御覧ください。

 

まとめ

VBAの定期自動起動処理のエラー対応処理方法を紹介を紹介しました。
最後までご覧いただき、ありがとうございました。

 

ExcelVBA定期自動実行方法【batファイル vbsファイル タスクスケジューラ】
AccessVBA定期自動実行方法【batファイル vbsファイル タスクスケジューラ】
も紹介していますので、もしよろしければこちらも御覧ください。

 

¥1,604 (2024/02/27 05:40時点 | Amazon調べ)