🧩

VBAからPowerPointアドインを自作する方法

2022/11/04に公開

パワポで作成したVBAを共通化したい!
PowerPointで作成したVBAを異なるスライド間で共通化するため、カスタムアドイン作成を行っていきます。

開発環境
Windows 10 Home
Microsoft 365 PowerPoint (16.0.15330.20196)
Office Ribbon X Editor 1.9.0

パワポアドイン作成のフロー

  1. VBAを書き、.pptm形式で保存
  2. Office Ribbon X Editorでリボンを作成
  3. 作成したリボンを.ppam形式で保存
  4. アドインとして読み込み

VBAを記述して.pptm形式で保存

「開発 > Visual Basic」 (またはAlt+F11)からVBAのエディタを開いて、標準モジュールを作成します。
モジュールのオブジェクト名はAddinTestとでもしておきます。


VBAエディタ

Sub testFunction()
   MsgBox "テスト"
End Sub

以上のコードを書いて、addinTest.pptmという名前で都合のいい場所に保存します。
PowerPoint側での作業は一旦ここまでなので、ウィンドウは閉じておきます。

Office Ribbon X Editor(ORXE)でリボンを作成

fernandreu氏が開発しているOffice Ribbon X Editor(ORXE)を使用してカスタムUIパーツを編集していきます。以下GitHubリンクからアプリケーションをダウンロードしてください。

.NET Frameworkインストーラが推奨されているため、筆者はこちらのパッケージを使ってインストールしています。

https://github.com/fernandreu/office-ribbonx-editor/releases/tag/v1.9.0

インストールが完了したら、ORXEを起動して「Open」から先ほど作成したaddinTest.pptmを開きます。左カラムにaddinTest.pptmが読み込まれるので、「右クリック > Insert Office 2010+ Custom UI Part」から.xmlファイルを作成します。なお、Office 2010以降はOffice2021、Office365を含めすべてOffice2010+で対応できます。詳細は各自GitHubで確認してください[1]

customUI14.xmlというファイルがaddinTest.pptmディレクトリ配下に作成されるので、ダブルクリックしてエディタを開きます。ここからは、.xmlファイルを編集してOfficeFluentリボンをカスタマイズしていきます。


ORXEエディタ

 <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 
   <ribbon> 
     <tabs> 
       <tab id="CustomTab" label="カスタムアドイン"> 
         <group id="SampleGroup" label="グループ"> 
           <button id="Button" label="テスト関数" size="large" imageMso="FunctionWizard" onAction="testFunction" /> 
         </group > 
       </tab> 
     </tabs> 
   </ribbon> 
 </customUI> 

以上のコードを書いて「Save」から保存します。PowerPointでaddinTest.pptmを開いたままだとプロセスエラーが発生するので、PowerPointは落としてから上書き保存してください。

OfficeFluentリボンについての詳細は省きますが、Microsoftの公式記事[2]が役に立ちます。また、.xmlオブジェクトについては Microsoft公式リファレンス[3]imageMso変数に渡せるOffice 365アイコンについてはこちらのブログポスト[4]がよくまとまっています。

作成したリボンを.ppam形式で保存

ORXEで上書き保存ができたら、PowerPointで再びaddinTest.pptmを開きます。
リボンの右端に「カスタムアドイン」という項目が増え、テスト関数が無事表示されているはずです。


VBAからカスタムリボンが作成できた

これでVBAのカスタムリボン化は完了しましたが、このままでは他のファイルでは利用できません。汎用アドインとして利用するため、ファイルを.ppam形式で保存しましょう。

アドインとして読み込み

.ppam形式で保存したアドインを読み込みます。「開発 > PowerPointアドイン > 新規追加 > addinTest.ppam」から先ほど作成したアドインを読み込みます。

これで他のファイルでも汎用的に利用できる自作アドインの完成です。新規スライドからでもカスタムアドインにアクセスできるはずです。

よく利用するVBAをカスタムリボン化することで業務効率を上げていきましょう。

脚注
  1. https://github.com/fernandreu/office-ribbonx-editor ↩︎

  2. https://learn.microsoft.com/ja-jp/office/vba/library-reference/concepts/customize-the-office-fluent-ribbon-by-using-an-open-xml-formats-file ↩︎

  3. https://learn.microsoft.com/ja-jp/dotnet/api/documentformat.openxml.office2010.customui?view=openxml-2.8.1 ↩︎

  4. https://www.ka-net.org/blog/?p=11335#idA ↩︎

Discussion