Excelファイルの更新をメールで自動通知する方法【業務自動化】
Windows1つのExcelファイルを複数人で共有して編集する場合など、内容を更新した時にメールや電話で共有メンバーへ連絡していませんか。
更新のたびに連絡していると、連絡漏れや連絡が遅れることが発生していないでしょうか。
この記事では、VBAのメール送信機能を利用し、ファイルの保存時などに更新メールを自動的に送信する方法を記載します。
メール送信を自動化することで、面倒な作業とうっかりミスを削減することができ業務効率の向上にもつながります。
Excel以外にもWordやAccessなどVBAが使えるOfficeソフトであれば、同じ方法でメール送信を自動化することができます。
Microsoft Office Home & Business 2019(最新 永続版)|オンラインコード版|Windows10/mac対応|PC2台 created by Rinker マイクロソフト- Amazon
- 楽天市場
- Yahooショッピング
- VBAからメールを送信する
- Outlookの設定
- 参照設定の追加
- メール送信プログラム
- メール送信機能のコード
- サンプルファイル
- sample.xlsm
VBAからメールを送信する
VBAからメールを送信するためには、Outlookの設定とメール送信プログラムを作成する必要があります。
順番に設定手順を説明します。
Outlookの設定メール送信機能は、VBAからMicrosoft Outlookの機能を使ってメールを送信します。
事前にMicrosoft Outlookにアカウント設定がされていること、メールが送受信ができることを確認してください。
すでにMicrosoft Outlookを使われている方は、再設定する必要はありません。
参照設定の追加VBAからMicrosoft Outlookの機能を使用するために「Microsoft Outlook 16.0 Object Library」の参照設定を追加します。
メール送信プログラムVBE(Visual Basic Editor)の画面を開いてメールを送信するコードを入力します。
MailItemオブジェクトVBAからメールを送信するためにOutlookアプリケーションオブジェクトを利用します。
'Outlookを操作するオブジェクト Dim objOutlook As Outlook.Application Dim objMail As Outlook.MailItem Set objOutlook = New Outlook.Application Set objMail = objOutlook.CreateItem(olMailItem)Outlookの機能は、メール以外にも予定表、連絡先、タスクをVBAから操作することができます。
種類オブジェクト定数 メールMailItemolMailItem 予定表AppointmentItemolAppointmentItem 連絡先ContactItemolContactItem タスクTaskItemolTaskItem MailItemプロパティMailItemオブジェクトのプロパティにメール情報を設定します。
メールアドレスを複数設定するときは「;」セミコロンで区切ります。
With objMail .TO = "to@skill-note.net" '宛先のメールドレス .CC = "cc@skill-note.net" 'CCのメールドレス .BCC = "bcc@skill-note.net" 'BCCのメールドレス .Subject = "Title" 'メールの件名 .Body = "Body" 'メールの本文 .BodyFormat = olFormatHTML 'メールの形式 HTML形式:olFormatHTML テキスト形式:olFormatPlain .Attachments.Add("C:\aaa.txt") '添付ファイル End With MailItemメソッドMailItemオブジェクトのsendメソッドでメールを送信します。
objMail.SendMailItemオブジェクトのメソッドでは、メールの送信以外にも下書き保存したり印刷することもできます。
種類メソッド 送信Send 保存Save 印刷PrintOutメール送信機能のコード
Outlookからメールを送信するVBAコードを記載します。
Option Explicit 'メール送信処理 Private Sub SendEmail() On Error GoTo ErrorHandler 'Outlookを操作するオブジェクト Dim objOutlook As Outlook.Application Dim objMail As Outlook.MailItem Set objOutlook = New Outlook.Application Set objMail = objOutlook.CreateItem(olMailItem) With objMail .TO = "to@skill-note.net" '宛先のメールドレス .CC = "cc@skill-note.net" 'CCのメールドレス .BCC = "bcc@skill-note.net" 'BCCのメールドレス .Subject = "Title" 'メールの件名 .Body = "Body" 'メールの本文 .BodyFormat = olFormatHTML 'メールの形式 HTML形式:olFormatHTML テキスト形式:olFormatPlain .Attachments.Add("C:\aaa.txt") '添付ファイル End With 'メール送信 objMail.Send GoTo Finally ErrorHandler: MsgBox "メールの送信に失敗しました", vbOKOnly + vbCritical Finally: Set objOutlook = Nothing End Sub スポンサーリンクサンプルファイル
メール送信機能を実装したサンプルファイルをリンクしますので、ご自由にお使いください。
設定シートの項目にメールアドレスなどを入力することでメール通知を行うことができます。
sample.xlsm 1 ファイル 34.28 KB ダウンロード