【M365・マクロ】OUTLOOKのメール送信時にチェックをするマクロ(書きかけ)

皆さんこんにちは まだ完成しきっていませんが、すでに使えるレベルですので投稿します。随時更新します

OUTLOOKでメール送信する際に、うっかりミスを防止するために決まったチェックをすると思います。

近年では、コンプライアンスの順守、機密漏洩防止の観点から、会社によっては、チェックのリストをメール本文に追加して、チェックの漏れを徹底的に排除する。といったことを求められるかもしれません。

そこで今回は、こういったチェックリストを送信前につかえる便利マクロを考えてみました

だれの:会社員・サラリーマン

解決したいこと:短時間で、もれなくチェックできる。会社のルールにも適合させる

・OUTLOOK実装の機能はないか?見当たりませんでした。

・copilotを活用してプログラミング 以下の質問文で何度か壁打ち  3回の質問で完了 Q2をカスタマイズするだけで自分好みにできます

・スクリプト作成 ~ テスト ~ 実装 までのステップ

Q:

outlook の文面上で、チェックボックスのようなもので送付前の確認行為をしたいのですがなにか良い方法はありませんか?

A:

Outlookで送付前の確認を行うための方法はいくつかあります。以下の方法を試してみてください:

  1. 送信前に確認する設定:
    • Outlookの設定で「送信前に確認する」を有効にすることで、メールを送信する前に確認する画面が表示されます。
  2. 送信前に確認するアドイン:
    • 「Send Later for Outlook」や「MailCheck」などのアドインをインストールすることで、送信前に確認する機能を追加できます。
  3. 送信前に確認するメールテンプレート:
    • メールテンプレートを作成し、送信前に確認するためのチェックリストを含めることで、確認の手間を減らすことができます。
  4. 送信前に確認するスクリプト:
    • Outlook VBAスクリプトを使用して、送信前に確認する機能をカスタマイズすることも可能です。

これらの方法を試してみて、最適なものを見つけてください。何か他にお手伝いできることがあれば教えてくださいね。


ということで4をためしてみた

Q2

Outlook VBAスクリプトを使用 で サンプルのスクリプトを書いてください チェックする項目は
1,パスワードを併記していないか
2,cc宛先は適切か
3,何度もメールを返信繰り返していないか?

Q3
上記の項目をチェックした後、返信文の一つ上の行にチェックしたことを記入するスクリプトを追加してください

・実際のスクリプト

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim Mail As Outlook.MailItem
    Dim Recipients As Outlook.Recipients
    Dim Recipient As Outlook.Recipient
    Dim Prompt As String
    Dim ContinueSend As Boolean
    Dim i As Integer
    Dim CheckMessage As String
    Dim CheckFlag As Boolean
    
    ' メールオブジェクトを取得
    If TypeName(Item) = "MailItem" Then
        Set Mail = Item
        ContinueSend = True
        CheckFlag = False
        CheckMessage = "確認済み:" & vbCrLf
        
        ' 1. パスワードが含まれていないかチェック
        If InStr(Mail.Body, "password") > 0 Or InStr(Mail.Body, "パスワード") > 0 Then
            Prompt = "メール本文にパスワードが含まれています。本当に送信しますか?"
            If MsgBox(Prompt, vbYesNo + vbExclamation + vbDefaultButton2, "確認") = vbNo Then
                Cancel = True
                ContinueSend = False
            Else
                CheckMessage = CheckMessage & "1. パスワードのチェック - OK" & vbCrLf
                CheckFlag = True
            End If
        Else
            CheckMessage = CheckMessage & "1. パスワードのチェック - OK" & vbCrLf
            CheckFlag = True
        End If
        
        ' 2. CCの宛先が適切かチェック
        If ContinueSend Then
            Set Recipients = Mail.Recipients
            For i = 1 To Recipients.Count
                Set Recipient = Recipients.Item(i)
                If Recipient.Type = olCC Then
                    If InStr(Recipient.Address, "@example.com") = 0 Then ' 例: @example.com ドメインのみ許可
                        Prompt = "CCの宛先に不適切なアドレスが含まれています。本当に送信しますか?"
                        If MsgBox(Prompt, vbYesNo + vbExclamation + vbDefaultButton2, "確認") = vbNo Then
                            Cancel = True
                            ContinueSend = False
                            Exit For
                        Else
                            CheckMessage = CheckMessage & "2. CCのチェック - OK" & vbCrLf
                            CheckFlag = True
                        End If
                    Else
                        CheckMessage = CheckMessage & "2. CCのチェック - OK" & vbCrLf
                        CheckFlag = True
                    End If
                End If
            Next i
        End If
        
        ' 3. 返信が複数回行われていないかチェック
        If ContinueSend And InStr(Mail.Subject, "Re:") > 1 Then
            Prompt = "メールの返信が複数回行われています。本当に送信しますか?"
            If MsgBox(Prompt, vbYesNo + vbExclamation + vbDefaultButton2, "確認") = vbNo Then
                Cancel = True
            Else
                CheckMessage = CheckMessage & "3. 返信回数のチェック - OK" & vbCrLf
                CheckFlag = True
            End If
        Else
            CheckMessage = CheckMessage & "3. 返信回数のチェック - OK" & vbCrLf
            CheckFlag = True
        End If

        ' 確認メッセージを追加
        If ContinueSend And CheckFlag Then
            Mail.Body = CheckMessage & vbCrLf & Mail.Body
        End If

    End If
End Sub

・使用感

・実装方法

実装方法

このスクリプトをOutlookに追加するには、以下の手順を参考にしてください:

  1. Outlookを開きます。
  2. Alt + F11キーを押して、VBAエディタを開きます。
  3. ThisOutlookSessionをダブルクリックします。
  4. 上記のスクリプトをコピーし、エディタに貼り付けます。
  5. VBAエディタを閉じ、Outlookを再起動します。

2のアドイン簡単にできるなら安定しそうなので活用したい まずは調査 ・・・(調査中)

コメント

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