現在オフラインです。再接続するためにインターネットの接続を待っています

Outlook のルールを使用するプログラミングの概要

概要
この資料では、開発者向けに、電子メール メッセージを管理するカスタム ソリューションの作成方法に関する情報を提供します。この資料では以下のトピックについて説明します。
  • ルールの概要
  • 既存のソリューションまたは製品
  • 自動仕訳ウィザードの "スクリプトの実行" ルール
  • Outlook Visual Basic for Applications のルール
  • Outlook COM アドイン ルール
  • Outlook 自動仕訳ウィザードのカスタム アクション
  • Exchange イベント スクリプトおよびイベント シンクを使用するサーバー側ルール
  • Exchange SDK ルール コンポーネント
詳細
受信メッセージおよび送信メッセージを処理するソリューションを実装または作成するには、さまざまな方法があります。この資料では利用可能なオプションの概要について説明します。

ルールの概要

Outlook 自動仕訳ウィザードを使用して、一定の状況で一定の電子メール メッセージに適用される手順を定義することにより、受信メッセージと送信メッセージの両方を管理することができます。

: 初期バージョンの Microsoft Outlook では、この機能は受信トレイ アシスタントで提供されます。Outlook では受信トレイ アシスタントの代わりに自動仕訳ウィザードが提供されていますが、受信トレイ アシスタントの機能は、Microsoft Exchange Server パブリック フォルダでルールの処理に使用されています。

自動仕訳ウィザードの使用方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
196212 Outlook 2000 の自動仕訳ウィザードの使用方法
291608 [OL2002] Outlook で自動仕訳ウィザードを使用する方法
ソリューションを開発する際は、ルールがサーバーまたはクライアントで実行されることを理解しておくことが重要です。最初にすべての Exchange Server ベースのルールが実行され、次に Outlook クライアント ベースのルールが実行されます。Exchange サーバーを使用する場合、ルールはクライアントでローカルに保管され、さらにサーバーでも保管されます。ルールは、実行可能であればサーバーで実行されますが、そうでない場合はクライアント上の Outlook で処理されます。クライアント側のルールの主な問題は、このルールが実行されるのは Outlook がオンラインで実行中のときのみであることです。サーバーで完了できないルールは、自動仕訳ウィザードで "クライアント ルール" とマークされます。

以下の例は、サーバーで実行できる Outlook のルールです。
  • メッセージに対する自動返信。
  • メッセージを同じストア内の別のフォルダに移動する。
  • メッセージを同じストア内の別のフォルダにコピーする。
  • フォルダ アシスタントを使用する Exchange Server パブリック フォルダのルール。
以下の例は、クライアントで実行される Outlook のルールです。
  • メッセージを PST ファイルのフォルダに移動する。
  • "カスタム アクション" ルール。
自動仕訳ウィザードを使用することもできますが、さまざまな技術を使用して、ルール機能を実装するソリューションを作成することもできます。これらのソリューションで使用されている技術の中には、Exchange Server および Outlook の組み込みのルール機能と直接統合されるものや、独立したカスタム コードを使用して、組み込みルール機能として動作するソリューションを作成するものがあります。これらのソリューションについてはこの資料で後述しますが、ルールがサーバー側に適用されるかクライアント側に適用されるかに基づいて技術を分類すると以下のように要約されます。

クライアント側ルール開発技術
  • 自動仕訳ウィザードの "スクリプトの実行" ルール
  • Outlook Visual Basic for Applications ソリューション
  • Outlook COM アドイン ソリューション
  • 自動仕訳ウィザードのカスタム アクション
  • Exchange SDK ルール コンポーネント (Rule.dll)
サーバー側ルール開発技術
  • Exchange Server 5.5 スクリプティング エージェント
  • Exchange 2000 Server イベント シンク
  • Exchange SDK ルール コンポーネント (Rule.dll)

既存のソリューションまたは製品

ルールと同様の機能を提供するために設計された、さまざまなサードパーティ製品が開発されています。これらの製品の詳細については、以下の Slipstick の Web サイトを参照してください。

自動仕訳ウィザードの "スクリプトの実行" ルール

Outlook 2002 Visual Basic for Applications は、"スクリプトの実行" オプションを使用することにより、自動仕訳ウィザードで使用することができます。ここで使用される "スクリプト" は、Outlook Visual Basic for Applications である必要があります。他のプログラミング言語を使用することや、Outlook COM アドインのコードをホストすることはできません。この機能は Outlook 2000 では利用できません。

Outlook 自動仕訳ウィザードのスクリプトを作成する方法を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
306108 ルール ウィザードのスクリプトを作成する方法

この方法の重要な利点の 1 つは、自動仕訳ウィザードの組み込み機能を使用して、どのメッセージが処理されるかを決定できることです。しかし、Outlook Visual Basic for Applications は展開用に設計されていないため、この方法は個人用のソリューションにのみ使用してください。Outlook Visual Basic for Applications の展開に関する制限の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
290779 [OL2002] Outlook VBA プロジェクトの管理と配布

Outlook Visual Basic for Applications のルール

自動仕訳ウィザードの "スクリプトの実行" 機能を使用する代わりに、ルールとして機能する Visual Basic for Applications カスタム コードを Outlook 2000 または Outlook 2002 のいずれかで作成することもできます。一般に、これらのソリューションは Item_Add イベントを受信トレイ フォルダで実装し、アイテムが受信トレイに到着するたびにコードを実行するか、または Application_ItemSend イベントを実装し、アイテムが送信されるたびにコードを実行します。この方法の例については、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
292063 Outlook 2002 で Visual Basic for Applications (VBA) を使用してユーザー設定の仕訳ルールを作成する方法
235852 [OL2000] Visual Basic for Applications を使用してユーザー設定の仕訳ルールを作成する方法
Outlook Visual Basic for Applications コードはクライアント上で動作するため、コードを実行するには Outlook が実行されている必要があります。

次のサンプル コードは、新着の電子メール メッセージの添付ファイルを保存するルールです。"Test Att" という件名のメッセージの添付ファイルが、そのファイル名で C:\Test フォルダに保存されます。このコードを実装するには、前述の「サポート技術情報」 (Microsoft Knowledge Base) のいずれか (292063 または 235852) で説明する手順を実行しますが、これらの資料のコードの代わりに以下のコードを使用します。
Dim WithEvents objInbox As Outlook.ItemsPrivate Sub Application_Startup()   Set objInbox = Session.GetDefaultFolder(olFolderInbox).ItemsEnd SubPrivate Sub objInbox_ItemAdd(ByVal Item As Object)   If Item.Class = olMail And Item.Subject = "Test Att" Then      If Item.Attachments.Count > 0 Then         Dim objAttachments As Outlook.Attachments         Set objAttachments = Item.Attachments         For Each objAttach In objAttachments            ' Does not handle duplicate filename scenarios            objAttach.SaveAsFile "C:\Test\" & objAttach.FileName         Next         Set objAttachments = Nothing      End If   End IfEnd Sub				

Outlook COM アドイン ルール

Outlook COM アドインを開発することにより、カスタム ルール ソリューションを作成できます。COM アドイン ソリューションは Outlook Visual Basic for Applications コードと同様に機能しますが、多数のユーザーに展開することができます。Visual Basic COM アドインを作成する方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
230225 [OL2000] Outlook の COM アドインを作成する方法
291163 [OL2002] Outlook の COM アドインを作成する方法
316983 [OL] Visual Basic 6.0 アドイン テンプレートを使用する COM アドインのサンプル
238228 [HOWTO] Visual Basic で Office 2000 COM アドインを作成する方法
以下の Outlook COM アドイン サンプル コードは、返信メッセージを別のフォルダに移動します。"RE:" で始まる件名の電子メール メッセージは、受信トレイと同じレベルの "Sent Mail Archive" フォルダに移動されます。文字列 "RE:" と "Sent Mail Archive" を変更して、このサンプルをカスタマイズすることができます。
Dim WithEvents objOL As Outlook.ApplicationPrivate Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal _ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As _Object, custom() As Variant)    Set objOL = ApplicationEnd SubPrivate Sub AddinInstance_OnDisconnection(ByVal RemoveMode As _      AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)   Set objOL = NothingEnd SubPrivate Sub objOL_ItemSend(ByVal Item As Object, Cancel As Boolean)   Dim objDefFolder As Outlook.MAPIFolder   Dim objSentFolder As Outlook.MAPIFolder       Set objInboxFolder = Session.GetDefaultFolder(olFolderInbox)   Set objSentFolder = obInboxFolder.Parent.Folders("Sent Mail Archive")       Dim strSubject As String   Dim strLeft As String       strSubject = Item.Subject   strLeft = Left(strSubject, 3)   If strLeft = "RE:" Then      Item.SaveSentMessageFolder objSentFolder   End If       Set objInboxFolder = Nothing   Set objSentFolder = NothingEnd Sub				

Outlook 自動仕訳ウィザードのカスタム アクション

カスタム アクションは C/C++ を使用して開発されるもので、インストールは、Outlook を実行しているコンピュータにインストールする必要があります。したがって、カスタム アクションはすべてクライアント側ルールです。カスタム アクションを使用すると、自動仕訳ウィザードのルールの実行時に特定のアクションを実行することができます。Outlook ではカスタム アクションを提供していませんが、サードパーティ ベンダから多数のカスタム アクションを入手できます。カスタム アクションの開発に関するドキュメントは MSDN で提供されています。このドキュメントを参照するには、以下のマイクロソフト Web サイトを参照してください。
カスタム アクションに関する情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
196868 [OL2000] 自動仕訳ウィザードのカスタム アクションおよびサードパーティ アドイン
CRARUN と呼ばれるカスタム アクションのサンプル エージェントは、Exchange Server 5.5 SDK の一部として利用できます。CRARUN の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
151690 [XCLN]受信トレイ アシスタントと自動仕訳ウィザードのカスタム処理について
カスタム ルールおよびカスタム アクションの詳細については、以下の Slipstick Systems Web サイトを参照してください。

Exchange イベント スクリプトおよびイベント シンクを使用するサーバー側ルール

カスタム ルールをサーバー上で実行する必要が生じた場合は、Exchange 5.5 スクリプティング エージェントまたは Exchange 2000 イベント シンクを使用することができます。この種類のソリューションは、特定のパブリック フォルダや数の限定されたメールボックスに特に適しています。関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
181036 [INFO] Exchange Server イベント スクリプトに適したアプリケーション
288156 Visual C++ で Exchange 2000 ストア イベント シンクを作成する方法

Exchange SDK ルール コンポーネント

Exchange 5.5 SDK には、プログラムによってフォルダにルールを作成するルール コンポーネント (Rule.dll) が含まれています。これらのルールは、作成されるルールの種類に応じて、クライアントまたはサーバーのいずれかで実行されます。ルール コンポーネントの使用方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
251125 Rule.dll サンプルを使用して Visual Basic で受信トレイ ルールを作成する方法
: ルール コンポーネントで作成されたルールは Outlook ユーザー インターフェイスには表示されません。

他社テクニカル サポートのお問い合わせ窓口は、ユーザーの便宜のために提供されているものであり、将来予告なしに変更されることがあります。マイクロソフトは、掲載している情報に対して、いかなる責任も負わないものとします。

この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。明示または黙示にかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。
OutSol OutSol97 OutSol98 OutSol2000 OutSol2002
プロパティ

文書番号:324568 - 最終更新日: 11/18/2005 08:23:16 - リビジョン: 5.1

  • Microsoft Outlook 2002 Standard Edition
  • Microsoft Outlook 2000 Standard Edition
  • Microsoft Exchange 2000 Server Standard Edition
  • Microsoft Exchange Server 5.5 Standard Edition
  • kbwizard kbscript kbvba kbaddin kbprogramming kbhowto KB324568
フィードバック