(VBA) Access から Outlook メール作成画面の「送信」ボタン押下後に送信キャンセル(office2010)
2014-10-17 22:31:32
まさかこんな簡単にできたなんて・・・
もう皆様すでにご存知かもしれませんが、Access から Outlook 送信画面を開き、Outlook 送信画面から「送信」ボタンを押下した時にメールの内容などをチェックすることができます。
私、これはずっと無理だと思ってたのですが、普通にMicrosoftのドキュメントに書いてありました。
衝撃的すぎたのでご紹介です。
「MailItem.Send イベント (Outlook)」のサンプルを例に、少し手を加えたもの。
※Outlook Object Library を参照設定していることが前提となります。
'パブリック変数 myItem に Outlook.MailItem のイベントを紐付ける Public WithEvents myItem As Outlook.MailItem 'メール送信時に発生するSendイベントを補足 'イベントハンドル名は「オブジェクト名_イベント名」で補足できます Private Sub myItem_Send(Cancel As Boolean) 'ここにお好きな処理を。 '下記1行を入れることで送信キャンセルとなります。 Cancel = True End Sub 'メール送信メソッド。このメソッドを呼ぶとメールが作成されます。 Sub SendMyMail() Set myItem = Outlook.CreateItem(olMailItem) myItem.To = "メールアドレス" myItem.Subject = "Data files information" myItem.Display End Sub
サンプル
Access2013 で作成しています。
Outlook のある環境で試してみてください。
私の環境がOffice2013なので、それ未満のバージョンの場合、AccessのOutlookの参照設定を自分の環境に合わせて変えてください。
メールアドレスに自分のメールアドレスなどを入れて「送信」ボタンを押してみてください。
送信キャンセルされます。