リボンからマクロを実行するPowerPointアドインを作成する
「PowerPointで使用しているフォントを集計するマクロを作ってみた」で作ったマクロの解説の続きです。
前回はマクロの内部の説明を行いましたが、今回はリボンから実行できるようにする方法です。
参考HP
このHPを参考にさせていただきました。
http://homepage2.nifty.com/suyamsoft/Ribbon/Excel2010/RibbonEditor/
Office Ribbon Editorのダウンロード
Office Ribbon Editorを使用することで、簡単にリボンをカスタマイズするファイルを作成できます。
ということで、下記のサイトからダウンロードしてインストールします。
http://www.leafcreations.org/
インストールはダウンロードした*.exeを実行して、[Next]を選択していけばOKです。
リボンの設定
Office Ribbon Editorを使って、PowerPoint上に表示するリボンの詳細と、ボタンを押したときに実行するマクロを設定します。
- Office Ribbon Editorの起動します。
- Office Ribbon Editorで、マクロを作ったPowerPointファイルを開きます。
- 画面右の[Document Explorer]からファイル名を右クリックして[Add CustomUI]→[Office 2007]を選択します。
- [RibbonX12]をダブルクリックします。
- 画面中央の[Code]タブにリボンの情報を書き込みます。
今回は、ボタンを押してマクロを実行する簡単なものなので、画面左の[Toolbox]の[Samples]タブから[Office 2007]→[Custom Ribbon]を選択して、サンプルを入力します。 - 入力されたサンプルを参考に、必要な部分を編集します。
id:ユニークであれば何でもいいはずです。
label:画面に表示するテキストです。
buttonのonAction:後で作成するマクロの関数名にします。
buttonのimageMso:リボンに表示する画像です。ここやこれを参照して、表示したい画像の名前を設定します。 - 保存します。
これで、Office Ribbon Editorでの作業は終了です。[Callbacks]にマクロを書きたいところですが、なぜか保存できないので、これ以降はPowerPointで作業します。
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon startFromScratch="false"> <tabs> <tab id="aggregateTab" label="Aggregate"> <group id="aggregateGroup" label="Aggregate Font in Use"> <button id="aggregateButton" label="Aggregate" imageMso="ExportExcel" size="large" onAction="AggregateFontInUse" /> </group> </tab> </tabs> </ribbon> </customUI>
ボタンを押したときに実行する関数の作成
- リボンの設定を行ったPowerPointのファイルを開きます。
- [Alt + F11]でVBEを開きます。
- リボンのボタンを押したときに実行する関数を作成します。
関数名はxmlの"onAction"で設定した名前にします。
引数は"IRibbonControl"型にします。
Public Sub AggregateFontInUse(control As IRibbonControl) Call aggregateFontInUseSub End Sub
アドインとして保存
- "名前を付けて保存"でファイルの種類を"PowerPoint アドイン (*.ppam)"とすれば完成です。