Windows

Excelファイルの更新をメールで自動通知する方法【業務自動化】

スポンサーリンク

1つのExcelファイルを複数人で共有して編集する場合など、内容を更新した時にメールや電話で共有メンバーへ連絡していませんか。

更新のたびに連絡していると、連絡漏れや連絡が遅れることが発生していないでしょうか。

この記事では、VBAのメール送信機能を利用し、ファイルの保存時などに更新メールを自動的に送信する方法を記載します。

メール送信を自動化することで、面倒な作業とうっかりミスを削減することができ業務効率の向上にもつながります。

Excel以外にもWordやAccessなどVBAが使えるOfficeソフトであれば、同じ方法でメール送信を自動化することができます。

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.Send

MailItemオブジェクトのメソッドでは、メールの送信以外にも下書き保存したり印刷することもできます。

種類メソッド
送信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

サンプルファイル

メール送信機能を実装したサンプルファイルをリンクしますので、ご自由にお使いください。

設定シートの項目にメールアドレスなどを入力することでメール通知を行うことができます。

タイトルとURLをコピーしました