연습: 문서 수준 사용자 지정을 사용하여 스마트 태그 만들기

이 연습에서는 Word용 문서 수준 사용자 지정에서 스마트 태그를 만드는 방법을 보여 줍니다. 이 스마트 태그는 화씨 온도 문자열을 인식합니다. 스마트 태그에는 온도 값을 섭씨로 변환하고 인식된 텍스트를 서식이 지정된 섭씨 온도 문자열로 바꾸는 작업이 포함되어 있습니다.

적용 대상: 이 항목의 정보는 Word 2010의 문서 수준 프로젝트에 적용됩니다. 자세한 내용은 Office 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

이 스마트 태그를 실행하려면 최종 사용자가 Word에서 스마트 태그를 사용하도록 설정해야 합니다. 자세한 내용은 방법: Word 및 Excel에서 스마트 태그 사용을 참조하십시오.

이 연습에서는 다음 작업을 수행합니다.

  • 정규식을 인식하는 스마트 태그 만들기

  • 스마트 태그에서 데이터를 검색하고 인식된 스마트 태그 텍스트를 수정하는 작업 만들기

참고

일부 Visual Studio 사용자 인터페이스 요소의 경우 다음 지침에 설명된 것과 다른 이름 또는 위치가 시스템에 표시될 수 있습니다. 설치한 Visual Studio 버전과 사용하는 설정에 따라 이러한 요소가 결정됩니다. 자세한 내용은 설정에 대한 작업을 참조하십시오.

사전 요구 사항

이 연습을 완료하려면 다음 구성 요소가 필요합니다.

-

Microsoft Office 개발자 도구를 포함하는 Visual Studio 2010 버전입니다. 자세한 내용은 [Office 솔루션을 개발할 수 있도록 컴퓨터 구성](bb398242\(v=vs.100\).md)을 참조하십시오.
  • Word 2007

  • .NET Framework 3.5.

참고

.NET Framework 4를 대상으로 하는 경우 다른 코드를 작성하여 스마트 태그 및 작업을 만들어야 합니다. 자세한 내용은 스마트 태그 아키텍처를 참조하십시오.

새 프로젝트 만들기

첫 번째 단계에서는 Word 문서 프로젝트를 만듭니다.

새 프로젝트를 만들려면

Visual Studio의 디자이너에 새 Word 문서가 열리고 My Smart Tag 프로젝트가 솔루션 탐색기에 추가됩니다.

프로젝트 구성

이 프로젝트에서는 스마트 태그 DLL을 참조해야 하며 정규식도 사용해야 합니다.

프로젝트를 구성하려면

  1. 프로젝트 메뉴에서 참조 추가를 클릭합니다.

  2. .NET 탭에서 Microsoft.Office.Interop.SmartTag를 선택한 다음 확인을 클릭합니다. 어셈블리의 12.0.0.0 버전을 선택합니다.

  3. 솔루션 탐색기에서 ThisDocument.vb(Visual Basic) 또는 ThisDocument.cs(C#)를 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭합니다.

  4. 파일의 맨 위에 다음 코드 줄을 추가합니다.

    Imports System.Text.RegularExpressions
    
    using System.Text.RegularExpressions;
    

스마트 태그 만들기

스마트 태그를 사용하여 화씨 온도 문자열을 찾고 변환할 수 있도록 하려면 스마트 태그가 인식하는 단어 목록에 정규식을 추가하고 사용자가 스마트 태그를 클릭할 때 사용할 수 있는 작업을 만듭니다.

스마트 태그를 만들려면

  1. ThisDocument 클래스의 ThisDocument_Startup 이벤트 처리기를 다음 코드로 바꿉니다. 이 코드는 스마트 태그를 나타내는 SmartTag를 만들고 스마트 태그가 인식하는 용어 목록에 정규식을 추가합니다.

    WithEvents action1 As Microsoft.Office.Tools.Word.Action
    
    Private Sub ThisDocument_Startup(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles Me.Startup
    
        'Use the following line of code in projects that target the .NET Framework 4.
        Dim smartTag1 As Microsoft.Office.Tools.Word.SmartTag = _
            Globals.Factory.CreateSmartTag( _
           "www.microsoft.com/Demo#DemoSmartTag", _
           "Demonstration Smart Tag")
    
        'In projects that target the .NET Framework 3.5, use the following line of code.
        'Dim smartTag1 As New Microsoft.Office.Tools.Word.SmartTag( _
        '   "www.microsoft.com/Demo#DemoSmartTag", _
        '  "Demonstration Smart Tag")
    
        smartTag1.Expressions.Add( _
            New Regex("(?'number'[+-]?\b[0-9]+)?\s?(F|f)\b"))
    
    private Microsoft.Office.Tools.Word.Action action1;
    
    private void ThisDocument_Startup(object sender, System.EventArgs e)
    {
        // Use the following line of code in projects that target the .NET Framework 4.
        Microsoft.Office.Tools.Word.SmartTag smartTag1 =
            Globals.Factory.CreateSmartTag(
            "www.microsoft.com/Demo#DemoSmartTag",
            "Demonstration Smart Tag");
    
        // In projects that target the .NET Framework 3.5, use the following line of code.
        //Microsoft.Office.Tools.Word.SmartTag smartTag1 =
        //  new Microsoft.Office.Tools.Word.SmartTag(
        //  "www.microsoft.com/Demo#DemoSmartTag",
        //  "Demonstration Smart Tag");
    
        smartTag1.Expressions.Add(new Regex(
            @"(?'number'[+-]?\b[0-9]+)�?\s?(F|f)\b"));
    
  2. Action을 만들어 스마트 태그의 Actions 속성에 추가합니다. Action은 스마트 태그 메뉴에서 클릭할 수 있는 항목을 나타냅니다.

    'Use the following line of code in projects that target the .NET Framework 4.
    action1 = Globals.Factory.CreateAction( _
        "Convert to Celsius")
    
    'In projects that target the .NET Framework 3.5, use the following line of code.
    'action1 = New Microsoft.Office.Tools.Word.Action( _
    '    "Convert to Celsius")
    
    smartTag1.Actions = _
        New Microsoft.Office.Tools.Word.Action() {action1}
    
    
    // Use the following line of code in projects that target the .NET Framework 4.
    action1 = Globals.Factory.CreateAction(
        "Convert to Celsius");
    
    // In projects that target the .NET Framework 3.5, use the following line of code.
    //action1 = new Microsoft.Office.Tools.Word.Action(
    //    "Convert to Celsius");
    
    
    
    smartTag1.Actions = new
        Microsoft.Office.Tools.Word.Action[] {action1};
    
  3. VstoSmartTags 속성에 SmartTag를 추가하여 스마트 태그를 문서에 연결합니다. C#의 경우 이벤트 처리기를 작업의 Click 이벤트에 연결합니다.

        Me.VstoSmartTags.Add(smartTag1)
    End Sub
    
        this.VstoSmartTags.Add(smartTag1);
    
        action1.Click += new
            Microsoft.Office.Tools.Word.ActionClickEventHandler(
            action1_Click);
    }
    

작업에 대한 이벤트 처리기 만들기

이벤트 처리기는 스마트 태그의 속성 모음에 있는 키 번호에서 화씨 온도 값을 검색한 다음 화씨 온도 값을 섭씨로 변환하고 인식된 문자열을 바꿉니다.

이 예제에서는 키 번호로 스마트 태그에 할당된 정규식에서 캡처된 그룹을 식별할 수 있습니다. 스마트 태그의 정규식과 속성 모음에 대한 자세한 내용은 스마트 태그 아키텍처를 참조하십시오.

이벤트 처리기를 만들려면

  • 다음 코드를 ThisDocument 클래스에 복사합니다.

    Private Sub action1_Click(ByVal sender As Object, _
        ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _
        Handles action1.Click
    
        Dim value As String = e.Properties.Read("number")
        Dim fahrenheit As Double = System.Convert.ToDouble(value)
        Dim celsius As Integer = Fix(fahrenheit - 32) * 5 / 9
        e.Range.Text = celsius.ToString() + "C"
    End Sub
    
    void action1_Click(object sender,
        Microsoft.Office.Tools.Word.ActionEventArgs e)
    {
        string value = e.Properties.get_Read("number");
        double fahrenheit = System.Convert.ToDouble(value);
        int celsius = (int)(fahrenheit - 32) * 5 / 9;
        e.Range.Text = celsius.ToString() + "�C";
    }
    

응용 프로그램 테스트

이제 문서를 테스트하여 스마트 태그가 온도를 화씨에서 섭씨로 변환하는지 확인할 수 있습니다.

통합 문서를 테스트하려면

  1. Word에서 스마트 태그를 사용하도록 설정합니다.

    자세한 내용은 방법: Word 및 Excel에서 스마트 태그 사용을 참조하십시오.

  2. F5 키를 눌러 프로젝트를 실행합니다.

  3. 스마트 태그에 추가한 정규식에 따라 60F, 60° F 또는 60 F와 같은 문자열을 입력합니다.

    참고

    도 기호(°)를 입력하려면 Alt 키를 누르고 248을 입력합니다.

  4. 인식된 문자열 위에 표시되는 스마트 태그 아이콘을 클릭한 다음 Convert to Celsius를 클릭합니다.

  5. 원래 문자열이 섭씨 온도가 들어 있는 새 문자열로 바뀌었는지 확인합니다.

참고 항목

작업

방법: Word 및 Excel에서 스마트 태그 사용

방법: Word 문서에 스마트 태그 추가

방법: Excel 통합 문서에 스마트 태그 추가

방법: Word 및 .NET Framework 3.5에서 사용자 지정 인식기를 사용하여 스마트 태그 만들기

방법: Excel 및 .NET Framework 3.5에서 사용자 지정 인식기를 사용하여 스마트 태그 만들기

연습: 응용 프로그램 수준 추가 기능을 사용하여 스마트 태그 만들기

개념

스마트 태그 아키텍처

기타 리소스

스마트 태그 개요