質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

2回答

3336閲覧

VBA 送信時に宛先の中に特定のドメインが含まれる場合にエラーメッセージを出す

kob2

総合スコア10

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2016/05/19 11:34

###前提・実現したいこと
Outlookで使用するマクロを作ろうと考えているのですが、
上記タイトルにある「送信時に宛先の中に特定のドメインが含まれる場合にエラーメッセージを出す」という動作をするマクロは作成可能でしょうか?

VBAを触った経験が無く、まったく見当もつかない現状です。
どなたかご教授願えますでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

OutlookでVBAコーディングをしたことは無いですが、できるようです

メールを送信するときはApplication.ItemSendというイベントが発生するので、それによってコールされるApplication_ItemSendプロシージャで宛先を取り出し、特定のドメイン文字列とマッチするか判定して、送信させたくなければイベントをキャンセルさせることができるみたいです

Application.ItemSend イベント (Outlook)(公式リファレンス)
Outlookマクロ:fromアドレスと件名の確認(参考ブログ)

投稿2016/05/19 12:08

takito

総合スコア3111

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

https://outlooklab.wordpress.com/2016/03/26/%E6%8C%87%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%9F%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E4%BB%A5%E5%A4%96%E3%81%B8%E3%81%AE%E9%80%81%E4%BF%A1%E3%82%92%E9%98%B2%E3%81%90%E3%83%9E%E3%82%AF%E3%83%AD/

指定されたドメイン以外への送信を防ぐマクロ

参考になれば。

追記します。

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
sinzou

総合スコア392

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問