본문 바로가기
excel VBA

Excel VBA 커스텀 리본 메뉴 구성 방법

by 퍼포먼스마케팅코더 2023. 11. 16.
반응형

엑셀에서는 추가 기능 파일(Add-in, 예를 들어 .xlsm 파일)을 생성하여 이를 통해 커스텀 리본 메뉴를 구성할 수 있음. 직접 XML 코드를 작성하는 수동 방법이 있지만, 사용자 친화적인 도구인 Office RibbonX Editor를 활용하는 방법도 있음. 이 도구를 사용시XML 코드를 직접 작성하는 대신 그래픽 인터페이스를 통해 리본 메뉴를 쉽고 빠르게 커스터마이즈할 수 있음. Office RibbonX Editor를 사용하는 방법을 살펴보기.

 

먼저 아래에 들어가서 다운받는다. 

 

Release Office RibbonX Editor 1.9.0 (Build 1056) · fernandreu/office-ribbonx-editor · GitHub

 

아래에 보면 NetFrameWork-Installer 를 통해 다운을 받고 진행시 Office RibbonX Editor 파일을 실행할 수 있도록 할 수 있다. 

 

 

 

 

Office RibbonX Editor 을 연 다음에, xlsm 파일을 열고 넣어야됨. (test 방식으로 먼저 ribborn_test.xlsm 파일을 열시 아래와 같이 나오며, 여기에 Insert Office 2010+ Custom UI Part 메뉴를 클릭시 xml 파일이 생성됨. 

 

 

 

 

아래와 같이 Office 365 에 호환되는 기본 공식 코드. 해당 xml 파일을 기본 공식으로 가져가되, 

imageMSO 의 특정 속성은 아래의 URL에서 참고한다. (각 아이콘 내 이름을 보면 설명이 들어있음.)

 

Office Excel 리본 이미지Mso 아이콘 갤러리 페이지 02 (spreadsheet1.com)

 

<!-- Office 2010 이후 버전을 위한 Custom UI XML 네임스페이스 -->
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <!-- 리본 설정, startFromScratch가 false이면 기본 리본 탭을 유지 -->
  <ribbon startFromScratch="false">
    <!-- 리본에 추가될 탭 정의 -->
    <tabs>
      <!-- 사용자 정의 탭. id는 탭의 고유 식별자, label은 탭의 라벨 -->
      <tab id="CustomTab" label="My Tab">
        <!-- 탭 내에 그룹 추가. 그룹도 고유 id와 라벨을 가짐 -->
        <group id="SimpleControls" label="My Group">
          <!-- 그룹 내 버튼 정의. 여러 속성들을 설정할 수 있음 -->
          <button id="Button1" imageMso="HappyFace" size="large"
                  label="Large Button"    <!-- 버튼 라벨 -->
                  screentip="my long description"  <!-- 마우스 오버시 표시될 설명 -->
                  onAction="OnMyButtonClick"/>  <!-- 클릭 시 실행될 매크로 또는 함수 -->
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

 

 

이후에 Generate Callbacks 의 기능을 클릭시 아래와 같이 나오는데, 해당 내용을 ribborn_test.xlsm 파일에 모듈을 생성하여 호출할 sub 함수를 넣으면 된다.

 

'Callback for Button1 onAction
Sub OnMyButtonClick(control As IRibbonControl)
End Sub

 

반응형

'excel VBA' 카테고리의 다른 글

엑셀 VBA 컴파일 오류 경고 끄기  (0) 2023.09.05
엑셀 Property 프로시저  (0) 2023.08.30
Function 프로시저  (0) 2023.08.30
Sub 프로시저  (0) 2023.08.30
엑셀 vba 제어문  (0) 2023.08.30

댓글