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

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

目次

概要

この資料では、開発者向けに、電子メール メッセージを管理するカスタム ソリューションの作成方法に関する情報を提供します。この資料では以下のトピックについて説明します。
  • ルールの概要
  • 既存のソリューションまたは製品
  • 自動仕訳ウィザードの "スクリプトの実行" ルール
  • 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 サイトを参照してください。
Slipstick.com
http://www.slipstick.com/addins/auto.htm

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

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.Items

Private Sub Application_Startup()
   Set objInbox = Session.GetDefaultFolder(olFolderInbox).Items
End Sub

Private 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 If
End 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.Application

Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal _
ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As _
Object, custom() As Variant)
    Set objOL = Application
End Sub

Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As _
      AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
   Set objOL = Nothing
End Sub

Private 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 = Nothing
End Sub
				

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

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

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 ユーザー インターフェイスには表示されません。

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

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

プロパティ

文書番号: 324568 - 最終更新日: 2005年11月18日 - リビジョン: 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
"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