アイテムのショートカットを開くために必要な設定


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


Exchange 2010 の環境で、Outlook は 2007,2010,2013 を利用しています。
[新しい電子メール] から [挿入] の中の [アイテムの添付] – [Outlook アイテム] を選んだ際、書式設定が [リッチ テキスト形式] だった場合のみ、 [挿入する形式] として [ショートカット] が選択可能となりますが、これを選択した状態でメール アイテムやパブリックフォルダ アイテムを挿入するとショートカットが正常に動作しないようです。
Outlook 2013 では、メール作成者が貼り付けられたショートカットをクリックすると以下のメッセージが表示されます。

このオブジェクトは MailMsgAtt で作成されましたが、このプログラムがお使いのコンピュータにインストールされていないか、応答しません。
このオブジェクトを編集するには、MailMsgAtt をインストールするか、MailMsgAtt でダイアログ ボックスが開いていないことを確認します。

これはどういう意味でしょうか?
なお、該当メールを送信後、送信者の [送信済みアイテム] からショートカットをクリックした場合や、メール受信者がショートカットをクリックしても、エラーも出ず、無反応な状態です。



アイテムの添付における [ショートカット] は、ディスクで作成できるショートカット ファイルと同様、実体となるアイテムへのリンク情報のみを添付するものです。
たとえば、サイズが大きいアイテムのショートカットのみを送信することで、メールのサイズを小さくすることができます。

この、アイテムのショートカットについては、通常の添付ファイルやアイテムとは異なり、OLE の埋め込みオブジェクトという形で本文に貼り付けられます。
OLE オブジェクトというのは、異なるアプリケーションのデータを一つのファイルの中に同居させることを可能とする技術で、これを利用することで Word の文書に Excel のグラフや表を画像ではなく Excel のオブジェクトとして貼り付け、Word 文書の中であっても Excel ができるようになります。
HTML 形式やテキスト形式の本文では OLE オブジェクトの埋め込みができないので、リッチテキスト形式の場合に限りショートカットで挿入が可能となります。

ただし、OLE オブジェクトにはスクリプトを仕込むようなことも可能であり、外部からのデータの OLE オブジェクトをダブルクリックで簡単に実行してしまうと、ウィルスに感染するというような危険も潜んでいます。
そのため、Outlook の既定では受信したメールの OLE オブジェクトは実行できないようになっており、受信メールや送信済みアイテムのショートカットをダブルクリックしても何も起こりません。
OLE オブジェクトを実行できるようにするには、以下のレジストリ設定が必要となります。
なお、<ver> には Outlook のバージョン番号 (Outlook 2013 なら 15.0、Outlook 2010 なら 14.0、Outlook 2007 なら 12.0) が入ります。
また、このキーは管理者権限がないユーザーは書き込むことができませんので、管理者権限が無い場合はシステム管理者にご相談ください。

キー: HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\<ver>\Outlook\Security
値1: AdminSecurityMode = 3 (DWORD)
値2: AllowInPlaceOleActivation = 1 (DWORD)

上記の AdminSecurityMode = 3 はセキュリティ関連の設定をグループ ポリシーで設定されるレジストリにより行うための指定であり、AllowInPlaceOleActivation = 1 は OLE オブジェクトを実行できるようにする設定です。
これにより受信メールでも送信前と同様にショートカットをダブルクリックで開くことができるようになりますが、このような設定を行うことでセキュリティのリスクが高まるため、設定を行う際にはセキュリティに注意してください。

そして、ダブルクリックで開けるようになると、ご質問にあった以下のエラーが表示される動作となります。

このオブジェクトは MailMsgAtt で作成されましたが、このプログラムがお使いのコンピュータにインストールされていないか、応答しません。
このオブジェクトを編集するには、MailMsgAtt をインストールするか、MailMsgAtt でダイアログ ボックスが開いていないことを確認します。

このエラーの MailMsgAtt というのは、OLE オブジェクトとして埋め込まれたショートカットのアプリケーション名にあたるものなのですが、何故か Outlook ではなく MailMsgAtt という名前になっています。
つまり、Outlook で開こうとしているにもかかわらず、Outlook が応答しないという状況になっているのですが、これを応答可能とするには以下のレジストリ設定が必要になります。

キー: HKEY_CURRENT_USER\Software\Microsoft\Office\<ver>\Outlook\Options\Mail
値: EnableHotfix19966 = 1 (DWORD)

これにより、ショートカットをダブルクリックで開くことができるようになります。

なお、レジストリを編集するのが難しいという方のためにレジストリ設定を行うスクリプトも作成しました。
スクリプトは以下の通りです。

' ここをトリプルクリックでスクリプト全体を選択できます。
Dim olkApp
Dim wshShell
Dim strVer
Set olkApp = CreateObject("Outlook.Application")
Set wshShell = CreateObject("WScript.Shell")
' バージョン取得
strVer = Left(olkApp.Version, 4)
' レジストリ設定
wshShell.RegWrite "HKCU\Software\Policies\Microsoft\Office\" & strVer & _
    "\Outlook\Security\AdminSecurityMode", 3, "REG_DWORD"
wshShell.RegWrite "HKCU\Software\Policies\Microsoft\Office\" & strVer & _
    "\Outlook\Security\AllowInPlaceOLEActivation", 1, "REG_DWORD"
wshShell.RegWrite "HKCU\Software\Microsoft\Office\" & strVer & _
    "\Outlook\Options\Mail\EnableHotfix19966", 1, "REG_DWORD"

アイテムのショートカットを開くために必要な設定」への1件のフィードバック

  1. ご回答ありがとうございました。検証環境にて、無事に動作することを確認致しました。社内に展開しようと思います。
    マイクロソフト社のナレッジやコミニュティでまったく情報がない問題でしたので、大変助かりました。
    今後ともよろしくお願い致します。

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中