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

업데이트: 2007년 11월

적용 대상

이 항목의 정보는 지정된 Visual Studio Tools for Office 프로젝트 및 Microsoft Office 버전에만 적용됩니다.

프로젝트 형식

  • 문서 수준 프로젝트

Microsoft Office 버전

  • Word 2003

  • Word 2007

자세한 내용은 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

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

이 스마트 태그를 실행하려면 최종 사용자가 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 2003 또는 Microsoft Office Word 2007

Visual Studio Tools for Office는 기본적으로 나열된 Visual Studio 버전과 함께 설치됩니다. 설치 여부를 확인하려면 Visual Studio Tools for Office 설치를 참조하십시오.

새 프로젝트 만들기

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

새 프로젝트를 만들려면

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

프로젝트 구성

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

프로젝트를 구성하려면

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

  2. COM 탭에서 Microsoft Smart Tags 2.0 Type Library를 선택하고 확인을 클릭합니다.

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

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

     [Visual Basic]
    Imports System.Text.RegularExpressions
    
    using System.Text.RegularExpressions;
    

스마트 태그 만들기

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

스마트 태그를 만들려면

  1. ThisDocument 클래스의 ThisDocument_Startup 이벤트 처리기를 다음 코드로 바꿉니다. 이 코드는 Visual Studio Tools for Office 스마트 태그를 나타내는 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
    
        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)
    {
        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은 스마트 태그 메뉴에서 클릭할 수 있는 항목을 나타냅니다.

    action1 = New Microsoft.Office.Tools.Word.Action( _
        "Convert to Celsius")
    
    smartTag1.Actions = _
        New Microsoft.Office.Tools.Word.Action() {action1}
    
    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);
    }
    

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

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

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

이벤트 처리기를 만들려면

  • 다음 코드를 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에서 사용자 지정 인식자로 스마트 태그 만들기

방법: Excel에서 사용자 지정 인식자로 스마트 태그 만들기

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

개념

스마트 태그 개요

스마트 태그 아키텍처