###前提・実現したいこと
Outlookで使用するマクロを作ろうと考えているのですが、
上記タイトルにある「送信時に宛先の中に特定のドメインが含まれる場合にエラーメッセージを出す」という動作をするマクロは作成可能でしょうか?
VBAを触った経験が無く、まったく見当もつかない現状です。
どなたかご教授願えますでしょうか。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
OutlookでVBAコーディングをしたことは無いですが、できるようです
メールを送信するときはApplication.ItemSend
というイベントが発生するので、それによってコールされるApplication_ItemSend
プロシージャで宛先を取り出し、特定のドメイン文字列とマッチするか判定して、送信させたくなければイベントをキャンセルさせることができるみたいです
Application.ItemSend イベント (Outlook)(公式リファレンス)
Outlookマクロ:fromアドレスと件名の確認(参考ブログ)
投稿2016/05/19 12:08
総合スコア3111
0
指定されたドメイン以外への送信を防ぐマクロ
参考になれば。
追記します。
https://qiita.com/scrtree/items/b53de8861d247541c299 意外と知られていないOutlookで開発する方法
上記でVBA開始準備説明あります。
https://www.eripyon.com/mt/2013/04/outlook_2013.html Outlookで送信前に送信先と添付忘れを確認するメッセージを表示するの巻
上記でSub Application_ItemSendへのプログラム書き方説明あります。
で「指定されたドメイン以外への送信を防ぐマクロ」さんのコード拝借して
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) Dim arrAllowedDomains ' 送信可能なドメイン名を指定 arrAllowedDomains = Array("example.com", "contoso.com") Dim oRec As Recipient Dim i As Integer Dim strErr As String Dim bAllow As Boolean For Each oRec In Item.Recipients '宛先 bAllow = False For i = 0 To UBound(arrAllowedDomains) If oRec.Address Like "*@" & arrAllowedDomains(i) Then bAllow = True Exit For End If Next ' 送信可能なドメインではない受信者が存在したら If bAllow = True Then Cancel = True '送信キャンセル strErr = strErr & oRec.Address & ";" End If Next ' 送信がキャンセルされた場合にはエラー表示 If Cancel Then MsgBox "以下のアドレスへの送信は許可されていません。" & vbCrLf & strErr End If End Sub
投稿2020/02/11 23:37
編集2020/02/17 09:15総合スコア392
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。