본문 바로가기
프로그래밍/MS Office AddIn

PowerPoint 리본 메뉴 만들어보기 - xml, vba 사용

by solution online 2024. 8. 24.
728x90
반응형
귀찮지만 하나하나 내 자산이 되는 프로그래밍!

 

Add-in 이라고 표현하는 리본 메뉴를 만들어 보고 있다.

개인적으로 자동화 프로그램들을 완성하기 위해 여러가지 방법을 테스트 중이다.

 

VSTO로 UI까지 편하게 개발이 가능하지만 VSTO는 Excel, PowerPoint를 외부에서 접근하는 개념이라

직접적인 기능 사용이 제한된 점이 있다는 것을 발견했다.

 

결국 VBA로 직접 만들어야 하는데

개발자 입장에서 VBA는 코드가 노출되는 가장 치명적인 단점이 있다.

 

회사의 자원이던 내 사업으로 만드는 프로그램이던 내 코드가 그대로 노출된다면

내 먹거리, 기술이 1회성이 되어 버리는 것이다.

 

Lock을 거는 방법도 있고, 몇 가지 방법들이 있는 것 같지만

사용자에게 완벽하게 감춰질지는 직접 해봐야 알 것 같다.

 

일단 오늘은 간단하게 Add-in 추가 방법을 기록해 놓는다.

 

준비물은 파워포인트, Custom UI Editor 두 가지이다.

728x90

 

Custom UI Editor는 xml 파일을 vba와 연결해주는 프로그램이다.

이 프로그램이 필요한 이유는 Add-in 메뉴 UI를 만들어주기 위함이고,

UI를 만들기 위해 xml 형식으로 만든 후 vba와 합쳐야 한다.

 

먼 또 프로그램을 쓰나 직접하면 되지 하는 분들은 직접 하셔도 된다.

vba에 xml을 직접 추가하면 된다.

그러나 난 이쪽이 능숙하지 않아 일단 쓸 수 있는건 다 써보고 결과 먼저 확인하고자 한다.

 

Custom UI Editor 링크

https://bettersolutions.com/vba/ribbon/custom-ui-editor-download.htm

 

VBA Ribbon - Microsoft Download

Microsoft Download This tool is now officially unsupported by Microsoft and can no longer be downloaded from their website. A copy of the original EXE file can be downloaded here: OfficeCustomUIEditorFiles.zip Windows 10 - Download and Change the Config Fi

bettersolutions.com

 

1. 파워포인트를 열어 vba를 추가한다.

파워포인트(이하 ppt)를 열고 Alt + F11 키를 누른다.

그러면 VBA 프로젝트 에디터가 나온다.

 

왼쪽에 VBAProject를 우측 클릭하여 모듈을 추가해 준다.

 

테스트할 vba 코드를 작성한다.

Sub TestPopup(control As IRibbonControl)
    MsgBox "Hello, this is a test message from your Add-In!", vbInformation
End Sub

Sub Auto_Open()
    MsgBox "Add-In Loaded!", vbInformation
End Sub

 

그리고 VBA 창을 끄고 ppt를 pptm으로 저장해 준다.

여기 중요 포인트다!

꼭! pptm으로 저장해 준다.

그리고! 저장된 pptm에서 다시 ppam으로 저장한다.

 

나 혼자서 쓴다면 번거롭게 이렇게까지 안해도 되지만

만든 기능을 배포할 생각이 있기에 이렇게 진행한다.

 

중요하다!

ppt 에서 VBA 코드 작성하고 파일을 pptm 으로 먼저 저장하고

다시 ppam 으로 저장해 준다.

 

그러면 pptm 파일과 ppam 파일이 생기는데 pptm에서는 vba를 수정하고

ppam은 Add-in 추가 때 사용된다.

 

테스트 vba 코드는 작성했고 이제 UI를 만들어 준다.

반응형

 

Custom UI Editor를 실행한다.

아까 저장했던 pptm 파일을 열어준다.

상단 메뉴중 Insert를 눌러 UI part를 선택한다.

 

 

2010 미만 버전이라면 2007을 선택하면 되고

요즈음 버전은 대부분 2010 이상이라 2010을 선택해 주면 된다.

난 이미 추가한 상태라 비활성화 되어 있다.

 

Office 2010 Custom UI Part를 누르면 우측 화면이 활성화 된다.

그곳에 xml 코드를 넣어준다.

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <ribbon>
    <tabs>
      <tab id="testTab" label="Test">
        <group id="customGroup" label="Test Group">
          <button id="myBtn" label="Test Message" onAction="TestPopup" />
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

 

그리고 저장.

 

새로운 ppt를 연다.

 

파일 > 옵션 > 추가 기능 으로 이동

 

하단에 관리 에서 PowerPoint 추가 기능 선택 후 이동 버튼 클릭

 

새로 설치 버튼 클릭 후 아까 만들었던 ppam을 선택

 

끝!

상단 메뉴에 Test가 나왔는지 확인

 

메뉴 들어가서 리본 버튼까지 클릭!

 

코드에 넣은 팝업까지 나오는지 확인.

 

다소 번거롭긴 하지만 내부 기능을 자유롭게 쓰려면 이렇게 해야될 것 같다.

단순 복사, 편집인데도 참 번거롭다 ㅡㅡㅋ

728x90
반응형