【コピペでOK】Notesメールで一斉送信を自動化!Excelからメールを自動作成するVBAを紹介!

コピペで使えるコード集

会社のメールソフトがNotesだから、効率化の情報が少ない…
Notesメールでも一斉送信がしたい!

Notesメールの効率化は情報が少なく、独学で難しいツールの一つです。私も以前はNotesユーザーだったので、その苦労は分かります。Outlookであればすぐに自動化のVBAが出てくるのに、Notesはほとんどわからない…結構そういう人も多いと思います。

そこで今回は、ExcelからNotesメールを一括送信するVBAを紹介します。NotesでもOutlook同様に自動化が可能なので、ぜひともこの記事を参考に自動化を進めてみてください。

なお、現在私の手元にはNotes環境がないため、今回のコードは過去作成したツールをベースにしています。

動作検証がリアルタイムでできていない点、ご了承ください。

【コピペでOK】Notesメール一括送信VBAコード

以下のコードをコピペするだけで、Notesの添付付きメールを自動作成できます。

実行の際、あらかじめ宛先/CCなどの項目の作成が必要です。詳しくはこの後紹介します。

Option Explicit

Sub SendNotesMail_List()
    ' Lotus Notesの定数定義(Late Binding用)
    Const EMBED_ATTACHMENT As Integer = 1454

    Dim wkNSes As Object    ' lotus.NOTESSESSION
    Dim wkNDB As Object     ' lotus.NOTESDATABASE
    Dim wkNDoc As Object    ' lotus.NOTESDOCUMENT
    Dim wkNRtItem As Object ' lotus.NOTESRICHTEXTITEM
    Dim wkNAtt As Object    ' lotus.NOTESEMBEDDEDOBJECT

    Dim ws As Worksheet
    Dim lRow As Long, i As Long, j As Long
    Dim strTo As String, strCC As String, strSub As String, strBody As String
    Dim attPath As String

    ' 対象のシート(アクティブシート または シート名を指定)
    Set ws = ActiveSheet

    ' 最終行を取得(A列を基準)
    lRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

    ' Notesのセッションを起動(ループの外で1回だけ実行)
    Set wkNSes = CreateObject("Notes.NotesSession")
    ' メールデータベースを開く
    Set wkNDB = wkNSes.GETDATABASE("", "")
    wkNDB.OpenMail

    ' 2行目から最終行までループ
    For i = 2 To lRow

        ' ①リストの内容を変数に格納
        strTo = ws.Cells(i, 1).Value   ' A列:宛先
        strCC = ws.Cells(i, 2).Value   ' B列:CC
        strSub = ws.Cells(i, 3).Value  ' C列:件名

        ' ②本文の組み立て(指定のフォーマット)
        strBody = ws.Cells(i, 4).Value & vbCrLf _
                  & ws.Cells(i, 5).Value & vbCrLf _
                  & ws.Cells(i, 6).Value & vbCrLf _
                  & ws.Cells(i, 7).Value

        ' Notesドキュメントの作成
        Set wkNDoc = wkNDB.CREATEDOCUMENT()

        ' ヘッダー情報のセット
        wkNDoc.Subject = strSub
        wkNDoc.SendTo = Split(strTo, ",") ' カンマ区切りで複数宛先に対応

        If strCC <> "" Then
            wkNDoc.CopyTo = Split(strCC, ",")
        End If

        ' リッチテキスト(本文・添付用)の作成
        Set wkNRtItem = wkNDoc.CreateRichTextItem("BODY")

        With wkNRtItem
            .APPENDTEXT strBody
            .ADDNEWLINE 2 ' 本文の後に改行を入れる

            ' ③添付ファイルの処理(H列[8] ~ L列[12] の5列分を確認)
            For j = 8 To 12
                attPath = ws.Cells(i, j).Value

                ' 空欄でなければ添付処理を行う
                If attPath <> "" Then
                    ' ファイルが存在するか簡易チェック(任意)
                    If Dir(attPath) <> "" Then
                        Set wkNAtt = .EmbedObject(EMBED_ATTACHMENT, "", attPath)
                    End If
                End If
            Next j
        End With

        ' メールを送信する (False = フォームを保存せずに送信)
        wkNDoc.Send False

        ' オブジェクト解放(ループ内)
        Set wkNAtt = Nothing
        Set wkNRtItem = Nothing
        Set wkNDoc = Nothing

    Next i

    ' オブジェクト解放(全体)
    Set wkNDB = Nothing
    Set wkNSes = Nothing

    MsgBox "全件送信完了しました", vbInformation

End Sub

業務効率化におすすめ書籍『9選』はコチラから!

マクロの動作概要

実行すると、リストをもとにNotesのメールが自動作成されます。添付ファイルは無しでもOKで最大5個まで追加できます。

デフォルトでは、自動送信をオフにしていますが、送信まで自動化することも可能です。

設定詳細:ExcelシートとNotesの準備

ここからはVBAのコピペ方法を含めて、使い方を紹介します。

エクセルの準備(項目設定・to/cc/本文/添付の入力)

まず、エクセルのシートに以下のタイトルを入力してください

・A列:宛先(To)
・B列:CC
・C列:件名
・D列:会社名
・E列:担当者
・F列:本文
・G列:署名

・H列:添付

直接この名前をVBAで認識はしていません。ただ、リスト入力の間違い防止になるため、この内容で入力してください。す。

Notesの起動を確認

このVBAは「Notesを起動し、ログインしておくこと」が必須となります。

VBAを実行する前に、Notesが起動されているかを確認してください。

VBAの埋込/ボタンの挿入

エクセルの「開発」タブから「Visual Basic」エディタを開きます。そしてVBAコードを「標準モジュール」に貼り付けます。

「開発」を出す設定コードの書き方は、VBAの基礎まとめのページで詳しく解説しています。こちらの記事もぜひ参考にしてみてください。

メール内容の書き込み・VBA実行

あとはメール内容を書き、 VBAを実行すればメールが自動的に作成されます。

会社名・担当者は、本文の上側に入るように設定しています。また署名本文の下に入るように設定しています。

なお改行は一つしか入れていません。必要があれば、セル内で改行を足すか、コードを編集するようにしてください。

H列の添付ファイルは、フルパスで入力してください。

また、送信ボタンを設置すると、マクロ画面を開く必要がなくなりとても便利です。ボタンのつけ方は、こちらの記事を参考にしてください。

まとめ

今回は、Outlookのメール自動作成VBAを紹介しました。とても効率がUPするVBAなので、ぜひ活用してみてください。

今回紹介したようなVBAスキルは、一度身につければ一生使える武器となります。コピペも便利ですが、本で体系的に学ぶことで「自分でコードを書く力」を短期間で身につけられます。

以下の記事では、Kindle Unlimited(読み放題)無料で読めるおすすめのVBA書籍を厳選して紹介しています。生成AIを前提とした、今までとは全く違ったVBA学習法も紹介しているので、是非チェックしてみてください!

 VBA初心者におすすめの『5冊』はこちら!

コメント

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