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

업데이트: 2008년 7월

적용 대상

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

프로젝트 형식

  • 응용 프로그램 수준 프로젝트

Microsoft Office 버전

  • Word 2007

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

이 연습에서는 열려 있는 모든 문서에서 사용할 수 있는 응용 프로그램 수준 스마트 태그를 만드는 방법을 보여 줍니다. 이 스마트 태그는 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 Tools for Office는 기본적으로 나열된 Visual Studio 버전과 함께 설치됩니다. 설치 여부를 확인하려면 Visual Studio Tools for Office 설치를 참조하십시오.

새 프로젝트 만들기

첫 번째 단계에서는 Word 추가 기능 프로젝트를 만듭니다.

새 프로젝트를 만들려면

Visual Studio의 솔루션 탐색기에 My Recipe Smart Tag 프로젝트가 추가됩니다.

프로젝트 구성

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

프로젝트를 구성하려면

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

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

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

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

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

스마트 태그 만들기

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

스마트 태그를 만들려면

  1. 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"));
    
    
  2. 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 };
    
    
  3. 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)");
    }
    

응용 프로그램 테스트

이제 문서를 테스트하여 스마트 태그가 테이블 스푼 측정값을 온스 단위로 변환하는지 확인할 수 있습니다.

통합 문서를 테스트하려면

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

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

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

  3. 재료의 양이 테이블 스푼으로 측정되는 요리법을 입력합니다.

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

  5. 테이블 스푼 양 뒤에 해당 온스 양이 삽입되는지 확인합니다.

참고 항목

작업

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

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

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

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

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

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

개념

스마트 태그 개요

스마트 태그 아키텍처

변경 기록

날짜

변경 내용

원인

2008년 7월

추가된 항목입니다.

SP1 기능 변경