(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の参照設定を自分の環境に合わせて変えてください。
メールアドレスに自分のメールアドレスなどを入れて「送信」ボタンを押してみてください。
送信キャンセルされます。