Share via


연습: 리본 XML을 사용하여 사용자 지정 탭 만들기

이 연습에서는 리본(XML) 항목을 사용하여 사용자 지정 리본 탭을 만드는 방법을 보여 줍니다.

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

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

  • 추가 기능 탭에 단추를 추가합니다. 추가 기능 탭은 리본 XML 파일에 정의된 기본 탭입니다.

  • 추가 기능 탭의 단추를 사용하여 Microsoft Office Word를 자동화합니다.

참고

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

사전 요구 사항

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

-

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

비디오에 링크 관련 비디오 데모를 보려면 How Do I: Use the Ribbon Designer to Customize the Ribbon in Excel?을 참조하십시오.

프로젝트 만들기

첫 번째 단계에서는 Word 추가 기능 프로젝트를 만듭니다. 나중에는 이 문서의 추가 기능 탭을 사용자 지정합니다.

새 프로젝트를 만들려면

  • MyRibbonAddIn이라는 Word 추가 기능 프로젝트를 만듭니다.

    자세한 내용은 방법: Visual Studio에서 Office 프로젝트 만들기를 참조하십시오.

    Visual Studio에서 ThisAddIn.cs 또는 ThisAddIn.vb 코드 파일이 열리고 솔루션 탐색기MyRibbonAddIn 프로젝트가 추가됩니다.

추가 기능 탭 만들기

추가 기능 탭을 만들려면 프로젝트에 리본(XML) 항목을 추가합니다. 이 연습의 뒷부분에서 이 탭에 몇 가지 단추를 추가합니다.

추가 기능 탭을 만들려면

  1. 프로젝트 메뉴에서 새 항목 추가를 클릭합니다.

  2. 새 항목 추가 대화 상자에서 **리본(XML)**을 선택합니다.

  3. 새 리본 메뉴의 이름을 MyRibbon으로 변경하고 추가를 클릭합니다.

    MyRibbon.cs 또는 MyRibbon.vb 파일이 디자이너에 열립니다. 또한 MyRibbon.xml이라는 XML 파일이 프로젝트에 추가됩니다.

  4. 솔루션 탐색기에서 ThisAddin.cs 또는 ThisAddin.vb를 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭합니다.

  5. ThisAddin 클래스에 다음 코드를 추가합니다. 이 코드는 CreateRibbonExtensibilityObject 메서드를 재정의하고 Office 응용 프로그램에 리본 XML 클래스를 반환합니다.

    Protected Overrides Function CreateRibbonExtensibilityObject() As  _
    Microsoft.Office.Core.IRibbonExtensibility
        Return New MyRibbon()
    End Function
    
    protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
    {
        return new MyRibbon();
    }
    
  6. 솔루션 탐색기에서 MyRibbonAddIn 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 빌드를 클릭합니다. 프로젝트가 오류 없이 빌드되는지 확인합니다.

추가 기능 탭에 단추 추가

이 추가 기능의 목적은 활성 문서에 상용구 텍스트 및 특정 표를 추가하는 방법을 제공하는 것입니다. 사용자 인터페이스를 제공하기 위해 리본 XML 파일을 수정하여 추가 기능 탭에 단추 두 개를 추가합니다. 이 연습의 뒷부분에서 단추의 콜백 메서드를 정의합니다. 리본 XML 파일에 대한 자세한 내용은 리본 XML를 참조하십시오.

추가 기능 탭에 단추를 추가하려면

  1. 솔루션 탐색기에서 MyRibbon.xml을 마우스 오른쪽 단추로 클릭하고 열기를 클릭합니다.

  2. tab 요소의 내용을 다음 XML로 바꿉니다. 이 XML에서는 기본 컨트롤 그룹의 레이블을 Content로 변경하고 레이블이 Insert TextInsert Table인 두 개의 단추를 새로 추가합니다.

    <tab idMso="TabAddIns">
        <group id="ContentGroup" label="Content">
            <button id="textButton" label="Insert Text"
                 screentip="Text" onAction="OnTextButton"
                 supertip="Inserts text at the cursor location."/>
            <button id="tableButton" label="Insert Table"
                 screentip="Table" onAction="OnTableButton"
                 supertip="Inserts a table at the cursor location."/>
        </group>
    </tab>
    

단추를 사용하여 문서 자동화

사용자가 Insert TextInsert Table 단추를 클릭할 때 작업을 수행하려면 이러한 단추의 onAction 콜백 메서드를 추가해야 합니다. 리본 컨트롤의 콜백 메서드에 대한 자세한 내용은 리본 XML를 참조하십시오.

단추의 콜백 메서드를 추가하려면

  1. 솔루션 탐색기에서 MyRibbon.cs 또는 MyRibbon.vb를 마우스 오른쪽 단추로 클릭하고 열기를 클릭합니다.

  2. MyRibbon.cs 또는 MyRibbon.vb 파일의 맨 위에 다음 코드를 추가합니다. 이 코드에서는 Microsoft.Office.Interop.Word 네임스페이스의 별칭을 만듭니다.

    Imports Word = Microsoft.Office.Interop.Word
    
    using Word = Microsoft.Office.Interop.Word;
    
  3. MyRibbon 클래스에 다음 메서드를 추가합니다. 이 메서드는 Insert Text 단추에 대한 콜백 메서드이며, 활성 문서에서 현재 커서 위치에 문자열을 추가합니다.

    Public Sub OnTextButton(ByVal control As Office.IRibbonControl)
        Dim currentRange As Word.Range = Globals.ThisAddIn.Application.Selection.Range
        currentRange.Text = "This text was added by the Ribbon."
    End Sub
    
    public void OnTextButton(Office.IRibbonControl control)
    {
        Word.Range currentRange = Globals.ThisAddIn.Application.Selection.Range;
        currentRange.Text = "This text was added by the Ribbon.";
    }
    
  4. MyRibbon 클래스에 다음 메서드를 추가합니다. 이 메서드는 Insert Table 단추에 대한 콜백 메서드이며, 활성 문서에서 현재 커서 위치에 표를 추가합니다.

    Public Sub OnTableButton(ByVal control As Office.IRibbonControl)
        Dim missing As Object = System.Type.Missing
    
        Dim currentRange As Word.Range = Globals.ThisAddIn.Application.Selection.Range
        Dim newTable As Word.Table = Globals.ThisAddIn.Application.ActiveDocument.Tables.Add( _
                   currentRange, 3, 4)
    
        ' Get all of the borders except for the diagonal borders.
        Dim borders() As Word.Border = New Word.Border(6) {}
        borders(0) = newTable.Borders(Word.WdBorderType.wdBorderLeft)
        borders(1) = newTable.Borders(Word.WdBorderType.wdBorderRight)
        borders(2) = newTable.Borders(Word.WdBorderType.wdBorderTop)
        borders(3) = newTable.Borders(Word.WdBorderType.wdBorderBottom)
        borders(4) = newTable.Borders(Word.WdBorderType.wdBorderHorizontal)
        borders(5) = newTable.Borders(Word.WdBorderType.wdBorderVertical)
    
        ' Format each of the borders.
        For Each border As Word.Border In borders
            border.LineStyle = Word.WdLineStyle.wdLineStyleSingle
            border.Color = Word.WdColor.wdColorBlue
        Next
    End Sub
    
    public void OnTableButton(Office.IRibbonControl control)
    {
        object missing = System.Type.Missing;
        Word.Range currentRange = Globals.ThisAddIn.Application.Selection.Range;
        Word.Table newTable = Globals.ThisAddIn.Application.ActiveDocument.Tables.Add(
        currentRange, 3, 4, ref missing, ref missing);
    
        // Get all of the borders except for the diagonal borders.
        Word.Border[] borders = new Word.Border[6];
        borders[0] = newTable.Borders[Word.WdBorderType.wdBorderLeft];
        borders[1] = newTable.Borders[Word.WdBorderType.wdBorderRight];
        borders[2] = newTable.Borders[Word.WdBorderType.wdBorderTop];
        borders[3] = newTable.Borders[Word.WdBorderType.wdBorderBottom];
        borders[4] = newTable.Borders[Word.WdBorderType.wdBorderHorizontal];
        borders[5] = newTable.Borders[Word.WdBorderType.wdBorderVertical];
    
        // Format each of the borders.
        foreach (Word.Border border in borders)
        {
            border.LineStyle = Word.WdLineStyle.wdLineStyleSingle;
            border.Color = Word.WdColor.wdColorBlue;
        }
    }
    

추가 기능 테스트

프로젝트를 실행하면 Word가 열리고 리본 메뉴에 추가 기능이라는 탭이 표시됩니다. 추가 기능 탭에서 Insert TextInsert Table 단추를 클릭하여 코드를 테스트합니다.

추가 기능을 테스트하려면

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

  2. 리본 메뉴에 추가 기능 탭이 표시되는지 확인합니다.

  3. 추가 기능 탭을 클릭합니다.

  4. 리본 메뉴에 Content 그룹이 표시되는지 확인합니다.

  5. Content 그룹에서 Insert Text 단추를 클릭합니다.

    문서에서 현재 커서 위치에 문자열이 추가됩니다.

  6. Content 그룹에서 Insert Table 단추를 클릭합니다.

    문서에서 현재 커서 위치에 표가 추가됩니다.

다음 단계

다음 항목에서는 Office UI를 사용자 지정하는 방법에 대해 더 자세히 설명합니다.

  • 다른 Office 응용 프로그램의 리본 메뉴를 사용자 지정합니다. 리본 메뉴를 사용자 지정할 수 있는 응용 프로그램에 대한 자세한 내용은 리본 개요을 참조하십시오.

  • 리본 디자이너를 사용하여 Office 응용 프로그램의 리본 메뉴를 사용자 지정합니다. 자세한 내용은 리본 디자이너를 참조하십시오.

  • 사용자 지정 작업 창을 만듭니다. 자세한 내용은 작업 창 개요를 참조하십시오.

  • Outlook 양식 영역을 사용하여 Microsoft Office Outlook의 UI를 사용자 지정합니다. 자세한 내용은 연습: Outlook 양식 영역 디자인를 참조하십시오.

참고 항목

작업

연습: 리본 디자이너를 사용하여 사용자 지정 탭 만들기

개념

리본 XML

기타 리소스

리본 개요