皆さんこんにちは まだ完成しきっていませんが、すでに使えるレベルですので投稿します。随時更新します
OUTLOOKでメール送信する際に、うっかりミスを防止するために決まったチェックをすると思います。
近年では、コンプライアンスの順守、機密漏洩防止の観点から、会社によっては、チェックのリストをメール本文に追加して、チェックの漏れを徹底的に排除する。といったことを求められるかもしれません。
そこで今回は、こういったチェックリストを送信前につかえる便利マクロを考えてみました
だれの:会社員・サラリーマン
解決したいこと:短時間で、もれなくチェックできる。会社のルールにも適合させる
・OUTLOOK実装の機能はないか?見当たりませんでした。
・copilotを活用してプログラミング 以下の質問文で何度か壁打ち 3回の質問で完了 Q2をカスタマイズするだけで自分好みにできます
・スクリプト作成 ~ テスト ~ 実装 までのステップ
Q:
outlook の文面上で、チェックボックスのようなもので送付前の確認行為をしたいのですがなにか良い方法はありませんか?
A:
Outlookで送付前の確認を行うための方法はいくつかあります。以下の方法を試してみてください:
- 送信前に確認する設定:
- Outlookの設定で「送信前に確認する」を有効にすることで、メールを送信する前に確認する画面が表示されます。
- 送信前に確認するアドイン:
- 「Send Later for Outlook」や「MailCheck」などのアドインをインストールすることで、送信前に確認する機能を追加できます。
- 送信前に確認するメールテンプレート:
- メールテンプレートを作成し、送信前に確認するためのチェックリストを含めることで、確認の手間を減らすことができます。
- 送信前に確認するスクリプト:
- 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に追加するには、以下の手順を参考にしてください:
- Outlookを開きます。
Alt + F11
キーを押して、VBAエディタを開きます。ThisOutlookSession
をダブルクリックします。- 上記のスクリプトをコピーし、エディタに貼り付けます。
- VBAエディタを閉じ、Outlookを再起動します。
2のアドイン簡単にできるなら安定しそうなので活用したい まずは調査 ・・・(調査中)
コメント