리본메뉴는 VBA로도 충분히 만들 수 있는데, 내가 발견한 문제는 다음과 같다. 당연히 실력이 있는 누군가에게는 해결책이 있을 것이다. 단지 코드를 복잡하게 늘리고 싶지 않다.
- 탭의 이름이 무조건 추가기능(add-in)이다.
- 그룹이 'Menu Commands' 하나로 고정이다.
- 아이콘을 FaceId 중에 골라서 선택해야한다.
바꿔 말하면, 위의 문제가 아니라면, 그냥 써도 무방하다는 뜻이다. 사실 사용상 전혀 문제가 되지 않을 문제들이다.
내가 사용한 방법은 auto_open() 과 auto_close() 프로시저를 사용해 아래와 같이 입력한 것이다.
이와 같이 실행하면, 아래와 같이 리본메뉴가 생성된다. 사실 너무 간편하다. 메뉴를 늘리는 작업도 크게 어렵지 않다.

그러던 중 XML을 사용해서, 리본메뉴를 생성하는 방법을 보았다. xml로 customUI를 구성했을 때의 장점은 위의 단점들을 상쇄시킨다. XML 파일의 기본 구성은 다음과 같다. 이는 오피스2019 기준이며, 아래의 모든 설명도 마찬가지이다.
이를 통하면 그룹을 나눠관리할수가 있다. 아이콘도 faceId에서 imageMso를 사용하게 된다.

imageMso의 요소는 아래 경로에서 확인할 수 있다. 큰 공을 들이지 않더라도, 구글링 몇분이면 PDF파일로 잘 정리된 곳들이 많다.
BERT | ImageMSO List Reference
bert-toolkit.com
이를 구현하는 방법은 두가지가 있다.
매크로를 사용해야 하므로 pptm 파일을 생성한 뒤, 확장자를 zip 파일로 변경해준다. 해당 압축 파일을 풀면 아래와 같은 폴더를 볼 수 있을 것이다. 여기에 customUI
폴더를 생성해 준다.

그 안에 xml 파일을 customUI14.xml로 저장한다. 이 때, xml 파일에 선언된 프로시저가 pptm의 vba에 선언이 되어있는지 사전에 미리 확인을 해야한다. 프로시저가 없다면 리본메뉴는 에러와 함께 보이지 않게 된다.

다시 폴더를 zip 파일로 압축하고, 확장자를 원래대로 pptm으로 강제로 바꿔준다. pptm 파일을 실행해보자. 설정한데로 리본메뉴가 활성화 된 것을 확인할 수 있다.
이제 ppam 파일로 저장해서, 자동으로 실행되도록 설정해주면 끝이다. 방법을 모른다면 아래 링크를 확인하면 된다.
related posting list
여기서는 myaddin 메뉴가 xml로 생성한 customUI이다.

수정할때마다 압축을 풀었다 했다 과정이 귀찮다면, 오픈소스 툴(Office RibbonX Editor)을 사용할 수 있다. 새로운 건 아니고, 아는사람은 아는 툴인듯하다.
GitHub - fernandreu/office-ribbonx-editor: An overhauled fork of the original Custom UI Editor for Microsoft Office, built with
An overhauled fork of the original Custom UI Editor for Microsoft Office, built with WPF - fernandreu/office-ribbonx-editor
github.com
아래 그림에서처럼, 코드를 작성하고 저장하면, xml 파일이 저장된다.
이외에 xml코드가 제대로 들어갔는지 검증하는 기능이나, 사용자 icon을 포함해주는 기능이라던지, 유용한 기능은 많지만, 귀찮은 관계로 다 사용해보지는 못했다.

꽤나 나이스한 프로그램이지만, 반드시 설치가 진행되어야 하므로 살짝 부담스럽긴 하다.
사실 처음 적은 vba로 구성한 리본메뉴의 단점들이 크게 불편하지는 않았지만, 그냥 있길래 한번 해봤다. 취향에 따라 선택하면 될 것 같으며, 나는 그냥 vba로 구성해서 사용할 것 같은 느낌이다.
끝.