nyaou.com

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

このエントリーをはてなブックマークに追加

当サイトは管理人「まだこ」による様々なジャンルのレビューサイトです。

ご連絡は、TwitterFacebook でお願いします。