次の方法で共有


スマート タグのアーキテクチャ

更新 : 2007 年 11 月

対象

このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。

ドキュメント レベルのプロジェクト

  • Excel 2003

  • Excel 2007

  • Word 2003

  • Word 2007

アプリケーション レベルのプロジェクト

  • Excel 2007

  • Word 2007

詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

Visual Studio Tools for Office で提供される、柔軟性のあるスマート タグ オブジェクト モデルを使用すると、Microsoft Office Word 文書および Microsoft Office Excel ブックに迅速にスマート タグを追加できます。高度なシナリオでは、独自のスマート タグ レコグナイザを作成したり、スマート タグに格納されているデータにアクセスしたりすることもできます。

Visual Studio Tools for Office のスマート タグの詳細については、「スマート タグの概要」を参照してください。

オブジェクト モデルの概要

Visual Studio Tools for Office のスマート タグのオブジェクト モデルでは、スマート タグ、およびスマート タグで実行するアクションに、個別のクラスが用意されています。Visual Studio Tools for Office のスマート タグをドキュメントに追加する方法を示すコード例については、「方法 : Word 文書にスマート タグを追加する」および「方法 : Excel ブックにスマート タグを追加する」を参照してください。

スマート タグ

Visual Studio Tools for Office のスマート タグは、抽象的な SmartTagBase クラスから派生したクラスのインスタンスです。Visual Studio Tools for Office には、抽象的な SmartTagBase クラスを実装する 2 つのクラス (Microsoft.Office.Tools.Word.SmartTag および Microsoft.Office.Tools.Excel.SmartTag) があります。独自のスマート タグ レコグナイザを作成する必要がない場合は、これらのクラスのインスタンスを使用してドキュメントにスマート タグを追加できます。

SmartTagBase クラスには、次の機能が用意されています。

  • Terms プロパティと Expressions プロパティ。これらのプロパティには、スマート タグで認識できる項目が含まれています。単純な文字列を指定するには、Terms プロパティに文字列を追加します。複雑な文字列を指定するには、文字列を表す正規表現を Expressions プロパティに追加します。

  • Actions プロパティ。このプロパティには、ユーザーがスマート タグを選択したときに実行するアクションが含まれています。

  • 既定のスマート タグ レコグナイザ。ユーザー入力を Terms プロパティおよび Expressions プロパティの内容と比較します。

アクション

ユーザーがスマート タグを選択すると、ユーザーは、そのスマート タグに固有の 1 つまたは複数のアクションを実行できます。それぞれのアクションは、Microsoft.Office.Tools.Word.Action クラスまたは Microsoft.Office.Tools.Excel.Action クラスのインスタンスによって表されます。これらのクラスでは、BeforeCaptionShow イベントおよび Click イベントが提供されます。

  • BeforeCaptionShow イベントは、ユーザーがスマート タグ アイコンをクリックした直後、スマート タグ メニューが表示される前に発生します。実行時にスマート タグ メニューのアクションのタイトルを変更する場合は、このイベントを処理します。

  • Click イベントは、ユーザーがスマート タグ メニューに表示されるアクションのタイトルをクリックしたときに発生します。ユーザーがアクションをクリックしたときにコードを実行するには、このイベントを処理します。

これらのイベントのイベント ハンドラは、認識されたテキストおよびテキストの場所へのアクセスを提供する Microsoft.Office.Tools.Excel.ActionEventArgs (Excel の場合) または Microsoft.Office.Tools.Word.ActionEventArgs (Word の場合) を受け取ります。

既定のテキスト認識動作

ユーザーが文書またはブック内でテキストを入力すると、Word および Excel では、そのテキストからトークンの一覧が作成されます。SmartTagBase クラス内の既定のスマート タグ レコグナイザは、このトークンの一覧およびユーザーが入力した完全なテキストを受け取ります。既定のレコグナイザは、次のいずれかの条件が満たされる場合に、スマート タグを識別します。

  • Terms プロパティ内の文字列の 1 つが、文書やブック内のトークンのいずれかに正確に一致する。

  • Expressions プロパティ内の正規表現の 1 つが、ユーザーが入力した完全なテキストで一致する。

Word および Excel は、空白が埋め込まれている文字列、または文字、数字、および記号を組み合わせた文字列を、ユーザーの入力時に個別のトークンに解析します。たとえば、ユーザーが「sales report」と入力した場合、Word および Excel では "sales" および "report" というトークンが作成されます。同様に、「2005sales」と入力した場合、Word および Excel では "2005" および "sales" というトークンが作成されます。

空白が埋め込まれている文字列、または文字、数字、および記号を組み合わせた文字列をスマート タグに認識させる場合は、その文字列を Terms プロパティに追加しないでください。代わりに、その文字列を表す正規表現を Expressions プロパティに追加するか、その文字列を検索する独自のレコグナイザを作成します。

スマート タグ レコグナイザの作成

独自のスマート タグ レコグナイザを作成するには、SmartTagBaseMicrosoft.Office.Tools.Word.SmartTag、または Microsoft.Office.Tools.Excel.SmartTag から新しいクラスを派生させ、Recognize メソッドをオーバーライドします。

実装した Recognize メソッド内では、テキストからスマート タグ項目を検索し、スマート タグ項目が見つかったら Word または Excel に手動でスマート タグを登録する必要があります。Visual Studio Tools for Office のスマート タグのレコグナイザを作成する方法を示す例については、「方法 : Word でカスタム レコグナイザを持つスマート タグを作成する」および「方法 : Excel でカスタム レコグナイザを持つスマート タグを作成する」を参照してください。

スマート タグを手動で登録する手順は、どのスマート タグ クラスから派生したかによって異なります。スマート タグ登録の各種オプションを、以下の表に示します。

派生元のクラス

スマート タグの登録方法

Microsoft.Office.Tools.Word.SmartTag

SmartTag.PersistTag メソッドを呼び出します。

Microsoft.Office.Tools.Excel.SmartTag

SmartTag.PersistTag メソッドを呼び出します。

SmartTagBase

Recognize メソッドの site パラメータの CommitSmartTag メソッドを呼び出します。

site パラメータは、ISmartTagRecognizerSite インターフェイスを実装するオブジェクトです。このインターフェイスは、Microsoft Smart Tags 2.0 Type Library への参照をプロジェクトに追加している場合に使用できます。詳細については、MSDN ライブラリのスマート タグ SDK に関するドキュメントを参照してください。

プロパティ バッグ内のデータの格納と取得

スマート タグでは、キーと値の組み合わせのコレクションであるプロパティ バッグに、データを格納できます。プロパティ バッグ内のそれぞれのキーと値の組み合わせは、1 つの文字列です。

Visual Studio Tools for Office のスマート タグでは、2 つの方法でプロパティ バッグにアクセスできます。

プロパティ バッグの読み込みと書き込みの方法を示す例については、「方法 : Word でカスタム レコグナイザを持つスマート タグを作成する」および「方法 : Excel でカスタム レコグナイザを持つスマート タグを作成する」を参照してください。

正規表現とプロパティ バッグ

Visual Studio Tools for Office のスマート タグに正規表現を割り当てると、既定のレコグナイザは、正規表現でキャプチャされた各グループのキーと値の組み合わせをスマート タグのプロパティ バッグに追加します。

この動作の例については、「チュートリアル : ドキュメント レベルのカスタマイズを使用したスマート タグの作成」を参照してください。正規表現でキャプチャされるグループの詳細については、「グループ化構成体」および「正規表現クラス」を参照してください。

参照

処理手順

方法 : Word および Excel でスマート タグを有効にする

方法 : Word 文書にスマート タグを追加する

方法 : Excel ブックにスマート タグを追加する

方法 : Word でカスタム レコグナイザを持つスマート タグを作成する

方法 : Excel でカスタム レコグナイザを持つスマート タグを作成する

チュートリアル : ドキュメント レベルのカスタマイズを使用したスマート タグの作成

チュートリアル : アプリケーション レベルのアドインを使用したスマート タグの作成

概念

スマート タグの概要