Share via


Outlook オブジェクト モデルでルールを管理する

Rules オブジェクト モデルは、プログラムによるルールの追加、編集、および削除をサポートしています。 Rule および Rules コレクション オブジェクトを使用すると、セッション用に定義されたルールのアクセス、追加、および削除ができます。 RuleAction および RuleCondition オブジェクト、そのコレクション オブジェクト、および派生のアクションと条件オブジェクトは、加えてアクションと条件の編集をサポートします。

注:

Rules オブジェクト モデルは、Outlook ユーザー インターフェイスのルールとアラート ウィザードと部分的なパリティを提供します。 ウィザードを使用して作成できるすべてのルールをサポートしているわけではありませんが、最も一般的に使用されるルールのアクションと条件をサポートしています。 [仕分けルールと通知ウィザード] を使用して作成された他のルールと同様に、プログラムで作成されたルールは、メール アイテム、会議出席依頼、タスク要求、ドキュメント、配信確認、開封確認、投票応答、不在通知などのメッセージに適用されます。

Store.GetRules を使用して、現在のセッションで使用されているストアに定義されたルールを表す Rules コレクション オブジェクトを取得します。

現在のセッションに対するルールのセットを取得したら、Rules.Create を使用して新しいルールを追加したり、既存のルールを編集したり (ルールを有効または無効にする、ルールの実行順序を変更する、ルールの処理およびルールの条件を変更するなど)、Rules.Remove を使用して Rules コレクションからルールを削除したりできます。 Microsoft Office Outlook 2007 より前のバージョンの Outlook で作成したルールも編集できますが、Office Outlook 2007 以降で作成したルールを以前のバージョンの Outlook で編集することはできません。

Rules コレクション内の各ルールを取得するには、Rules.Item(Index)を使用してコレクションにインデックスを作成し、Index はルールの名前 (既定のプロパティ Rule.Name)、またはコレクション内のルールの合計数である Rules.Count までの値を使用して取得できます。

Rule.ExecutionOrder は、コレクション内のルールの実行順序を示し、Rules.Items(Index)Index の数値に直接マップされます。 たとえば、 Rules.Item(1)Rule.ExecutionOrder が 1 のルールを表し、 Rules.Item(2)Rule.ExecutionOrder が 2 であるルールを表し Rules.Item(Rules.Count)Rule.ExecutionOrderRules.Count であるルールを表します。

ルールを定義したら、Rule.Enabled プロパティを True に設定してルールを有効にし、Rules.Save を使用してルールを保存し、ルールとその有効な状態が現在のセッションを超えて持続するようにする必要があります。 ルールは、正常に保存された後にのみ有効になります。 Rules.Save は、Exchange サーバーへの接続が遅い場合、パフォーマンスの観点からコストのかかる操作になる可能性があることに注意してください。オプションで、ユーザーが操作をキャンセルするための進捗状況ダイアログ ボックスを表示できます。 ユーザーが [仕分けルールと通知ウィザード] で同じルールを編集するか、ユーザーが進捗状況ダイアログ ボックスをキャンセルすると、保存は失敗します。 このような場合、Rules.Save はエラーを発生させ、ユーザーは [仕分けルールと通知ウィザード] によって表示されるエラー ダイアログに応答することで競合を解決します。

Rules.Save を使用して Office Outlook 2007 で作成された 1 つ以上のルールを保存すると、以前のバージョンの Outlook を使用してそのルールを編集できないことを通知するダイアログが表示されます。 保存操作を続行するには、ダイアログを確認する必要があります。

ルールを実行するには、Rule.Execute を使用します。 現在のセッションの終了後もルールが有効になるようにするには、ルールを有効にして保存する必要がありますが、ルールの実行は有効状態にかかわらず可能です。 ルールを実行するときは、ルールの適用先となるフォルダーを必要に応じて指定できます。 既定では、受信トレイにあるすべてのメッセージに対してルールが実行されますが、受信トレイのサブフォルダーは対象になりません。

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。