다음을 통해 공유


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 형식에서는 다음과 같은 멤버를 노출합니다.

속성

  이름 설명
Public 속성 Actions 스마트 태그에 의해 노출된 작업 배열을 가져오거나 설정합니다. (SmartTagBase에서 상속됨)
Public 속성 Caption 스마트 태그의 이름을 가져옵니다. (SmartTagBase에서 상속됨)
Public 속성 DefaultExtension 이 SmartTag 개체의 기본 확장을 가져옵니다.
Public 속성 Expressions 스마트 태그가 인식할 정규식의 컬렉션을 가져옵니다. (SmartTagBase에서 상속됨)
Public 속성 Extension 이 SmartTag 개체의 사용자 지정 확장을 가져옵니다.
Public 속성 SmartTagType 스마트 태그의 고유 식별자 역할을 하는 네임스페이스를 가져옵니다. (SmartTagBase에서 상속됨)
Public 속성 Terms 스마트 태그가 인식할 문자열 리터럴의 컬렉션을 가져옵니다. (SmartTagBase에서 상속됨)

위쪽

메서드

  이름 설명
Public 메서드 Remove 스마트 태그에서 정규식 인식자를 제거합니다. (SmartTagBase에서 상속됨)

위쪽

설명

스마트 태그를 만들려면 Globals.Factory.CreateSmartTag 메서드를 사용하여 SmartTag 개체를 만듭니다. 자세한 내용은 스마트 태그 아키텍처을 참조하십시오.

참고

이 인터페이스는 Visual Studio Tools for Office Runtime에 의해 구현되며 코드에서 직접 구현할 수는 없습니다. 자세한 내용은 Visual Studio Tools for Office 런타임 개요를 참조하십시오.

용도

이 형식은 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를 만듭니다. 이 작업은 런타임에 작업의 메뉴 캡션을 수정하고 인식된 텍스트의 주소를 표시합니다. 예제를 테스트하려면 한 셀에 "sale"이라는 단어를 입력하고 다른 셀에 "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에서 사용자 지정 인식기를 사용하여 스마트 태그 만들기