다음을 통해 공유


리본 XML

리본 메뉴(XML) 항목을 사용하면 XML을 사용하여 리본 메뉴를 사용자 지정할 수 있습니다. 리본 메뉴(시각적 디자이너) 항목에서 지원되지 않는 방식으로 리본 메뉴를 사용자 지정하려면 리본 메뉴(XML) 항목을 사용합니다. 각 항목으로 수행할 수 있는 작업을 비교하려면 리본 개요를 참조하세요.

적용 대상: 이 항목의 정보는 다음 애플리케이션에 대한 문서 수준 프로젝트 및 VSTO 추가 기능 프로젝트에 적용됩니다. Excel; InfoPath 2013 및 InfoPath 2010; Outlook; PowerPoint; 프로젝트; Visio; 단어. 자세한 내용은 Office 응용 프로그램 및 프로젝트 유형에서 사용할 수 있는 기능을 참조하세요.

프로젝트에 리본 메뉴(XML) 항목 추가

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

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

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

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

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

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

다음 코드 예제에서는 CreateRibbonExtensibilityObject 메서드를 재정의하고, MyRibbon이라는 리본 XML 클래스를 반환합니다.

protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
    return new MyRibbon();
}

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

콜백 메서드를 만들어 리본에서 단추를 클릭하는 등의 사용자 작업에 응답할 수 있습니다. 콜백 메서드는 Windows Forms 컨트롤의 이벤트와 유사하지만 UI 요소의 XML에 있는 특성으로 식별됩니다. Ribbon 클래스에서 메서드를 작성하고 컨트롤은 특성 값과 이름이 같은 메서드를 호출합니다. 예를 들어 사용자가 리본에서 단추를 클릭할 때 호출되는 콜백 메서드를 만들 수 있습니다. 콜백 메서드를 만들려면 다음 두 단계가 필요합니다.

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

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

비고

Outlook에는 추가 단계가 필요합니다. 자세한 내용은 Outlook에 대한 리본 사용자 지정을 참조하세요.

리본에서 애플리케이션을 자동화하는 방법을 보여 주는 연습은 연습 : 리본 XML을 사용하여 사용자 지정 탭 만들기를 참조하세요.

컨트롤에 콜백 메서드 할당

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

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

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

특성에 지정하는 메서드는 어떤 이름도 가질 수 있습니다. 그러나 리본 코드 파일에서 정의하는 메서드의 이름과 일치해야 합니다.

리본 컨트롤에 할당할 수 있는 다양한 유형의 콜백 메서드가 있습니다. 각 컨트롤에 사용할 수 있는 콜백 방법의 전체 목록은 개발자를 위한 Office(2007) 리본 사용자 인터페이스 사용자 지정 기술 문서(3부 중 3부)를 참조하세요.

콜백 메서드 정의

리본 코드 파일의 리본 클래스에서 콜백 메서드를 정의합니다. 콜백 메서드에는 다음과 같은 몇 가지 요구 사항이 있습니다.

  • 공용으로 선언해야 합니다.

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

  • 해당 서명은 연결된 리본 컨트롤에 사용할 수 있는 콜백 메서드 형식의 서명과 일치해야 합니다.

    리본 컨트롤에 대한 콜백 메서드 서명의 전체 목록은 개발자를 위한 Office(2007) 리본 사용자 인터페이스 사용자 지정 기술 문서(3부 중 3부)를 참조하세요. Visual Studio는 리본 코드 파일에서 만드는 콜백 메서드에 대한 IntelliSense 지원을 제공하지 않습니다. 유효한 서명과 일치하지 않는 콜백 메서드를 만들면 코드가 컴파일되지만 사용자가 컨트롤을 클릭하면 아무 것도 발생하지 않습니다.

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

    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="http://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>

다음 표에서는 Ribbon XML 파일의 기본 요소에 대해 설명합니다.

요소 Description
customUI VSTO 추가 기능 프로젝트의 사용자 지정 리본 메뉴를 나타냅니다.
리본 리본을 나타냅니다.
리본 탭 집합을 나타냅니다.
단일 리본 탭을 나타냅니다.
group 리본 탭의 컨트롤 그룹을 나타냅니다.

이러한 요소에는 사용자 지정 리본의 모양과 동작을 지정하는 특성이 있습니다. 다음 표에서는 리본 XML 파일의 기본 특성에 대해 설명합니다.

특성 Parent 요소 Description
onLoad customUI 애플리케이션이 리본을 로드할 때 호출되는 메서드를 식별합니다.
idMso 리본 메뉴에 표시할 기본 제공 탭을 식별합니다.
아이디 group 그룹을 식별합니다.
label group 그룹에 표시되는 텍스트를 지정합니다.

리본 XML 파일의 기본 요소 및 특성은 사용할 수 있는 요소 및 특성의 작은 하위 집합입니다. 사용 가능한 요소 및 특성의 전체 목록은 개발자를 위한 Office(2007) 리본 사용자 인터페이스 사용자 지정 기술 문서(3부 중 2부)를 참조하세요.

리본 클래스 참조

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

다음 표에서는 이 클래스의 기본 메서드에 대해 설명합니다.

메서드 Description
GetCustomUI 리본 XML 파일의 내용을 반환합니다. Microsoft Office 응용 프로그램에서는 이 메서드를 호출하여 사용자 지정 리본 메뉴의 사용자 인터페이스를 정의하는 XML 문자열을 가져옵니다. 이 메서드는 GetCustomUI 메서드를 구현합니다. 메모:GetCustomUI 리본 XML 파일의 내용을 반환하기 위해서만 구현해야 합니다. VSTO 추가 기능을 초기화하는 데 사용하면 안 됩니다. 특히 GetCustomUI 구현에서 대화 상자 또는 다른 창을 표시하려고 하면 안 됩니다. 그렇지 않으면 사용자 지정 리본이 제대로 작동하지 않을 수 있습니다. VSTO 추가 기능을 초기화하는 코드를 실행해야 하는 경우 이벤트 처리기에 코드를 ThisAddIn_Startup 추가합니다.
OnLoad IRibbonControl 매개 변수를 Ribbon 필드에 할당합니다. Microsoft Office 응용 프로그램은 사용자 지정 리본을 로드할 때 이 메서드를 호출합니다. 이 필드를 사용하여 사용자 지정 리본을 동적으로 업데이트할 수 있습니다. 자세한 내용은 개발자를 위한 Office(2007) 리본 사용자 인터페이스 사용자 지정 기술 문서(3부 중 1부)를 참조하세요.
GetResourceText 리본 XML 파일의 GetCustomUI 내용을 가져오기 위해 메서드에서 호출됩니다.