チュートリアル : アプリケーション レベルのアドインを使用したスマート タグの作成
更新 : 2008 年 7 月
対象 |
---|
このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。 プロジェクトの種類
Microsoft Office のバージョン
詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。 |
このチュートリアルでは、開いているすべてのドキュメントで使用できるアプリケーション レベルのスマート タグを作成する方法について説明します。このスマート タグは、Microsoft Office Word 2007 文書に記されているさじ分量を認識し、その分量をオンスに変換するアクションを実行します。そして、さじ分量の後に、その分量をオンスに変換した分量をかっこに入れて追加します。
このスマート タグを実行するには、エンド ユーザーが Word でスマート タグを有効にする必要があります。詳細については、「方法 : Word および Excel でスマート タグを有効にする」を参照してください。
このチュートリアルでは、次の作業について説明します。
正規表現を使用して文字列を認識するスマート タグの作成
スマート タグからデータを取得し、認識されたスマート タグ テキストを変更するアクションの作成
メモ : |
---|
次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピュータでは名前や場所が異なる場合があります。これらの要素は、使用する Visual Studio のエディションとその設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。 |
前提条件
このチュートリアルを完了するには、次のコンポーネントが必要です。
Visual Studio Tools for Office (Visual Studio 2008 Professional および Visual Studio Team System のオプションの要素)
Microsoft Office Word 2007
ここに挙げた Visual Studio のバージョンでは、Visual Studio Tools for Office が既定でインストールされます。インストールされているかどうかを確認する方法については、「Visual Studio Tools for Office のインストール」を参照してください。
新規プロジェクトの作成
まず、Word アドイン プロジェクトを作成します。
新しいプロジェクトを作成するには
Visual Basic または C# を使用して、My Recipe Smart Tag という名前の Word アドイン プロジェクトを作成します。
詳細については、「方法 : Visual Studio Tools for Office プロジェクトを作成する」を参照してください。
Visual Studio により、My Recipe Smart Tag プロジェクトがソリューション エクスプローラに追加されます。
プロジェクトの構成
このプロジェクトにはスマート タグ DLL への参照が必要であり、正規表現を使用することも必要です。
プロジェクトを構成するには
[プロジェクト] メニューの [参照の追加] をクリックします。
[COM] タブで、[Microsoft Smart Tags 2.0 Type Library] を選択し、[OK] をクリックします。
ソリューション エクスプローラで ThisDocument.vb (Visual Basic の場合) または ThisDocument.cs (C# の場合) を右クリックし、[コードの表示] をクリックします。
次のコード行をファイルの先頭に追加します。
Imports System.Text.RegularExpressions
using System.Text.RegularExpressions;
スマート タグの作成
スマート タグがさじ分量を検出して変換できるようにするために、スマート タグで認識する用語のリストに正規表現を追加し、ユーザーがスマート タグをクリックしたときに使用できるアクションを作成します。
スマート タグを作成するには
ThisAddIn クラスの ThisAddIn_Startup イベント ハンドラを次のコードに置き換えます。このコードは、Visual Studio Tools for Office スマート タグを表す SmartTag を作成し、スマート タグで認識する用語のリストに正規表現を追加します。
WithEvents RecipeAction As Microsoft.Office.Tools.Word.Action Private Sub ThisAddIn_Startup(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Me.Startup Dim SmartTagDemo As New Microsoft.Office.Tools.Word.SmartTag( _ "www.microsoft.com/Demo#DemoSmartTag", "Recipe Smart Tag") SmartTagDemo.Expressions.Add(New Regex( _ "(?'tbsNumber'[+-]?\b[0-9]+)?\s?(tbs|tablespoons|tablespoon)\b"))
private Microsoft.Office.Tools.Word.Action RecipeAction; private void ThisAddIn_Startup(object sender, System.EventArgs e) { Microsoft.Office.Tools.Word.SmartTag SmartTagDemo = new Microsoft.Office.Tools.Word.SmartTag( @"www.microsoft.com/Demo#DemoSmartTag", @"Recipe Smart Tag"); // Specify the terms to recognize. SmartTagDemo.Expressions.Add(new Regex( @"(?'tbsNumber'[+-]?\b[0-9]+)?\s?(tbs|tablespoons|tablespoon)\b"));
新しい Action を作成し、スマート タグの Actions プロパティに追加します。Action は、スマート タグ メニューでユーザーがクリックできる項目を表します。
RecipeAction = New Microsoft.Office.Tools.Word.Action("Convert to ounces") SmartTagDemo.Actions = _ New Microsoft.Office.Tools.Word.Action() {RecipeAction}
RecipeAction = new Microsoft.Office.Tools.Word.Action( @"Convert to ounces"); // Add the action to the smart tag. SmartTagDemo.Actions = new Microsoft.Office.Tools.Word.Action[] { RecipeAction };
スマート タグを ThisAddIn クラスの VstoSmartTags プロパティに追加します。C# の場合は、このアクションの Click イベントにイベント ハンドラを追加します。
Me.VstoSmartTags.Add(SmartTagDemo) End Sub
// Add the smart tag to the document. this.VstoSmartTags.Add(SmartTagDemo); RecipeAction.Click += new Microsoft.Office.Tools.Word.ActionClickEventHandler( RecipeAction_Click); }
アクションのイベント ハンドラの作成
このイベント ハンドラでは、スマート タグのプロパティ バッグにあるキー tbsNumber からさじ分量を取得します。次に、さじ分量をオンスに変換し、そのオンス値をさじ分量の後にかっこに入れて追加します。
この例では、スマート タグに割り当てられた正規表現によってキャプチャされるグループを、キー tbsNumber で識別します。Visual Studio Tools for Office スマート タグのプロパティ バッグおよび正規表現の詳細については、「スマート タグのアーキテクチャ」を参照してください。
イベント ハンドラを作成するには
ThisAddIn クラスに次のコードをコピーします。
Private Sub RecipeAction_Click(ByVal sender As Object, _ ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _ Handles RecipeAction.Click Dim value As String = e.Properties.Read("tbsNumber") Dim tbsRecipeAmount As Double = System.Convert.ToDouble(value) Dim ozRecipeAmount As Double = tbsRecipeAmount * 0.5 e.Range.InsertAfter(" (" + ozRecipeAmount.ToString() + " oz)") End Sub
private void RecipeAction_Click(object sender, Microsoft.Office.Tools.Word.ActionEventArgs e) { string value = e.Properties.get_Read(@"tbsNumber"); double tbsRecipeAmount = System.Convert.ToDouble(value); double ozRecipeAmount = tbsRecipeAmount * 0.5; e.Range.InsertAfter(" (" + ozRecipeAmount.ToString() + " oz)"); }
アプリケーションのテスト
文書をテストして、スマート タグでさじ分量がオンスに変換されることを確認します。
ブックをテストするには
Word で、スマート タグを有効にします。
詳細については、「方法 : Word および Excel でスマート タグを有効にする」を参照してください。
F5 キーを押してプロジェクトを実行します。
材料の量をさじ分量で表したレシピを入力します。
認識された文字列の上に表示されるスマート タグ アイコンをクリックし、[Convert to ounces] をクリックします。
さじ分量の後にその分量をオンスで表した値が表示されることを確認します。
参照
処理手順
方法 : Word および Excel でスマート タグを有効にする
方法 : Word でカスタム レコグナイザを持つスマート タグを作成する
方法 : Excel でカスタム レコグナイザを持つスマート タグを作成する
チュートリアル : ドキュメント レベルのカスタマイズを使用したスマート タグの作成
概念
変更履歴
[日付] |
[履歴] |
原因 |
---|---|---|
2008 年 7 月 |
トピックを追加 |
SP1 機能変更 |