Outlook のカスタム プロパティに対する変更点

文書翻訳 文書翻訳
文書番号: 907985 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

カスタム プロパティまたはカスタム フィールドの一貫性のある使用を保証するため、Microsoft Office Outlook 2003 Service Pack 2 (SP2) およびそれ以降のバージョンの Outlook では、Outlook のデータ ストアにカスタム プロパティを導入する方法の一部を制限しています。たとえば、Outlook の個人用フォルダ (.pst) ファイルには、特定の方法でカスタム プロパティを導入できます。

はじめに

この資料では、以下の内容を取り扱います。
  • カスタム プロパティの概要について説明します。
  • Outlook 2003 SP2 およびそれ以降のバージョンの Outlook で、カスタム プロパティの動作がどのように変更されたかについて説明します。
  • 新しいプロパティを作成する際の推奨される方法と推奨されない方法について、それぞれ説明します。

詳細

カスタム プロパティについて

カスタム プロパティは、メッセージに追加情報を付加するために、Outlook などの電子メール プログラムで使用されます。通常、この追加情報は、電子メール プログラムによって特定の目的で使用されますが、カスタム プロパティには他の用途もあります。たとえば、Outlook のカスタム フォームを使用しており、そのフォームにカスタム フィールドが含まれている場合、メッセージやアイテムにカスタム プロパティを追加できます。カスタム プロパティは、追跡用に追加情報を付加する目的でよく使用されます。また、ユーザーに表示する必要のないデータを付加する目的でもカスタム プロパティが使用されます。カスタム ソリューションを使用して、標準のアイテムにカスタム プロパティを追加することもできます。カスタム ソリューションでは、カスタム フォームを使用せずに、プログラムを使用してメッセージやアイテムにカスタム プロパティを追加します。

カスタム プロパティは、Outlook の .msg ファイル形式および .oft ファイル形式で保持できます。また、電子メールの送信者が [Outlook リッチ テキスト形式で送信] オプションを使用している場合、インターネット経由で送信される電子メール メッセージにカスタム プロパティを保持できます。このオプションを使用すると、メッセージの MAPI セクションが TNEF (Transport Neutral Encapsulation Format) でカプセル化され、その後、メッセージが受信されたときに TNEF がデコードされます。

送信者は、次の各状況において、カスタム プロパティを含む電子メールを送信できます。
  • one-off (1 回限りの) カスタム フォームが送信される場合。one-off フォームでは、メッセージにフォームが埋め込まれます。このフォームは他の場所には発行されません。 one-off (1 回限りの) フォームの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
    290657 [OL2002] フォーム定義および one-off フォームの取り扱いについて
  • 発行されたカスタム フォームが送信される場合。この場合、フォームはメッセージに埋め込まれないため、カスタム フォームは送信されません。ただし、フォーム上で使用されたカスタム プロパティは、引き続きメッセージに含まれます。
: カスタム プロパティを参照する方法は、カスタム プロパティが使用される状況に応じて数多く存在します。Outlook のユーザー インターフェイスでは、[フィールドの選択] などで、ユーザー定義のフィールドやカスタム フィールドとして参照されます。Outlook オブジェクト ライブラリでは、カスタム プロパティは UserProperties コレクションの後のユーザー プロパティまたはユーザー定義プロパティとして参照できます。MAPI では、カスタム フィールドは名前付きプロパティとして参照されます。MAPI には、以下を行うための機能が用意されています。
  • プロパティに対する名前の割り当て
  • 一意識別子に対する名前の対応付け
  • 対応付けの永続化
MAPI における名前付きプロパティの実装方法の詳細については、次の MSDN Web サイトを参照してください。
http://msdn2.microsoft.com/en-us/library/ms529055.aspx
: Exchange 環境では、この資料で使用される "ストア" という用語はメールボックス ストア (データベース) 全体を指します。個々のユーザーのメールボックス ストアを指すわけではありません。組織には 1 つ以上の Exchange メールボックス データベースが存在する可能性があります。

Outlook の動作変更

Outlook ではカスタム プロパティの作成方法を制御するために、MAPI の実装が変更されました。カスタム プロパティの一貫性のある使用を保証するには、組織または Outlook クライアントで、カスタム プロパティが既に使用されている必要があります。カスタム プロパティは、使用または登録されるとすぐに、他の Outlook クライアントや、Exchange Server を実行しているサーバーに自由に送信することができます。また、カスタム プロパティはインターネット経由でも送信できます。

インターネット上では、電子メール メッセージは通常 MIME 形式で送信されます。Outlook がインターネットの電子メール メッセージを受信すると、メッセージは MAPI 形式に変換されます。以下にインターネットの電子メール プロトコルの例を示します。
  • POP
  • IMAP
  • HTTP (Hotmail)
Outlook では、インターネット メールに新しいカスタム プロパティを作成することが、デフォルトで無効になりました。デフォルトのメール配信ストアで既に作成されているプロパティだけが、受信する電子メール メッセージに対して保持されます。この変更は、送信者が [Outlook リッチ テキスト形式で送信] オプションを使用し、カプセル化された TNEF (Winmail.dat) で送信されるメッセージに最も影響を与えますが、X-message ヘッダー プロパティが含まれるインターネット メッセージにも影響があります。

: Exchange の組織内で送信されるカスタム プロパティを含むメッセージは、これらの変更の影響を受けません。

カスタム プロパティは、.msg ファイルおよび .oft ファイルでも保存できます。カスタム プロパティを持つ .msg ファイルをユーザーが開いた場合、それらのカスタム プロパティは、メッセージの保存時や転送時などにはデフォルトのストアに保存されません。通常、.oft ファイルは Outlook のカスタム フォームのバックアップに使用されます。.oft ファイルでは、新しい動作がすべての種類のアイテムに適用されます。カスタム フォームは開きません。代わりに、その特定のアイテムの種類のデフォルト フォームにメッセージが表示されます。

要約すると、この設計上の変更により次の 2 つのことが起こります。
  • Outlook では、既存のカスタム プロパティ以外のカスタム プロパティは無視されます。カスタム プロパティが配信ストアに存在しない場合、そのプロパティは作成されず、その値は失われます。カスタム プロパティが既に配信ストアに存在する場合は、その値が保存されます。この変更は次の対象に適用されます。
    • TNEF およびその埋め込みメッセージを含むインターネット電子メール メッセージ。
    • S/MIME メッセージ。
    • .msg ファイルを Outlook のアイテム ウィンドウにドロップしてファイルを別のアイテムに追加する場合の .msg ファイル。この変更は、フォルダにファイルを追加するために .msg ファイルをメインの Outlook ウィンドウにドロップする場合や、電子メール エディタとして Microsoft Word を使用するときに .msg ファイルを Word にドロップする場合の .msg ファイルにも適用されます。
    • ユーザーがダブルクリックまたは右クリックして開く .msg ファイル。
  • Outlook では one-off フォーム定義は無視されます。one-off フォームでカスタム プロパティが指定されていても、そのカスタム プロパティが配信ストアに存在しなければ、one-off フォームは表示されません。代わりに、その特定のアイテムの種類のデフォルト フォームが表示されます。この変更は、TNEF でカプセル化された one-off フォーム定義を含むインターネット電子メール メッセージに適用されます。また、ユーザーがダブルクリックまたは右クリックして開く .oft ファイルにも適用されます。

新しいプロパティを作成する際の推奨される方法およびそれ以外の方法

カスタム ソリューションの設計および開発にはさまざまな方法があります。最適な方法と見なされる方法もありますが、それ以外にも、動作する可能性のある方法があります。ただし、それらの方法は、1 つまたは複数の理由から推奨されません。

推奨される方法 : プログラムを使用してカスタム フィールドを追加する

さまざまな API を使用して、プログラムでカスタム フィールドをアイテムに追加できます。これを行うには、Outlook オブジェクト ライブラリ ("Outlook.Application") の UserProperties.Add メソッドを使用します。この推奨される方法を次のコードに示します。
Set myProp = myItem.UserProperties.Add("MyPropName", olText)
CDO オブジェクト ライブラリ ("MAPI.Session") を使用して、カスタム フィールドを追加することもできます。詳細については、次の MSDN Web サイトを参照してください。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpcdo/html/CdoAdd__Fields_.asp
C++ 開発者の場合は、拡張 MAPI を使用して名前付きプロパティを追加できます。詳細については、次の MSDN Web サイトを参照してください。
http://msdn2.microsoft.com/en-us/library/ms529684.aspx

推奨される方法 : カスタム フィールドを含む発行されたカスタム フォームを使用する

Outlook では、発行されたカスタム フォームであれば通常は信頼されますが、発行されていないフォームや one-off フォームは信頼されません。これには .oft ファイルも含まれます。したがって、カスタム フォーム ソリューションを設計する場合は、それらのカスタム フォームを発行することを強く推奨します。フォームが one-off フォームにならないようにフォームをデザインする必要があります。フォームが発行されていれば、そのフォームは Outlook での変更の影響を受けません。
one-off (1 回限りの) フォーム、および one-off フォームが意図せずに作成される状況の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
290657 [OL2002] フォーム定義および one-off フォームの取り扱いについて

.oft ファイルを別のストアに発行すると、デフォルト ストアでプロパティを作成できます。また、カスタム プロパティを持つカスタム フォームを作成し、適切なフォーム ライブラリまたはフォルダに発行すると、それらに対応するストアにそのカスタム プロパティが作成されます。

推奨される方法 : プログラムを使用してカスタム フォームを展開する

他のユーザーが使用する Outlook カスタム フォームを開発している場合、使用できる方法は多くはありません。使用する方法は、フォームの種類、フォームの使用者、フォームの使用場所など、いくつかの要素に依存します。通常、多数のユーザーがカスタム フォームを使用する場合は、組織フォーム ライブラリにそのフォームを発行することをお勧めします。ただし、それができない場合、共有フォルダや、一部のユーザーの個人用フォーム ライブラリに発行することもできます。Outlook オブジェクト ライブラリの CreateItemFromTemplate メソッドを使用して、プログラムでカスタム フォームをインストールできます。CreateItemFromTemplate メソッドを使用して .oft ファイルを開いた後、PublishForm メソッドを使用してフォームを発行できます。この場合、.oft ファイルはカスタム プロパティの変更の影響を受けません。

非推奨 : .oft ファイルを展開または送信し、ユーザーがファイルを開く

Outlook のカスタム フォームは .oft ファイルとして保存できます。これらのフォームには、カスタム フィールド、ユーザー インターフェイスの変更、および機能を追加するための Microsoft Visual Basic Scripting Edition (VBScript) のカスタム コードを含めることができます。Outlook には、.oft ファイル内の VBScript コードが実行されないようにする機能が既に含まれていますが、.oft ファイルの使用も Outlook で制限されるようになりました。.oft ファイルにカスタム プロパティが含まれており、ユーザーが以前にそれらのカスタム プロパティを使用していない場合、そのカスタム プロパティはユーザーのデフォルト ストアに存在しません。ユーザーがファイルをダブルクリックしても、Outlook にカスタム フォームは表示されません。ただし、.oft ファイルとして保存されているカスタム フォームを Outlook で開くには、[ファイル]、[新規作成]、[フォームの選択] を順にクリックします。その後、[ファイル システム内のユーザー テンプレート] に移動し、[参照] をクリックして .oft ファイルを開きます。フォームが開き、カスタム プロパティをデフォルト ストアに保存できます。

非推奨 : AllowNamedProps レジストリ キーを使用する

組織によっては、その組織全体で特定のカスタム プロパティを利用できるようにする正当な理由が存在する場合があります。複数のストアを使用する場合、一連のカスタム プロパティをすべてのストアに追加することが必要な場合があります。このため、Outlook 2003 SP2 以降のバージョンでは、作成できるカスタム プロパティを指定する、クライアント側のレジストリ キーをサポートしています。有効にする必要があるカスタム プロパティを指定するには、次のレジストリ キーの下にそのカスタム プロパティを定義します。

HKEY_CURRENT_USER\Software\Microsoft\Office\<version>\Outlook\AllowedNamedProps\


: このレジストリ キーで、<version> は使用している Outlook のバージョンのプレースホルダです。Outlook 2003 の場合、このバージョン番号は 11.0 になります。Outlook 2007 の場合、バージョン番号は 12.0 です。Outlook のバージョンが後になるほど、バージョン番号は大きくなります。

レジストリ エントリのレジストリ キー全体の構造は次のとおりです。

<GUID>
<Property Name>
"Kind" (dword)
"ID" (dword)
"Type" (dword)
レジストリ キー構造で使用されているプレースホルダは次のとおりです。
  • <GUID> : プロパティのセットを指定する GUID が含まれています。Outlook のカスタム フォームで使用する、Outlook のカスタム フィールドまたはカスタム プロパティでは、GUID がすべて {00020329-0000-0000-C000} となります。MAPI では、GUID は PS_PULIC_STRINGS として参照されますが、カスタム MAPI プログラムでは、カスタム プロパティに対して独自の GUID を持つことができます。
  • <Property Name> : プロパティの名前を指定します。プロパティの名前が文字列の場合、<Property Name> がそのプロパティの実際の文字列名です。プロパティの名前が ID の場合、このレジストリ キーの値は無視されます。ただし、プロパティをレジストリに保存できるように、プロパティには一意の名前を与える必要があります。Kind キーを 1 に設定した場合や 0 でない場合、レジストリ キー名によってプロパティの名前が決定されます。Kind キーが 1 と等しくない場合、このレジストリ キー名は無視されます。
  • "Kind" (dword) : プロパティの名前が ID か文字列かを指定します。 この値が 0 の場合、プロパティの名前は ID です。名前は、ID で指定される数値になります。この値が 1 の場合、プロパティの名前は文字列です。"Kind" が存在しない場合、この設定がデフォルトです。
  • "ID" (dword) : ID の名前を持つプロパティの ID 名が格納されます。Kind キーが 0 に設定されている場合、この情報は必須です。Kind キーが 1 に設定されている場合、この情報は無視されます。
  • "Type" (dword) : プロパティの型を指定します。
このレジストリ キーは必須ですが、現在は使用されていません。MAPI のタイプを基に、このレジストリ キーに指定できる値を次の表に示します。
元に戻す全体を表示する
MAPI のタイプ Value 説明
PT_UNSPECIFIED 0 インターフェイス用に予約 (呼び出し元にとってタイプは重要ではありません)
PT_NULL 1 NULL プロパティ値
PT_I2 2 符号付き 16 ビット値
PT_LONG 3 符号付き 32 ビット値
PT_R4 4 4 バイト浮動小数点
PT_DOUBLE 5 浮動小数点 (倍精度)
PT_CURRENCY 6 符号付き 64 ビット整数 (小数点以下 4 桁の固定小数点)
PT_APPTIME 7 アプリケーション時刻
PT_ERROR 10 32 ビット エラー値
PT_BOOLEAN 11 16 ビット ブール値 (非ゼロが true)
PT_OBJECT 13 プロパティの埋め込みオブジェクト
PT_I8 20 8 バイト符号付き整数
PT_STRING8 30 NULL 終端 8 ビット文字列
PT_UNICODE 31 NULL 終端 Unicode 文字列
PT_SYSTIME 64 1601 年 1 月 1 日からの時間を 100 ns を単位として表した FILETIME 64 ビット整数
PT_CLSID 72 OLE GUID
PT_BINARY 258 解釈されない (配列と見なされます)
PT_MV_UNSPECIFIED 4096
PT_MV_NULL 4097
PT_MV_I2 4098
PT_MV_LONG 4099
PT_MV_R4 4100
PT_MV_DOUBLE 4101
PT_MV_CURRENCY 4102
PT_MV_APPTIME 4103
PT_MV_ERROR 4106
PT_MV_BOOLEAN 4107
PT_MV_OBJECT 4109
PT_MV_I8 4116
PT_MV_STRING8 4126
PT_MV_UNICODE 4127
PT_MV_SYSTIME 4160
PT_MV_CLSID 4168
PT_MV_BINARY 4354
文字列の名前を持つプロパティを設定する方法の例を次に示します。
名前 : "MyStringFieldName1"
タイプ : PT_LONG
[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\AllowedNamedProps\{00020329-0000-0000-C000-000000000046}\MyStringFieldName1] "Type"=dword:00000003
ID の名前を持つプロパティを設定する方法の例を次に示します。
ID: 0x0330
タイプ : PT_LONG
[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\AllowedNamedProps\{00020329-0000-0000-C000-000000000046}\MyMAPIProp1] "Kind"=dword:00000000 "ID"=dword:00000330 "Type"=dword:00000003

これら 2 つの例では、レジストリ エディタで次のようにレジストリが表示されます。

{00020329-0000-0000-C000-000000000046}
MyStringFieldName1
Type = 3

MyStringFieldName2
Type = 3

{00020329-0000-0000-C000-000000000046}
MyMAPIProp1
Kind = 0
ID = 330
Type = 3

MyMAPIProp2
Kind = 0
ID = 331
Type = 3

非推奨 : プロパティの作成機能を再度有効にする

3 つのレジストリ キーをクライアント コンピュータに展開することで、カスタム プロパティのブロック機能を無効にし、Outlook を従来の動作に戻すことができます。これらのレジストリ キーは、グループ ポリシーでサポートされます。次のレジストリ キーにより、Outlook 2003 を以前の動作に戻すことができます。

: Outlook 2007 の場合は、次のレジストリ キーを使用して以前の動作に戻すことはできません。
  • AllowTNEFtoCreateProps (
    HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Options\Mail] "AllowTNEFtoCreateProps"=dword:00000000
    ) : 値が 0 の場合、TNEF/MIME では Outlook 以外の新しいプロパティを作成できません。この値がデフォルト値です。値が 1 の場合、TNEF/MIME で Outlook 以外の新しいカスタム プロパティを作成できます。
  • AllowMSGFilestoCreateProps : この値が 0 の場合、.msg ファイルと .oft ファイルでは、Outlook 以外の新しいカスタム プロパティを作成できません。この値がデフォルト値です。値が 1 の場合、.msg ファイルと .oft ファイルで Outlook 以外の新しいカスタム プロパティを作成できます。
  • DisallowTNEFPreservation : この新しい動作への移行を簡単にするため、Outlook では、カスタム プロパティが作成されていない場合に元の TNEF が保持されます。元の TNEF は、保存されるアイテム上にバイナリ ストリーム形式で保存されます。Outlook では、次のプロパティ タグを使用して、このストリームが保存されます。
    PR_TNEF_UNPROCESSED_PROPS PROG_TAG(PT_BINARY, 0x0e9C).
    HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Options\Mail] "DisallowTNEFPreservation "=dword:00000000
    レジストリの設定は、Outlook で PR_TNEF_UNPROCESSED_PROPS プロパティが作成されるかどうかを制御します。

    : メッセージを添付ファイルとして別のメッセージに埋め込むと、メッセージから PR_TNEF_UNPROCESSED_PROPS プロパティが削除されます。また、メッセージの転送やメッセージへの返信を行うと、PR_TNEF_UNPROCESSED_PROPS プロパティは削除されます。

プロパティ

文書番号: 907985 - 最終更新日: 2007年4月24日 - リビジョン: 3.3
この資料は以下の製品について記述したものです。
  • Microsoft Office Outlook 2007
  • Microsoft Office Outlook 2003
キーワード:?
kbinfo KB907985
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com