転送時に日付と時刻を本文に追記するマクロ


コメントにて以下のようなご質問をいただきました。


後述の2つの記事を参考にしつつ、転送ボタンを押したときに作成されるメールの本文の先頭に、
日付と時間を挿入しようとしています。
しかし、転送ボタンを押したときに作成されるメールの本文を変えようとすると、Outlook2010が
転送用に新たに作成したメールの本文ではなく、転送元のメールの本文を書き替えようとして
しまうようです。

転送メールのSubjectの変更には成功していますので、間違ったオブジェクトにアクセスしている
わけではないと思うのですが、本文は変更できないなどの制限があるのでしょうか。



動作を確認したところ、確かに転送メールの準備中に発生するイベント (NewInspectors や Forward) の中で本文を変更すると、どういうわけか元のメールの本文が変更されてしまうようです。
このような事象についての情報はないため、もしかすると未知の不具合かもしれません。

対処方法としては、転送メールの準備が完了した後に発生するイベントで本文を変更するというものです。たとえば、Inspector の Activate イベントは、転送メールの準備が終わり、メールが表示されるタイミングで起動されます。このイベントの中で本文を変更するようなマクロは以下のようになります。

' ここをトリプルクリックでマクロ全体を選択できます。
Dim WithEvents myInspectors As Inspectors
Dim WithEvents myInspector As Inspector
'
Private Sub Application_Startup()
    Set myInspectors = Application.Inspectors
End Sub
'
Private Sub myInspectors_NewInspector(ByVal Inspector As Inspector)
    If TypeName(Inspector.CurrentItem) = "MailItem" Then
        If Inspector.CurrentItem Like "FW:*" Then
            ' Activate イベントを実行するための設定
            Set myInspector = Inspector
        End If
    End If
End Sub
'
Private Sub myInspector_Activate()
    Dim objItem As MailItem
    Set objItem = myInspector.CurrentItem
    ' 本文に日付と時刻を挿入
    myInspector.WordEditor.Application.Selection.TypeText Now
    ' イベント解除のための設定
    Set myInspector = Nothing
End Sub

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

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中