Windowsユーザの方は標準のOutlookをメーラとして使う機会も多いと思います。
GmailであればChromeのプラグインでメール送信確認事も簡単にできます。
Outlookでも誤送信防止用のポップアップをOutlookで使えるようにマクロを使って誤送信防止確認ポップアップを実装したので、実装方法を共有します。
リンク
環境
今回説明で使用している環境は以下となります。
違うバージョンでも応用できると思うので試してみてください。
- Windows 11 Home
- Outlook (Officeアプリ)
Outlook用誤送信防止(送信確認ポップ)の実装手順
1.Outlookの開発リボン(マクロ)の有効化
デフォルトだとOutlookの開発リボンが無効になっているため、マクロを追加ができないので最初に開発リボンを有効化します。
- ファイルをクリック
- オプションをクリック
- リボンのユーザ設定を選択して、右のボックスの開発にチェックを付け、OKをクリックする。
- リボンに開発が追加されていればOKです。追加されていない場合はオプションでチェックが付いているか確認してください。
2.Outlookのに誤送信防止(送信確認ポップ)マクロを追加する
次に誤送信防止(送信確認ポップ)マクロを実装します。
- リボンの開発からVisual Basicをクリックします。
- マクロが開くので、左のボックスからThisOutlookSessionをダブルクリックして開きます。
- 描きコードをコピペして保存します。メッセージなどは任意に変更してください。関数名のApplication_ItemSendは変更しないでください。
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
On Error GoTo Exception
Dim address As String
Dim subject As String
Dim attachment As String
Dim popMessage As String
Dim objRecipient As Recipient
' メールの件名の取得
subject = Item.subject
' Item.Recipientsで全受信者を取得し、受信者ごとの表示名とメールアドレスを格納
address = vbCrLf
For Each objRecipient In Item.Recipients
address = address & objRecipient.Name & "(" & objRecipient.address & ")" & vbCrLf
Next
' Item.Attachmentsで添付ファイル情報を取得し、ファイル名を格納
attachment = vbCrLf
For Each objAttachment In Item.Attachments
attachment = attachment & objAttachment.FileName & vbCrLf
Next
' ポップアップメッセージ作成
popMessage = "メール件名:" & vbCrLf & subject & vbCrLf & vbCrLf & "宛先:" & address & vbCrLf & "添付ファイル:" & attachment & vbCrLf & vbCrLf & "メールを送信してもよろしいですか?"
If MsgBox(popMessage, vbExclamation + vbYesNo + vbDefaultButton2) <> vbYes Then
Cancel = True
End If
On Error GoTo 0
Exit Sub
Exception:
MsgBox CStr(Err.Number) & ":" & Err.Description, vbOKOnly + vbCritical
Cancel = True
Exit Sub
End Sub
動作確認
最後に動作確認を行います。
- 新規メールを作成して、送信ボタンをクリックします。
- 確認用のポップアップが表示されればOKです。はいをクリックしないとメールの送信がされません。
以上で、実装完了です。
結構簡単なので、是非試してみてください!
補足:メール本文をポップアップに追加する場合
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
On Error GoTo Exception
Dim address As String
Dim subject As String
Dim attachment As String
Dim popMessage As String
Dim objRecipient As Recipient
Dim body As String
' メールの件名の取得
subject = Item.subject
' Item.Recipientsで全受信者を取得し、受信者ごとの表示名とメールアドレスを格納
address = vbCrLf
For Each objRecipient In Item.Recipients
address = address & objRecipient.Name & "(" & objRecipient.address & ")" & vbCrLf
Next
' Item.Attachmentsで添付ファイル情報を取得し、ファイル名を格納
attachment = vbCrLf
For Each objAttachment In Item.Attachments
attachment = attachment & objAttachment.FileName & vbCrLf
Next
'メール本文取得
body = Item.body
' ポップアップメッセージ作成
popMessage = "メール件名:" & vbCrLf & subject & vbCrLf & vbCrLf & "宛先:" & address & vbCrLf & "本文:" & body & vbCrLf & "添付ファイル:" & vbCrLf & attachment & vbCrLf & vbCrLf & "上記の宛先に、メールを送信してもよろしいですか?"
If MsgBox(popMessage, vbExclamation + vbYesNo + vbDefaultButton2) <> vbYes Then
Cancel = True
End If
On Error GoTo 0
Exit Sub
Exception:
MsgBox CStr(Err.Number) & ":" & Err.Description, vbOKOnly + vbCritical
Cancel = True
Exit Sub
End Sub