COM Add-In을 통해 2007 Office Fluent Ribbon에 리소스 링크 추가하기

소개 : Excel 2007, PowerPoint 2007 및 Word 2007 의 기존 Microsoft Office Fluent Ribbon 커스터마이징 탭에 기능을 추가하는 프로세스를 설명합니다. 탭에는 2007 Office 교육 관련 자료에 있는 컨트롤을 포함합니다.

Judi Hurlock, Microsoft Corporation

Frank Rice, Microsoft Corporation

2007 년 1 월

**대상 제품 :**Microsoft Office Excel 2007, Microsoft Office PowerPoint 2007, Microsoft Office Word 2007

목차

  • "Get Started" 탭에 기능 추가하기에 대해

  • Get Started 탭 추가기능 프로젝트

  • 공유 COM Add-In을 사용하여  Get Started 탭 프로젝트 생성

  • Office Excel 2007 XML 커스터마이징 파일

  • Office PowerPoint 2007 XML 커스터마이징 파일

  • 요약

"Get Started" 탭에 기능 추가하기에 대해

새로운 Microsoft Office Fluent 사용자 인터페이스 (UI)는 계층형 메뉴 (Layered menu), 도구 막대 (툴바, toolbar) 및 작업창 (Task Pane)으로 구성되었던 이전의 시스템을 효율적이고 쉽게 찾을 수 있도록 목적에 최적화된 간단한 시스템으로 대체했습니다. Office Fluent Ribbon을 포함한 새로운 UI 는 사용자의 효율과 생산성 향상에 도움이 되도록 개선된 바로 가기 메뉴, 고급 스크린 팁, 미니 도구 막대 및 키보드 바로 가기를 제공합니다. 새로운 Office Fluent UI 는 Microsoft Office Access 2007, Microsoft Office Excel 2007, Microsoft Office Outlook 2007, Microsoft Office PowerPoint 2007 및 Microsoft Office Word 2007 을 포함한 2007 Microsoft Office suite에서 구현됩니다.

이미 설명한 옵션 뿐만이 아니고, Office Fluent UI 는 목적에 따라 커스터마이징도 용이합니다. XML 마크 업과 Microsoft Visual Studio 에서 지원되는 임의의 Microsoft .NET Framework 기반 언어를 조합하여 사용하여 기본값의 Office Fluent Ribbon을 커스터마이징 할 수 있습니다. 또, Microsoft Visual Basic for Applications (VBA), Microsoft Visual C++ 및 Microsoft Visual Basic 6.0 을 사용하여  Office Fluent Ribbon을 커스터마이징할 수도 있습니다.

Office Fluent Ribbon은 응용 프로그램 윈도우의 최상부에 표시되는 일련의 계층형 구성요소에서 구성됩니다. 예를 들어, Office Fluent Ribbon에는 그룹을 포함한 탭이 있습니다. 그룹에는 단추, 메뉴, 콤보 박스 및 체크 박스 등의 컨트롤이 포함됩니다 (그림 1 을 참조).

그림 1. Office Fluent Ribbon 형태

The Office Fluent Ribbon

Office Fluent Ribbon을 구성하는 구성요소를 조작하려면, XML 또는 다수의 프로그래밍언어 중  하나를 사용합니다. XML 는 일반 텍스트이기 때문에 임의의 텍스트 문자 편집기에서 커스터마이징 파일을 생성할 수 있기 때문에  커스터마이징이 용이합니다.

XML 마크 업 파일을 사용하여  UI 를 커스터마이징하면, 복잡한 추가기능의 필요성이 크게 줄어듭니다. 다만, Office의 이전 버전 대상에서 기술된 추가기능은 극히 일부를 변경하거나 또는 변경 없이 Office Fluent UI 에서 계속해서 동작합니다.

다음 방법에서 새로운 Office Fluent UI 를 지원하는 응용 프로그램의 대부분에서 독자적인 응용 프로그램 수준의 Office Fluent Ribbon을 생성할 수 있습니다.

  • 매니지 코드 또는 언매니지드 코드로 구성요소 개체 모델 (COM) 추가기능을 사용하는 방법

  • .ppam 파일이나 .xlam 파일 등의 응용 프로그램 고유의 추가기능을 사용하는 방법

  • Office Word 2007 템플릿 (.dotm 파일)을 사용하는 방법

Note메모 :

Access 2007와 Outlook 2007은 다른 Office 응용 프로그램과는 조금 다른 방법으로 Ribbon 커스터마이징을 구현합니다. 

일반적인 시나리오에서는 COM Add-In의 코드에는 외부 커스터마이징 파일에서 또는 추가기능 프로젝트에 포함된 XML에서 XML 마크 업을 반환하는 프로시저가 포함되어 있습니다. 응용 프로그램이 실행 되면, 추가기능은 XML 마크 업을 반환하는 코드를 로드하여 실행합니다. 코드는 XSD 스키마에 대조해 XML 마크 업을 유효성 검사하여  (다만 옵션), XML 를 메모리에 로드, 그것을 Office Fluent Ribbon에 적용합니다. 응용 프로그램의 실행 때에는 변경된 Office Fluent Ribbon이 표시됩니다. Office Fluent Ribbon 커멘드와 컨트롤은 콜백 프로시저를 사용하여  추가기능 코드를 실행합니다. 콜백 프로시저를 사용하여, 개발자는 액션을 구현하여 속성을 업데이트한 후, 실행 시에 UI에서 액션을 실행합니다. 예를 들어, Ribbon상의 단추를 클릭 했을 때에 발생하는 액션을 지정하려면, 그 단추용의 onAction 콜백 함수를 지정합니다. 단추를 클릭하면, Office 는 프로시저를 콜백하여, 정의된 모든 액션을 실행합니다.

Note메메모 :

문서 수준의 커스터마이징에서는 같은 XML 마크 업과 .docx,.docm,.xlsx,.xlsm,.pptx 또는 .pptm 의 몇 개의 확장자(extension)를 가지는 Office Open XML 파일 형식을 사용합니다. Office Fluent Ribbon의 자세한 내용은 「2007 Office Fluent Ribbon을 커스터마이징하는 (개발자 대상) (파트 1/3)/a>」」 제목의 일련 문서를 참조해 주세요.

다음은 Office Fluent Ribbon 커스터마이징 예를 세부적으로 설명합니다. 예는 기존 UI 에 구성요소를 추가하는 COM Add-In에서 3 개의 XML 커스터마이징 파일 중 무엇을 사용하는지에 따라 Excel 2007, PowerPoint 2007 또는 Word 2007 중 선택하는 편리한 교육 리소스 링크를 제공합니다. 완성된 추가기능을 다운로드 하려면, 다음을 참조해 주세요.

"Get Started" 탭에 기능 추가하기에 대해

Get Started  탭 추가기능은 Microsoft Office Online 위에 존재하는 다양한 2007 Office 교육 리소스 링크를 제공합니다. 이 추가기능은 그림 2 와 같이, Office Fluent Ribbon에 (6 개의 그룹과 복수 단추가 부속) 탭을 추가하여 링크를 제공합니다.  3개의 프로젝트에서 사용되는 코드의 대부분은 같습니다. 주요 차이점은 개별 Office 응용 프로그램 용무의 시스템 리소스를 참조입니다.

Note메모 :/th>

Get Started 탭 추가기능은 2007 Office 응용 프로그램 교육 리소스 링크를 제공합니다. 문서에 있는 추가기능과 Office Online 교육 리소스의 자세한 내용은 「Download Get-Started Training for the 2007 Microsoft Office system (영어)」를 참조해 주세요.

그림 2. Word 2007 의 Fluent Ribbon상 Get Started 탭

Word 2007 의 Fluent 리본의 [Get Started] 탭

코드의 각 섹션이 Office Fluent Ribbon에 1 개의 구성요소를 추가하면 커스터마이징 마크 업이 크게 증가합니다. 이 구조를 이해하기 쉽도록 여기에서는 Get Started 탭 추가기능 샘플로 사용되는 커스터마이징 파일을 설명합니다.

&<customUI xmlns="https://schemas.microsoft.com/office/2006/01/customui">
  <ribbon>
    <tabs>
      <tab id="tr" label="Get Started">
        <group id="c1" label="Find a Command" >
......
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

앞의 구문은 Office 응용 프로그램에서 이것이 Office Fluent Ribbon에 관한 커스터마이징 마크 업임을 보여줍니다. xmlns 특성은 Office Fluent Ribbon 구성요소의 이름이 정의된 네임 스페이스를 지정했습니다. <ribbon> 요소는 그 외 모든 요소의 컨테이너 (루트) 요소입니다.

Note메모 :

<ribbon> 요소에는 startFromScratch 라는 이름의 특성이 포함되어 있습니다. 이 특성을 True 로 설정하면, 개발자가 정의한 커스터마이징 탭만을 표시할 수 있도록 응용 프로그램의 실행 때에 그 외 모든 탭을 삭제합니다. 명시적으로 설정된 경우를 제외하고, 이 특성은 False 입니다. 

<tabs>/b> 요소는 하나 이상의 <tab> 요소의 컨테이너 요소입니다. <tab> 요소는 idlabel 특성을 지정하여, [Get Started] 탭을 정의합니다. 콜백 프로시저에서는 id 특성이 컨트롤을 특정합니다. label 특성에는 컨트롤을 사용하여  표시되는 텍스트가 포함되어 있습니다.

각 탭 구성요소에는 관련하는 구성요소를 특정하는 그룹이 포함되어 있습니다. 이 샘플의 그룹에는 새로운 Office Fluent UI 에 있는 Office 2003 컨트롤, 커멘드 및 메뉴의 장소를 쉽게 찾아내는 기능과 관련된 구성요소가 포함되어 있습니다.

다음의 코드예는 "Find a Command" 그룹에 존재하는 단추 컨트롤을 정의합니다.

<button  id="b1" label="Interactive Lookup Tool" size="large" 
   imageMso="SharePointListsWorkOffline"
   screentip="Interactive Lookup Tool"
   supertip="Point at Word 2003 buttons and commands to see them in Word 2007."
   onAction="openPage"
   tag="https://office.microsoft.com/search/redir.aspx?AssetID=HA100744321033&amp;CTT=4&amp;
   Origin=EC102128421033" />
Note메모 :/th>

추가기능에서 정의된 구성요소는 컨트롤에 사용할 수 있는 특성중  부분집합만을 사용합니다. 각 Ribbon 구성요소의 모든 특성과 콜백 목록은 「2007 Office Fluent Ribbon 커스터마이징 (개발자 대상) (파트 2/3)」를 참조해 주세요.

샘플의  특성인 단추 사이즈를 지정합니다. 특성을 지원하는 컨트롤에 사용할 수 있는 선택사항은 "normal" 및 "large" 입니다. 다음의 단추의 이미지는 imageMso 특성에 의해 정의됩니다. Mso suffix가 중요합니다. 개발자는 커스터마이징 컨트롤을 생성가능할 뿐만 아니라, 기본값의 Office Fluent UI 의 일부인 많은 컨트롤과 기능에 액세스할 수도 있습니다. 특성 이름의 Mso 확장자(extension)에 의해, 편입의 기능과 커스터마이징 기능이 구별됩니다. 예를 들어, 기본 저장된 Font 단추의 id 특성은 idMso="Font" 와 기술되고, 커스터마이징 단추는 id="button1" 으로 정의됩니다. 기본 저장된 컨트롤이 존재하도록 기본 저장된 이미지도 존재합니다. 따라서 앞의 예에서, 커스터마이징 단추에서는 편입 이미지는 imageMso="SharePointListsWorkOffline" 에 의해 지정됩니다. 그림 2. 에서[Interactive lookup tool] 단추상에서 이 이름과 관련된 기본 저장된 이미지를 확인할 수 있습니다.

예제를 보면, 텍스트를 screentip 특성 또는 supertip 특성 매핑에 따라, (Enhanced ScreenTips 라는 이름의) 컨트롤 위에 사용자가 마우스를 이동시켰을 때에 표시하는 정보를 지정할 수 있습니다.

screentip="Interactive Lookup Tool" 
supertip="Point at Word 2003 buttons and commands to see them in Word 2007."

세부 사항힌트 텍스트에는 힌트에 관한 추가 정보가 있습니다.

onAction 특성은 사용자가 컨트롤에 액세스 했을 때 (이 경우는 단추를 클릭 했을 때)에 실행되는 액션이 포함된 콜백 프로시저를 지시합니다. 예를 들어, Get Started 탭 추가기능에서는 onAction 특성은 브라우저에서 Web 페이지를 열어 openPage 서브루틴을 지시합니다.

Sub openPage(ByVal control As IRibbonControl)
   Shell("c:\program files\internet explorer\iexplore " & control.Tag, vbMaximizedFocus)
End Sub

콜백 프로시저는 호출을 실시하는 컨트롤을 나타내는 IRibbonControl 개체를 받는 것에 주의해 주세요. 이것에 의해, 프로시저는 호출을 실시한 컨트롤을 특정하여, 그 정보를 사용하여  어느 액션을 실행할지를 결정할 수 있습니다. 다음의 tag 특성은 임의의 고유 값으로 설정할 수 있습니다. 이것은 콜백 프로시저 안에서 이 값을 다른 목적에 사용할 수 있는 것을 의미합니다. 다음의 구문을 예로 봅시다.

tag=https://office.microsoft.com/search/redir.aspx?AssetID=HA100744321033&amp;CTT=4&amp;Origin=EC102128421033

Get Started 추가기능의 예에서는 openPage 서브루틴은 Internet Explorer 를 실행합니다. 다만, 프로시저가 의미를 가지기 위해서는 브라우저는 특정 페이지를 열 필요가 있습니다. 이 때문에는 페이지의 주소를 보관하는 tag 특성을 사용할 수 있습니다. 그리고 단추 컨트롤을 나타내는 IRibbonControl 개체를 사용하여 openPage 콜백 프로시저가 호출되었을 때 컨트롤의 tag 속성을 사용하여  브라우저에서 올바른 페이지를 열 수 있습니다.

이것으로 Office Fluent Ribbon 커스터마이징 단추의 설명이 끝났습니다. 이 문서의 뒷부분에서 설명하듯이, 그 외의 그룹이나 단추도 이와 같이 기능합니다.

Get Started 탭 추가기능 프로젝트

문서가 열려 있는 지와 관계없이 변경된 Office Fluent Ribbon이 응용 프로그램에서 표시된 것은 COM Add-In을 사용하여  행해진 커스터마이징은 응용 프로그램 수준의 변경이 됩니다. 또, 일반적으로 매니지 코드로 COM Add-In을 생성 하려면 2 개의 선택사항이 있습니다. 즉, Microsoft Visual Studio 2005 에 포함되는 공유 추가기능 템플릿을 사용하는 방법과 한층 더 추가기능을 생성하기 쉬운 Microsoft Visual Studio 2005 Tools for Office Second Edition 를 사용하는 방법이 있습니다. Visual Studio 2005 Tools for Office 를 사용한 응용 프로그램 수준의 추가기능 생성에 대한 자세한 내용은 「응용 프로그램 수준의 추가기능 프로그래밍 입문」을 참조해 주세요.

Note메모 :

공용 언어 런타임아래에서 동작하는 코드는 "매니지 코드"로 불립니다. 이것에는 Microsoft Visual Basic .NET 코드, Microsoft Visual C# 코드 및 Microsoft ASP.NET 코드가 포함됩니다. Visual Basic for Applications (VBA) 코드나 Visual Basic 6.0 코드 등 공용 언어 런타임아래에서는 동작하지 않는 코드는 "언매니지드 코드" 라 합니다.

다음 순서에서는 Ribbon을 커스터마이징하는 COM Add-In의 기본이 되는 메서드 calling sequence를 설명합니다.

COM Add-In을 사용하여  Office Fluent Ribbon을 커스터마이징 한다

다음 순서에서는 Fluent Ribbon을 커스터마이징하는 COM Add-In을 생성하기 위한 일반적인 프로세스를 설명합니다.

  1. COM Add-In 프로젝트를 생성합니다.

    생성하는 추가기능은 Microsoft.Office.Core 네임 스페이스의 Extensibility.IDTExtensibility2 인터페이스와 IRibbonExtensibility 인터페이스를 구현할 필요가 있습니다.

  2. 추가기능 프로젝트를 구축하여, 프로젝트를 설치 후, 프로젝트를 설치 합니다.

  3. Office 응용 프로그램을 실행합니다.

이전 버전의 Office 와 같이 추가기능 로드 때에는 IDTExtensibility2::OnConnection 이벤트가 호출되면 추가기능이 초기화됩니다.

다음의 응용 프로그램은 IRibbonExtensibility::GetCustomUI 메서드를 호출합니다. 이 메서드는 XML 커스터마이징 파일에서 또는 프로시저에 임베디드 XML 마크 업에서 XML 마크 업을 돌려줍니다. 그리고 응용 프로그램에는 커스터마이징된 Office Fluent Ribbon이 로드됩니다. 최종적으로 커스터마이징 된 Ribbon을 사용자를 사용할 수 있습니다.

콜백 프로시저 사용

이미 설명한 것처럼, XML 마크 업에서 지정된 각 컨트롤이 콜백 프로시저를 개입시켜 그 기능을 공개합니다. 예를 들어, 단추 컨트롤 용무의 XML 마크 업은 사용자가 단추를 클릭 했을 때에 실행되는 프로시저를 지시하는 onAction 특성을 지정할 수 있습니다. 콜백 프로시저는 대부분의 경우, 컨트롤을 식별하는 IRibbonControl 인터페이스를 공개합니다. 다만, 토글단추 상태를 지정하는 부울 개체나 콤보 박스 컨트롤로 선택된 아이템의 식별자(dentifiers) 등 콜백은 그 외의 인수를 건네주기도 합니다. IRibbonControl 인터페이스는 Context 개체, Id 개체, tag 속성의 3가지 속성을 구현합니다. Context 개체는 콜백을 호출하는 Office Fluent Ribbon을 포함한 액티브한 윈도우입니다. Id 개체는 마크 업에서 지정된 커스터마이징 컨트롤의 문자열 식별자(dentifiers)입니다. tag 속성은 이미 설명한 것처럼, 마크 업에서 옵션으로 지정할 수 있는 고유하지 않은 속성입니다.

공유 COM Add-In을 사용하여  Get Started 탭 프로젝트 생성

다음의 예에서는 매니지 COM Add-In을 사용하여  Word 2007에서 Office Fluent Ribbon을 커스터마이징합니다. 추가기능은 복수의 그룹과 단추가 부속되는 [Get Started] 탭을 생성합니다. 사용자가 단추를 클릭하면, 추가기능은 특정 Web 페이지를 엽니다. 이 경우는 Office Word 2007 교육 리소스를 엽니다.

Note메모 :

같은 프로세스에 따르면, Excel 2007 및 PowerPoint 2007에서 Get Started 탭 프로젝트를 생성할 수 있습니다. 이후의 설명에서는 독자적인 응용 프로그램 이름을 대체 할 수 있는 영역은application 그리고 마크 됩니다.

추가기능 솔루션을 생성 하려면

다음 순서와 같이 Get Started 탭 추가기능 프로젝트를 생성합니다.

  1. Visual Studio 2005 를 실행합니다.

  2. [File] 메뉴의 [New] 에서 [Project] 를 클릭합니다.

  3. [New Project] 대화상자의 [Project Types] 윈도우로 [Other Project Types] 를 하고, [Extensibility] 을 클릭한 후[Shared Add-in] 을 선택합니다.

  4. [Name] 박스에서「application2007 GetStartedTab」라고 입력하고, [예] 를 클릭하고 프로젝트를 생성합니다.

  5. 공유 추가기능 마법사의 시작 페이지로 [Next] 를 클릭합니다.

  6. [Select a Programming Language] 페이지에서 [Visual Basic] 을 선택하고, [Next] 를 클릭합니다.

  7. [Select an Application Host] 페이지로 사용하는 Office 응용 프로그램을 제외하는 모든 선택사항을 오프로 하고, [Next] 를 클릭합니다.

  8. [Enter a Name and Description] 페이지에서 이름을 GetStartedTab」라고 입력하고, 설명은 「Adds a Get Started tab to the Office Fluent Ribbon」라고 입력하고, [Next] 를 클릭합니다.

  9. [Choose Add-in Options] 페이지에서 [I would like my Add-in to load when the host application loads] 을 선택한 후 , [Next] 를 클릭하고, [Finish] 를 클릭합니다.

  10. Visual Studio 에 의해 2개의 프로젝트, 추가 클래스 (add-on class) 프로젝트와 설치 (set-up) 프로젝트로 이루어진 솔루션을 생성합니다.(설치 프로젝트를 사용하면, 추가기능을 다른 사용자의 컴퓨터에 설치 할 수 있습니다. 이것에 의해, 디자인 시에 추가기능을 설치 및 제거하기 쉬워집니다).

  11. Office 2007 응용 프로그램과 Ribbon 개체 모델을 조작하려면, 두가지 유형 라이브러리 참조를 추가합니다.

참조를 추가하려면

  1. 솔루션 탐색기에서  [References] 폴더를 배포합니다.

    [References] 폴더가 표시 되지 않은 경우는 [Project] 메뉴의 [Show All Files] 를 클릭합니다.

  2. Microsoft.Office.Core 참조를 삭제합니다.

  3. [References] 폴더를 오른쪽 클릭하여, [Add Reference] 를 클릭합니다.

  4. [COM] 탭을 클릭하여, [Microsoft Office 12.0 Object Library] 를 선택하고, [OK] 를 클릭합니다.

  5. 오픈 코드 파일의 상부로 다음의 구문을 프로젝트에 추가합니다.

    Imports Microsoft.Office.Core
    Imports application = Microsoft.Office.Interop.application
    

    예를 들어,Imports Word = Microsoft.Office.Interop.Word 등입니다.

XML 커스터마이징 파일을 생성 하려면

다음 순서로 Office Word 2007 용의 XML 커스터마이징 파일을 생성합니다. 같은 XML 커스터마이징 파일의 Office Excel 2007 및 Office PowerPoint 2007 용의 버전은 이 문서의 마지막에 수록됩니다.

  1. [Project] 메뉴의 [Add New Item] 를 클릭합니다.

  2. [Add New Item] 대화상자에서 [XML 파일] 을 선택합니다. 새로운 파일에 Ribbon.xml 라고 이름을 붙이고, [Add] 를 클릭합니다.

  3. 새로운 XML 파일에서 다음의 XML 마크 업을 추가합니다.

    <customUI xmlns="https://schemas.microsoft.com/office/2006/01/customui">
      <ribbon>
        <tabs>
          <tab id="tr" label="Get Started">
            <group id="c1" label="Find a Command" >
              <button id="b1" label="Interactive Lookup Tool" size="large" imageMso="SharePointListsWorkOffline" 
              screentip="Interactive Lookup Tool" 
              supertip="Point at Word 2003 buttons and commands to see them in Word 2007" onAction="openPage" 
              tag="https://office.microsoft.com/search/redir.aspx?
              AssetID=HA100744321033&amp;CTT=4&amp;Origin=EC102128421033" />
            </group>
    
            <group id="c2" label="Get Online Training">
              <button id="b2" label="Up to Speed Course" size="large" imageMso="RecurrenceEdit" 
              screentip="Up to Speed Course" 
              supertip="Learn quickly how to use Word 2007." onAction="openPage" 
              tag=https://office.microsoft.com/search/redir.aspx?
              AssetID=RC100664431033&amp;CTT=4&amp;Origin=EC102128421033 />
            </group>
    
            <group id="c3" label="Watch Demos">
              <button id="vid" label="Word 2007 Overview" size="large" imageMso="ContactPictureMenu" 
              screentip="Word 2007 Overview" 
              supertip="See Word 2007 in action." onAction="openPage" 
              tag=https://office.microsoft.com/search/redir.aspx?
              AssetID=HA101672751033&amp;CTT=4&amp;Origin=EC102128421033 />
              <button id="b3" label="Up to Speed" size="large" imageMso="MovieFromFileInsert" 
              screentip="Up to Speed" 
              supertip="Get familiar with Word 2007, and see why you won't have to learn Word all over again." 
              onAction="openPage" 
              tag="https://office.microsoft.com/search/redir.aspx?AssetID=HA100484691033&amp;CTT=4&amp;Origin=EC102128421033" />
            </group>
    
            <group id="c4" label="Ask the Community">
              <button id="b4" label="Discuss Word 2007" size="large" imageMso="MeetingsWorkspace" 
              screentip="Discuss Word 2007" 
              supertip="Questions? Ask someone for answers." onAction="openPage" 
              tag=https://office.microsoft.com/search/redir.aspx?
              AssetID=HA012061421033&amp;CTT=4&amp;Origin=EC102128421033 />
            </group>
    
            <group id="c5" label="View Home Pages">
              <button id="b5" label="Training" size="large" imageMso="BlogHomePage" 
              screentip=" Training " 
              supertip="See more free online training." onAction="openPage" 
              tag="https://office.microsoft.com/search/redir.aspx?
              AssetID=FX100565001033&amp;CTT=4&amp;Origin=EC102128421033" />
              <button id="b6" label="Demos" size="large" imageMso="MovieFromFileInsert" 
              screentip="Demos" 
              supertip="See more video demos." onAction="openPage" 
              tag="https://office.microsoft.com/search/redir.aspx?AssetID=FX100485311033&amp;CTT=4&amp;Origin=EC102128421033" />
              <button id="b7" label="Word 2007" size="large" imageMso="FileSaveAsWord97_2003" 
              screentip="Word 2007" supertip="See more video demos." onAction="openPage" 
              tag="https://office.microsoft.com/search/redir.aspx?AssetID=FX100649251033&amp;CTT=4&amp;Origin=EC102128421033" />
            </group>
          </tab>
        </tabs>
      </ribbon>
    </customUI>
    
  4. 파일을 저장하고 닫습니다.

Note메모 :

XML 파일은 프로젝트의 리소스 파일 안의 리소스로 취급하면 보다 간단하게 사용할 수 있습니다.

XML 리소스를 생성 하려면

리소스로서 프로젝트에 파일을 추가하려면, 다음의 조작을 실행합니다.

  1. 솔루션 탐색기에서 [Ribbon.xml] 를 선택합니다.

  2. [Properties] 윈도우에서 Build Action 속성을 선택한 후, 옵션 리스트에서 [임베디드 리소스]를 선택합니다.

  3. [Project] 메뉴의 [applicationGetStartedTab Properties] 를 클릭합니다.

  4. [Resources] 탭을 클릭합니다.

  5. 솔루션 탐색기에서 [Ribbon.xml] 를 Resources design surface에 드래그 합니다.

    이 조작으로 XML 컨텐츠를 포함한 파일 기반의 리소스가 생성됩니다. 그 뒤, Ribbon.xml 파일은 자동적으로 응용 프로그램 리소스로서 보관되어 개발자는 Visual Basic 의 언어기능을 사용하여 이 컨텐츠를 얻을 수 있습니다.

  6. [Resources] 윈도우를 닫습니다. 프롬프트가 표시되면, [Yes] 를 클릭하여 리소스를 저장합니다.

호스트 응용 프로그램에 액세스 하고, Ribbon을 조작하려면

  1. 솔루션 탐색기로 [Connect.vb] 를 오른쪽 클릭하고, [View Code] 를 클릭합니다.

  2. applicationObject 변수의 기존 선언을 찾아, 그것이 특정 Office 응용 프로그램의 Application 개체를 지시하도록  그것을 변경합니다.
    즉, 선언을 다음의 코드와 같이 변경합니다.

    Private applicationObject As application.Application
    
  3. OnConnection 메서드의 기존 첫번째 행을 변경합니다. 이것에 의해, Office 응용 프로그램의 Application 개체의 인스턴스가 생성됩니다.

    applicationObject = DirectCast(application, application.Application)
    
  4. IRibbonExtensibility 네임 스페이스를 구현하기 위한 지원을 추가하여, 클래스의 선두 부근에 있는 Implements 에서 시작되는 코드행을 변경합니다. Visual Basic 에 의해 자동적으로 GetCustomUI 프로시저가 삽입됩니다. 삽입되지 않은 경우는 클래스에 프로시저를 복사 합니다.

    Implements Extensibility.IDTExtensibility2, IRibbonExtensibility
    
  5. GetCustomUI 메서드를 다음의 코드와 같이 변경합니다.

    Public Function GetCustomUI(ByVal RibbonID As String) As String _
      Implements Microsoft.Office.Core.IRibbonExtensibility.GetCustomUI
      Return My.Resources.Ribbon
    End Function
    
    Caution note주의 :

    GetCustomUI 메서드를 구현 하고, Ribbon 커스터마이징 용무의 XML 문자열을 반환해야 합니다. 초기화에는 GetCustomUI 메서드를 사용하지 말아 주세요. 특히, GetCustomUI 구현에서는 대화상자나 메시지 윈도우를 표시하지 말아 주세요. 초기화를 실행하는 것보다 적절한 장소는 OnConnection 메서드의 내부입니다.

  6. 클래스에 다음의 메서드를 추가합니다. 이 메서드에 의해 전화면 모드에서 Internet Explorer 가 열리고, 프로시저를 호출한 컨트롤의 tag 속성에 의해 지정된 Web 페이지가 표시됩니다.

    #Region "Callbacks"
        Sub openPage(ByVal control As IRibbonControl)
            Shell("c:\program files\internet explorer\iexplore " & control.Tag, vbMaximizedFocus)
        End Sub
    #End Region
    
  7. [File] 메뉴의 [Save All] 을 클릭합니다.

  8. Office 응용 프로그램이 동작중인 경우는 종료합니다.

  9. [Build] 메뉴의 [Build Solution] 를 클릭합니다.

  10. 솔루션 탐색기에서 [ application2007GetStartedTabSetup] 을 오른쪽 클릭하고, [Build] 를 클릭합니다.

  11. [ application2007GetStartedTabSetup]을 오른쪽 클릭하고, [Install] 를 클릭합니다.

    설치 마법사가 표시됩니다.

  12. 마법사의 각 페이지에서 [Next] 를 클릭한 후, 마지막 페이지에서 [Close] 을 클릭합니다.

  13. Office 응용 프로그램을 실행합니다.

    그 외의 탭의 오른쪽에서 [Get Started] 탭이 표시됩니다.

  14. [Get Started] 를 클릭한 뒤, [Interactive lookup tool] 를 클릭합니다. Word 에 의해 브라우저에서 Microsoft Office Online Web 페이지가 열립니다.

    그림 3. 단추를 클릭하면 Office Online 페이지가 열린다/p>

    버튼을 클릭 하면 Office Online 페이지가 열립니다

  15. Word 를 종료합니다.

  16. Visual Studio 의 솔루션 탐색기에서 [ application2007GetStartedTabSetup] 을 오른쪽 클릭하고, [Uninstall] 를 클릭합니다.

  17. 그 외의 단추를 클릭하고, 사용자가 이용할 수 있는 2007 Office 응용 프로그램에 관한 풍부한 트레이닝 정보를 참조해 주세요.

Office Excel 2007 XML 커스터마이징 파일

여기에서는 Office Excel 용의 XML 커스터마이징 파일을 보여줍니다. 이 문서의 「XML 커스터마이징 파일을 생성」에 있는 Word XML 커스터마이징 파일 대신에 이 파일을 사용합니다.

<customUI xmlns="https://schemas.microsoft.com/office/2006/01/customui">
  <ribbon>
    <tabs>
      <tab id="tr" label="Get Started">
        <group id="c1" label="Find a Command">
          <button id="b1" label="Interactive Lookup Tool" size="large" imageMso="SharePointListsWorkOffline"
          screentip="Interactive Lookup Tool" 
          supertip="Point at Excel 2003 buttons and commands to see them in Excel 2007." 
          onAction="openPage" tag="https://office.microsoft.com/search/redir.aspx?
          AssetID=HA101491511033&amp;
          CTT=4&amp; Origin=EC102130091033" />
        </group>

        <group id="c2" label="Get Online Training">
          <button id="b2" label="Up to Speed Course" size="large" imageMso="RecurrenceEdit" 
          screentip="Up to Speed Course" supertip="Learn quickly how to use Excel 2007. onAction="openPage" 
          tag="https://office.microsoft.com/search/redir.aspx?AssetID=RC100620751033&amp;
          CTT=4&amp;Origin=EC102130091033"/>
        </group>

        <group id="c3" label="Watch Demos">
          <button id="vid" label="Excel 2007 Overview" size="large" imageMso="ContactPictureMenu" 
          screentip="Excel 2007 Overview" supertip="See Excel 2007 in action." onAction="openPage" 
          tag="https://office.microsoft.com/search/redir.aspx?
          AssetID=HA101672621033&amp;CTT=4&amp;Origin=EC102130091033"/>
          <button id="b3" label="Up to Speed" size="large" imageMso="MovieFromFileInsert"
          screentip="Up to Speed" supertip="Get familiar with Excel 2007, and see why you 
          won't have to learn Excel all over again." onAction="openPage"tag=
          "https://office.microsoft.com/search/redir.aspx?AssetID=HA100484501033&amp;CTT=4&amp;
           Origin=EC102130091033" />
        </group>

        <group id="c4" label="Ask the Community">
          <button id="b4" label="Discuss Excel 2007" size="large" imageMso="MeetingsWorkspace" 
          screentip="Discuss Excel 2007" supertip="Questions? Ask someone for answers." 
          onAction="openPage"tag="https://office.microsoft.com/search/redir.aspx?
         AssetID=HA011918011033&amp;CTT=4&amp;Origin=EC102130091033"/>
        </group>

        <group id="c5" label="View Home Pages">
          <button id="b5" label="Training" size="large" imageMso="BlogHomePage" 
          screentip="Training" supertip="See more free online training." onAction="openPage" 
          tag="https://office.microsoft.com/search/redir.aspx?AssetID=FX100565001033&
          amp;CTT=4&amp;Origin=EC102130091033" />
          <button id="b6" label="Demos" size="large" imageMso="MovieFromFileInsert" 
          screentip="Demos" supertip="See more video demos." onAction="openPage" 
          tag="https://office.microsoft.com/search/redir.aspx?AssetID=FX100485311033
          &amp;CTT=4&amp; Origin=EC102130091033" />
          <button id="b7" label="Excel 2007" size="large" imageMso="FileSaveAsExcel97_2003" 
          screentip="Excel 2007" supertip="Help and how-to information." onAction="openPage" 
          tag="https://office.microsoft.com/search/redir.aspx?AssetID=FX100646951033
          &amp;CTT=4&amp; Origin=EC102130091033" />
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

Office PowerPoint 2007 XML 커스터마이징 파일

여기에서는 Office PowerPoint 용의 XML 커스터마이징 파일을 보여줍니다. 이 문서의 「XML 커스터마이징 파일을 생성」에 있는 Word XML 커스터마이징 파일 대신에 이 파일을 사용합니다.

<customUI xmlns="https://schemas.microsoft.com/office/2006/01/customui">
  <ribbon>
    <tabs>
      <tab id="tr" label="Get Started" >
        <group id="c1" label="Find a Command">
          <button id="b1" label="Interactive Lookup Tool" size="large" imageMso="SharePointListsWorkOffline"
          screentip="Interactive Lookup Tool" supertip="Point at PowerPoint 2003 buttons and commands 
          to see them in PowerPoint 2007."
          onAction="openPage" tag="https://office.microsoft.com/search/
          redir.aspx?AssetID=HA101490761033
          &amp;CTT=4&amp;Origin=EC102130081033" />

        </group>
        <group id="c2" label="Get Online Training">
          <button id="b2" label="Up to Speed Course" size="large" imageMso="RecurrenceEdit" 
          screentip="Up to Speed Course" supertip="Learn quickly how to use PowerPoint 2007." 
          onAction="openPage" tag="https://office.microsoft.com/search/redir.aspx?AssetID=RC100687671033
          &amp;CTT=4&amp;Origin=EC102130081033"/>

        </group>
        <group id="c3" label="Watch Demos">
          <button id="vid" label="PowerPoint 2007 Overview" size="large" imageMso=
          "ContactPictureMenu" screentip="PowerPoint 2007 Overview" supertip="See PowerPoint 2007 
           in action." onAction="openPage" tag="https://office.microsoft.com/search/redir.aspx
          ?AssetID=HA101672691033&amp;CTT=4&amp;Origin=EC102130081033"/>
          <button id="b3" label="Up to Speed" size="large" imageMso="MovieFromFileInsert"
          screentip="Up to Speed" supertip="Get familiar with PowerPoint 2007, and see why 
          you won't have to learn PowerPoint all over again." onAction="openPage" tag="
          https://office.microsoft.com/search/redir.aspx?AssetID=HA100484621033
          &amp;CTT=4&amp; Origin=EC102130081033" />
        </group>

        <group id="c4" label="Ask the Community">
          <button id="b4" label="Discuss PowerPoint 2007" size="large" imageMso="MeetingsWorkspace" 
          screentip="Discuss PowerPoint 2007" supertip="Questions? Ask someone for answers." 
          onAction="openPage" tag="https://office.microsoft.com/search/redir.aspx?
          AssetID=HA011595831033&amp;CTT=4&amp;Origin=EC102130081033"/>
        </group>

        <group id="c5" label="View Home Pages">
          <button id="b5" label="Training" size="large" imageMso="BlogHomePage" 
          screentip="Training" supertip="See more free online training." onAction="openPage" tag="
          https://office.microsoft.com/search/redir.aspx?AssetID=FX100565001033
          &amp;CTT=4&amp; Origin=EC102130081033" />
          <button id="b6" label="Demos" size="large" imageMso="MovieFromFileInsert" 
          screentip="Demos" supertip="See more video demos." onAction="openPage" tag="
          https://office.microsoft.com/search/redir.aspx?AssetID=FX100485311033&amp;
          CTT=4&amp;Origin=EC102130081033" />
          <button id="b7" label="PowerPoint 2007" size="large" imageMso=
          "FileSaveAsPowerPoint97_2003" screentip="PowerPoint 2007" supertip="Help and 
          how-to information." 
          onAction="openPage" tag="https://office.microsoft.com
          /search/redir.aspx?AssetID=FX100648951033&amp;CTT=4&amp;
          Origin=EC102130081033" />
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

요약

Office Fluent Ribbon 커스터마이징은 비교적 간단하고 단순합니다. 몇 가지의 커스터마이징 컨트롤을 사용하는 것만으로 Get Started 탭 의 예에 있는 리소스와 같은 외부 리소스에 액세스 할 수 있습니다. 주소를 인트라넷의 지원 페이지에 옮겨놓아 사용자가 필요한 정보로 간단하게 액세스  할 수 있습니다.