転送・返信時にメッセージの件名や本文にアクセスする方法


メッセージを開いたり、新規に作成したりする場合、Inspector オブジェクトというオブジェクトが生成され、そのオブジェクトの CurrentItem に編集中のアイテムが保持されます。
また、Inspector オブジェクトが作成される際には Inspectors というオブジェクトの NewInspector イベントが発生します。
そこで、Outlook 起動時に Inspectors オブジェクトを取得しておき、そのオブジェクトの NewInspector イベントで転送や返信のメッセージの場合の処理を記載すればよいと思います。
以下はサンプルのコードです。

' ここをトリプルクリックでマクロ全体を選択できます。
Dim WithEvents myInspectors As Inspectors
'
Private Sub Application_Startup()
    Set myInspectors = Application.Inspectors
End Sub
'
Private Sub myInspectors_NewInspector(ByVal Inspector As Inspector)
    Dim myMail As MailItem
    If Inspector.CurrentItem.MessageClass = "IPM.Note" Then
        Set myMail = Inspector.CurrentItem
        If myMail.Sent = False Then
            If myMail.Subject Like "FW:*" Or myMail.Subject Like "RE:*" Then
                ' myMail に格納された転送・返信メッセージの処理
                strSubject = myMail.Subject ' 件名を取得
                strBody = myMail.Body ' 本文を取得
            End If
        End If
    End If
End Sub

なお、この方法だと FW: や RE: で始まる件名のテンプレートを使った場合や、新規作成の件名を FW: などではじめ、それを下書きに保存しておいてから再編集をしたような場合も転送・返信として扱われてしまいますが、そのようなケースはおそらくめったにないと思います。

マクロの登録方法やメニューへの追加について

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中