다음을 통해 공유


리본 XML

리본(XML) 항목을 사용하면 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) 항목 추가

새 항목 추가 대화 상자에서 Office 프로젝트에 리본(XML) 항목을 추가할 수 있습니다. 프로젝트에 다음 파일이 자동으로 추가됩니다.

  • 리본 XML 파일. 이 파일은 리본 UI(사용자 인터페이스)를 정의합니다. 이 파일을 사용하여 탭, 그룹, 컨트롤 등의 UI 요소를 추가할 수 있습니다. 자세한 내용은 이 항목의 뒷부분에 나오는 리본 XML 파일 참조를 참조하십시오.

  • 리본 코드 파일. 이 파일에는 리본 클래스가 포함됩니다. 이 클래스는 사용자가 새 항목 추가 대화 상자의 리본(XML) 항목에 대해 지정한 이름을 갖습니다. Microsoft Office 응용 프로그램에서는 이 클래스의 인스턴스를 사용하여 사용자 지정 리본 메뉴를 로드합니다. 자세한 내용은 이 항목의 뒷부분에 나오는 리본 클래스 참조를 참조하십시오.

기본적으로 이러한 파일을 통해 리본 메뉴의 추가 기능 탭에 사용자 지정 그룹이 추가됩니다.

Microsoft Office 응용 프로그램에 사용자 지정 리본 메뉴 표시

프로젝트에 리본(XML) 항목을 추가한 후에는 CreateRibbonExtensibilityObject 메서드를 재정의하고 Office 응용 프로그램에 리본 XML 클래스를 반환하는 코드를 ThisAddin, ThisWorkbook 또는 ThisDocument 클래스에 추가해야 합니다.

다음 코드 예제에서는 CreateRibbonExtensibilityObject 메서드를 재정의하고 MyRibbon이라는 리본 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();
}

사용자 지정 리본 메뉴의 동작 정의

콜백 메서드를 만들어 리본 메뉴의 단추를 클릭하는 등의 사용자 동작에 응답할 수 있습니다. 콜백 메서드는 Windows Forms 컨트롤의 이벤트와 비슷하지만 UI 요소의 XML에 포함된 특성을 통해 식별됩니다. 리본 클래스에 메서드를 작성하면 컨트롤을 통해 특성 값과 이름이 같은 메서드가 호출됩니다. 예를 들어 리본의 단추를 클릭할 때 호출되는 콜백 메서드를 만들 수 있습니다. 콜백 메서드를 만드는 과정은 두 단계로 진행됩니다.

  • 리본 XML 파일의 컨트롤에 코드에서 콜백 메서드를 식별하는 특성을 할당합니다.

  • 리본 클래스에 콜백 메서드를 정의합니다.

참고

Outlook의 경우 추가 단계를 수행해야 합니다. 자세한 내용은 Outlook에 대해 리본 메뉴 사용자 지정을 참조하십시오.

리본 메뉴에서 응용 프로그램을 자동화하는 방법을 보여 주는 연습을 보려면 연습: 리본 XML을 사용하여 사용자 지정 탭 만들기를 참조하십시오.

컨트롤에 콜백 메서드 할당

리본 XML 파일의 컨트롤에 콜백 메서드를 할당하려면 콜백 메서드의 형식과 메서드의 이름을 지정하는 특성을 추가합니다. 예를 들어 다음 요소는 OnToggleButton1이라는 onAction 콜백 메서드가 있는 설정/해제 단추를 정의합니다.

<toggleButton id="toggleButton1" onAction="OnToggleButton1" />

onAction은 사용자가 특정 컨트롤에 연결된 기본 작업을 수행할 때 호출됩니다. 예를 들어 설정/해제 단추의 onAction 콜백 메서드는 사용자가 단추를 클릭할 때 호출됩니다.

특성에 지정할 수 있는 메서드 이름에는 제한이 없습니다. 그러나 이 이름은 리본 코드 파일에서 정의하는 메서드의 이름과 일치해야 합니다.

리본 컨트롤에 할당할 수 있는 콜백 메서드에는 여러 가지 형식이 있습니다. 각 컨트롤에 사용할 수 있는 콜백 메서드의 전체 목록은 기술 문서 Customizing the Office (2007) Ribbon User Interface for Developers (Part 3 of 3)를 참조하십시오.

콜백 메서드 정의

콜백 메서드는 리본 코드 파일의 리본 클래스에 정의합니다. 콜백 메서드는 몇 가지 요구 사항에 맞아야 합니다.

  • 공용 메서드로 선언되어야 합니다.

  • 이름이 리본 XML 파일에서 컨트롤에 할당한 콜백 메서드의 이름과 일치해야 합니다.

  • 시그니처가 관련 리본 컨트롤에서 사용할 수 있는 콜백 메서드 형식의 시그니처와 일치해야 합니다.

리본 컨트롤에 대한 콜백 메서드 시그니처의 전체 목록은 기술 문서 Customizing the Office (2007) Ribbon User Interface for Developers (Part 3 of 3)를 참조하십시오. Visual Studio에서는 리본 코드 파일에 만드는 콜백 메서드에 대해 IntelliSense 기능을 지원하지 않습니다. 유효한 시그니처와 일치하지 않는 콜백 메서드를 만드는 경우 코드는 정상적으로 컴파일되지만 사용자가 컨트롤을 클릭할 때 아무런 결과도 발생하지 않습니다.

모든 콜백 메서드에는 메서드를 호출한 컨트롤을 나타내는 Microsoft.Office.Core.IRibbonControl 매개 변수가 있습니다. 이 매개 변수를 사용하여 동일한 콜백 메서드를 여러 컨트롤에 다시 사용할 수 있습니다. 다음 코드 예제에서는 사용자가 클릭하는 컨트롤에 따라 서로 다른 작업을 수행하는 onAction 콜백 메서드를 보여 줍니다.

Public Sub OnActionCallback(ByVal control As Office.IRibbonControl, _
    ByVal isPressed As Boolean)

    If (control.Id = "checkBox1") Then
        MessageBox.Show("You clicked " + control.Id)
    Else
        MessageBox.Show("You clicked a different control.")
    End If

End Sub
public void OnActionCallback(Office.IRibbonControl control, bool isPressed)
{
    if (control.Id == "checkBox1")
    {
        MessageBox.Show("You clicked " + control.Id);
    }
    else
    {
        MessageBox.Show("You clicked a different control.");
    }
}

리본 XML 파일 참조

리본 XML 파일에 요소와 특성을 추가하여 사용자 지정 리본 메뉴를 정의할 수 있습니다. 기본적으로 리본 XML 파일에는 다음과 같은 XML이 포함됩니다.

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="https://schemas.microsoft.com/office/2006/01/customui" onLoad="OnLoad">
  <ribbon>
    <tabs>
      <tab idMso="TabAddIns">
        <group id="MyGroup"
               label="My Group">
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

다음 표에서는 리본 XML 파일의 기본 요소를 보여 줍니다.

요소

설명

customUI

추가 기능 프로젝트의 사용자 지정 리본 메뉴를 나타냅니다.

ribbon

리본 메뉴를 나타냅니다.

tabs

리본 탭의 집합을 나타냅니다.

tab

리본 탭 하나를 나타냅니다.

group

리본 탭의 컨트롤 그룹을 나타냅니다.

이러한 요소에는 사용자 지정 리본 메뉴의 모양과 동작을 지정하는 특성이 있습니다. 다음 표에서는 리본 XML 파일의 기본 특성을 보여 줍니다.

특성

부모 요소

설명

onLoad

customUI

응용 프로그램에서 리본을 로드할 때 호출되는 메서드를 식별합니다.

idMso

tab

리본 메뉴에 표시할 기본 제공 탭을 식별합니다.

id

group

그룹을 식별합니다.

label

group

그룹에 나타나는 텍스트를 지정합니다.

리본 XML 파일의 기본 요소 및 특성은 사용 가능한 요소 및 특성 중 일부에 불과합니다. 사용 가능한 요소 및 특성의 전체 목록은 기술 문서 Customizing the Office (2007) Ribbon User Interface for Developers (Part 2 of 3)를 참조하십시오.

리본 클래스 참조

Visual Studio에서는 리본 코드 파일에 리본 클래스를 생성합니다. 리본 메뉴의 컨트롤에 대한 콜백 메서드를 이 클래스에 추가합니다. 이 클래스는 Microsoft.Office.Core.IRibbonExtensibility 인터페이스를 구현합니다.

다음 표에서는 이 클래스의 기본 메서드를 보여 줍니다.

메서드

설명

GetCustomUI

리본 XML 파일의 내용을 반환합니다. Microsoft Office 응용 프로그램에서는 이 메서드를 호출하여 사용자 지정 리본 메뉴의 사용자 인터페이스를 정의하는 XML 문자열을 가져옵니다. 이 메서드는 IRibbonExtensibility.GetCustomUI(String) 메서드를 구현합니다.

참고참고
GetCustomUI는 리본 XML 파일의 내용을 반환하려는 경우에만 구현해야 하며 추가 기능을 초기화하는 데 사용하지 말아야 합니다.특히 GetCustomUI 구현에서 대화 상자나 다른 창을 표시해서는 안 됩니다.이 지침을 따르지 않으면 사용자 지정 리본 메뉴가 제대로 작동하지 않을 수 있습니다.추가 기능을 초기화하는 코드를 실행해야 하는 경우에는 ThisAddIn_Startup 이벤트 처리기에 해당 코드를 추가해야 합니다.

OnLoad

Microsoft.Office.Core.IRibbonControl 매개 변수를 ribbon 필드에 할당합니다. Microsoft Office 응용 프로그램에서는 사용자 지정 리본 메뉴를 로드할 때 이 메서드를 호출합니다. 이 필드를 사용하여 사용자 지정 리본 메뉴를 동적으로 업데이트할 수 있습니다. 자세한 내용은 기술 문서 Customizing the Office (2007) Ribbon User Interface for Developers (Part 1 of 3)를 참조하십시오.

GetResourceText

리본 XML 파일의 내용을 가져오기 위해 GetCustomUI 메서드에서 호출됩니다.

참고 항목

작업

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

기타 리소스

리본 개요

Office UI 사용자 지정