[Outlook2010まで]Outlook で自動仕訳ウィザードのスクリプトを作成する方法


この方法はOutlook2013以降は使えない機能になっています。
セキュリティの強化のためとされています。
もっとも全く使えないわけではなく、レジストリを設定すれば動きます。
もうすぐOutlook2010のページもみな日本語がなくなり、忘れ去られてしまうでしょう。
しかし、サブルーチンでは全く意味がわかりません。

Outlook で自動仕訳ウィザードのスクリプトを作成する方法
2020/03/18
適用対象:Microsoft Outlook 2010, Microsoft Office Outlook 2003

概要

Outlook の自動仕訳ウィザードを使用すると、特定のルールを作成するときに "スクリプトを実行" することができます。 これにより、開発者は、自動仕訳ウィザードの通常の機能を使用するときでも、受信メールに対してVBA~~アクション~~を実行することができます。

詳細

重要

自動仕訳ウィザードはカスタムコードを "script" として参照しますが、Microsoft Visual Basic Scripting Edition (VBScript) や Microsoft JScript などの他のスクリプト言語ではなく、Outlook Visual basic for Applications でコードを作成する必要があります。 また、Outlook Visual Basic for Applications は展開するように設計されていないため、このカスタムコードを展開するには、各ユーザーのコンピューターに手動で構成する必要があります。 Outlook.COM アドインでカスタムコードを作成することはできません。 Visual Basic for Applications プロジェクトの配布に関連する制限の詳細については、以下の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

290779 Outlook 2002 Visual Basic for APPLICATIONS (VBA) プロジェクトの管理と配布に関する説明

(中略)Microsoft では、特定の目的のために、明示的にも黙示的にも、または特定の目的のための適合性の黙示的な保証を含め、明示されているかどうかにかかわらず、説明のためのプログラミング例を提供しています。 この記事では、使用するプログラミング言語と、手順を作成してデバッグするためのツールについて理解していることを前提としています。 Microsoft サポート担当者は、特定の手順の機能について説明しますが、特定のニーズに合わせて追加機能を提供したり、プロシージャを作成したりすることはありません。
プログラミングの手順が制限されている場合は、Microsoft 認定パートナーまたは Microsoft アドバイザリーサービスにお問い合わせください。

メッセージを処理するカスタムコードを実装するには、Visual Basic for Applications でサブルーチンSubプロシージャ1を作成します。 Subプロシージャの名前は重要ではありませんが、自動仕訳ウィザードが電子メール (MailItem) または会議出席依頼 (MeetingItem) をSubプロシージャに渡すため、1つの引数を受け取る必要があります。 引数は MailItem または MeetingItem 型である必要があります。それ以外の場合、このSubプロシージャを自動仕訳ウィザードで使用できません。2
Object 型の引数を定義することにより、両方の種類のアイテムを処理する1つのSubプロシージャを作成することはできません。3 次の Outlook Visual Basic for Applications コードは、Subプロシージャの作成方法を示しています。4

vba
Sub CustomMailMessageRule(Item As Outlook.MailItem)
   MsgBox "Mail message arrived: " & Item.Subject
End Sub

Sub CustomMeetingRequestRule(Item As Outlook.MeetingItem)
   MsgBox "Meeting request arrived: " & Item.Subject
End Sub
  1. サブルーチンとなっているがSubプロシージャ 

  2. 住所やNoteItemは不可。この2種類以外はできない。しかし会議出席依頼もMailItemの変種なので、事実上MailItemしか効かない 

  3. `Sub CustomMailMeetingRule(oItem As Object)`のような記述は不可↩ 

  4. メールや会議出席依頼(これもメールの一種)がきたときにメッセージボックスがポップアップして通知する↩