次の方法で共有


SmartTag インターフェイス

Visual Studio の Office 開発ツールを使用してカスタマイズされた Excel ブック内のスマート タグを表します。

名前空間:  Microsoft.Office.Tools.Excel
アセンブリ:  Microsoft.Office.Tools.Excel (Microsoft.Office.Tools.Excel.dll 内)

構文

'宣言
<GuidAttribute("f210dc7f-21b5-475e-ae31-76a9b06b9835")> _
Public Interface SmartTag _
    Inherits SmartTagBase
[GuidAttribute("f210dc7f-21b5-475e-ae31-76a9b06b9835")]
public interface SmartTag : SmartTagBase

SmartTag 型で公開されるメンバーは以下のとおりです。

プロパティ

  名前 説明
パブリック プロパティ Actions スマート タグによって公開されるアクションの配列を取得または設定します。 (SmartTagBase から継承されます。)
パブリック プロパティ Caption スマート タグの名前を取得します。 (SmartTagBase から継承されます。)
パブリック プロパティ DefaultExtension この SmartTag オブジェクトの既定の拡張機能を取得します。
パブリック プロパティ Expressions スマート タグで認識する正規表現のコレクションを取得します。 (SmartTagBase から継承されます。)
パブリック プロパティ Extension この SmartTag オブジェクトのカスタムの拡張機能を取得します。
パブリック プロパティ SmartTagType スマート タグの一意の識別子として機能する名前空間を取得します。 (SmartTagBase から継承されます。)
パブリック プロパティ Terms スマート タグで認識するリテラル文字列のコレクションを取得します。 (SmartTagBase から継承されます。)

このページのトップへ

メソッド

  名前 説明
パブリック メソッド Remove スマート タグから正規表現レコグナイザーを削除します。 (SmartTagBase から継承されます。)

このページのトップへ

解説

スマート タグを作成するには、Globals.Factory.CreateSmartTag メソッドを使用して SmartTag オブジェクトを作成します。 詳細については、「スマート タグのアーキテクチャ」を参照してください。

注意

これは、Visual Studio Tools for Office ランタイムによって実装されたインターフェイスです。 コードに実装されるものではありません。 詳細については、「Visual Studio Tools for Office Runtime の概要」を参照してください。

使用方法

この型は、Excel 2007 のプロジェクトでのみ使用されることを目的としています。 Excel 2010 でのスマート タグの使用は推奨されていません。 詳細については、「スマート タグの概要」を参照してください。

ここでは、.NET Framework 4 を対象とする Office プロジェクトで使用される型のバージョンについて説明します。.NET Framework 3.5 を対象とするプロジェクトでは、この型のメンバーが異なること、およびこのコード例が動作しないことがあります。 .NET Framework 3.5 を対象とするプロジェクトの型の詳細については、Visual Studio 2008 ドキュメントの参照セクション https://go.microsoft.com/fwlink/?LinkId=160658 を参照してください。

"sale" という用語および "[I|i]ssue\s\d{5,6}" という正規表現を認識する Action が設定された SmartTag を作成するコード例を次に示します。 このアクションは、実行時にこのアクションのメニュー キャプションを変更し、認識したテキストのアドレスを表示します。 この例をテストするには、1 つのセルに「sale」、もう 1 つのセルに「issue 12345」と入力し、スマート タグのアクションを試します。

WithEvents displayAddress As Microsoft.Office.Tools.Excel.Action

Private Sub AddSmartTag()

    ' Create the smart tag for .NET Framework 4 projects.
    Dim smartTagDemo As Microsoft.Office.Tools.Excel.SmartTag = _
        Globals.Factory.CreateSmartTag(
        "www.microsoft.com/Demo#DemoSmartTag",
        "Demonstration Smart Tag")

    ' For .NET Framework 3.5 projects, use the following code to create the smart tag.
    ' Dim smartTagDemo As New  _
    '    Microsoft.Office.Tools.Excel.SmartTag( _
    '    "www.microsoft.com/Demo#DemoSmartTag", _
    '    "Demonstration Smart Tag")

    ' Specify a term and an expression to recognize.
    smartTagDemo.Terms.Add("sale")
    smartTagDemo.Expressions.Add( _
        New System.Text.RegularExpressions.Regex( _
        "[I|i]ssue\s\d{5,6}"))

    ' Create the action for .NET Framework 4 projects.
    displayAddress = Globals.Factory.CreateAction("To be replaced")

    ' For .NET Framework 3.5 projects, use the following code to create the action.
    ' displayAddress = New Microsoft.Office.Tools.Excel.Action("To be replaced")

    ' Add the action to the smart tag.
    smartTagDemo.Actions = New Microsoft.Office.Tools.Excel.Action() { _
            displayAddress}

    ' Add the smart tag.
    Me.VstoSmartTags.Add(smartTagDemo)
End Sub

Private Sub DisplayAddress_BeforeCaptionShow(ByVal sender As Object, _
    ByVal e As Microsoft.Office.Tools.Excel.ActionEventArgs) _
    Handles DisplayAddress.BeforeCaptionShow

    Dim clickedAction As Microsoft.Office.Tools.Excel.Action = _
        TryCast(sender, Microsoft.Office.Tools.Excel.Action)

    If clickedAction IsNot Nothing Then
        clickedAction.Caption = "Display the address of " & e.Text
    End If
End Sub

Private Sub DisplayAddress_Click(ByVal sender As Object, _
    ByVal e As Microsoft.Office.Tools.Excel.ActionEventArgs) _
    Handles DisplayAddress.Click

    Dim smartTagAddress As String = e.Range.Address( _
        ReferenceStyle:=Excel.XlReferenceStyle.xlA1)
    MsgBox("The recognized text '" & e.Text & _
            "' is at range " & smartTagAddress)
End Sub
private Microsoft.Office.Tools.Excel.Action displayAddress;

private void AddSmartTag()
{
    // Create the smart tag for .NET Framework 4 projects.
    Microsoft.Office.Tools.Excel.SmartTag smartTagDemo =
        Globals.Factory.CreateSmartTag(
            "www.microsoft.com/Demo#DemoSmartTag",
            "Demonstration Smart Tag");

    // For .NET Framework 3.5 projects, use the following code to create the smart tag.
    // Microsoft.Office.Tools.Excel.SmartTag smartTagDemo =
        // new Microsoft.Office.Tools.Excel.SmartTag(
        //     "www.microsoft.com/Demo#DemoSmartTag",
        //     "Demonstration Smart Tag");

    // Specify a term and an expression to recognize.
    smartTagDemo.Terms.Add("sale");
    smartTagDemo.Expressions.Add(
        new System.Text.RegularExpressions.Regex(
        @"[I|i]ssue\s\d{5,6}"));

    // Create the action for .NET Framework 4 projects.
    displayAddress = Globals.Factory.CreateAction("To be replaced");

    // For .NET Framework 3.5 projects, use the following code to create the action.
    // displayAddress = new Microsoft.Office.Tools.Excel.Action("To be replaced");

    // Add the action to the smart tag.
    smartTagDemo.Actions = new Microsoft.Office.Tools.Excel.Action[] { 
        displayAddress };

    // Add the smart tag.
    this.VstoSmartTags.Add(smartTagDemo);

    displayAddress.BeforeCaptionShow += new 
        Microsoft.Office.Tools.Excel.BeforeCaptionShowEventHandler(
        DisplayAddress_BeforeCaptionShow);

    displayAddress.Click += new 
        Microsoft.Office.Tools.Excel.ActionClickEventHandler(
        DisplayAddress_Click);
}

void DisplayAddress_BeforeCaptionShow(object sender, 
    Microsoft.Office.Tools.Excel.ActionEventArgs e)
{
    Microsoft.Office.Tools.Excel.Action clickedAction =
        sender as Microsoft.Office.Tools.Excel.Action;

    if (clickedAction != null)
    {
        clickedAction.Caption = "Display the address of " +
            e.Text;
    }
}

void DisplayAddress_Click(object sender, 
    Microsoft.Office.Tools.Excel.ActionEventArgs e)
{
    string smartTagAddress = e.Range.get_Address(missing,
        missing, Excel.XlReferenceStyle.xlA1, missing, missing);
    System.Windows.Forms.MessageBox.Show("The recognized text '" + e.Text +
        "' is at range " + smartTagAddress);
}

参照

参照

Microsoft.Office.Tools.Excel 名前空間

その他の技術情報

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

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

方法: Excel および .NET Framework 3.5 でカスタム レコグナイザーを持つスマート タグを作成する