もめんの格闘日記

主にPowerPointを中心としたPCのTips的なものを書いています。

マクロを実行するボタンを追加する方法(その1)

Office2007以降でリボンにマクロを実行するボタンを追加する方法を紹介します。

日本語わかりにくくてすいません。リボンのカスタマイズともいいます。

 

その1としたのは、カスタマイズ方法には2種類あるからです(僕が知らないだけでもっとあるかも...)。

また、その2としてPowerPoint内で完結する方法も紹介してます。

マクロを実行するボタンを追加する方法(その2) - もめんの格闘日記

 

その1ではややこしい方、PowerPointだけでは完結しない方法を紹介します。

Windows7、PowerPoint2007で動作確認しています。

 

参考にさせて頂いたのは下記サイト

Office 2007/2010・リボンのカスタマイズ 初心者備忘録

GDIplusCODE

 

用意するもの

・実行してもエラーが起きないマクロが入ったPowerPointファイル(.pptm形式)

 ここでは「プレゼン.pptm」という名前のファイルを例にして説明します

・Lhaplus

・メモ帳

 

手順

①プレゼン.pptmのファイル名の末尾に .zip をつけて名前を変更する(ファイル名の末尾が.pptm.zipになる)

②いいの?と聞かれるが気にせず はい を選択

③ファイルを右クリックして プログラムから開く→エクスプローラー(プレゼン.pptmというフォルダが開かれる)

④このフォルダは一旦⑧まで置いておく

⑤デスクトップ等に、customUIという名前のフォルダを作成する

⑥メモ帳を開き下記コードを張り付ける(マクロの名前を"実行するマクロの名前"に入れる)

<?xml version="1.0" encoding="utf-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
  <ribbon startFromScratch="false">
    <tabs>
      <tab id="Tab1" label="タブの名前">
        <group id="Group1" label="グループの名前">
          <button id="Button1" label="ボタンの名前" imageMso="HappyFace" size="large" onAction="実行するマクロの名前" />
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

⑦「customUI.xml」という名前でcustomUIフォルダ内に保存する(文字コードはUFT-8にする)

⑧customUIフォルダ を プレゼン.pptmフォルダ にドラッグ&ドロップ

⑨プレゼン.pptmフォルダ 内の _relsフォルダ を開く

⑩.relsファイルをデスクトップ等にコピーし、開く(別の場所にコピーしたものでないと有効にならない)

⑪書式→右端で折り返す で見やすくする

⑫最後の方にある </Relationships> の前に下記のコードを挿入し、上書き保存する

<Relationship Id="CustomUI1" Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="/customUI/customUI.xml" />

⑬⑫の.relsファイルを _relsフォルダ にドラッグ&ドロップし、既存ファイルと置き換える

⑭プレゼン.pptm.zipの末尾の.zipを消して元の名前に戻す

⑮プレゼン.pptmを開くと"タブの名前"というタブが増えていて、その中のスマイルボタンを押すと "実行するマクロの名前"にいれたマクロが実行される

 

その他注意点とか

・customUI.xml内のコードの"実行するマクロの名前"にはマクロの名前を入れる。環境によってはモジュール名が必要になるかも。Module1.Macroみたいになる?

・下記コードを増やせばボタンも増えます。button idはボタン毎に変える必要があります

<button id="Button1" label="ボタンの名前" imageMso="HappyFace" size="large" onAction="実行するマクロの名前" />

・.relsファイルは一旦違うところで編集する必要があります。僕はこれをしていなかった為、ここでつまずきました

・Macro(ByVal control As IRibbonControl)みたいにマクロの引数にByVal control As IRibbonControlを入れて下さい。僕は入れなくてもできいるのですが、環境によっては必要なのかも

 

リボンにマクロを実行するボタンを追加する方法(その1)はここまでです。

この方法のいいところは、アドイン化できるところです。詳しくは別に記事で書く予定ですが、アドイン化してPowerPointに読み込むとマクロが入っていないファイルにもカスタマイズしたボタンが出てくるので便利です。

そして、他のユーザーと共有できます。他PCでアドインを読み込むとそのPCのPowerPoint内でもマクロのボタンが使えます。

アドイン化の方法、読み込む方法はについても別記事で書いてますの、興味のある方は是非。

PowerPointファイルのアドイン化 - もめんの格闘日記

 

画像で丁寧に説明しているサイトが他にたくさんありますが、ソフトを使っているものが多く、Lhaplusくらいでできるこの方法が気に入っています。

会社でやろうとしたら、他のソフトを入れるのは難しいので。

最初にこの方法を参考にしたサイトが後から見つけれなくて、備忘録的な意味もあります。

 

長々と読んでくださった方、ありがとうございました。

文章だけでは(というか僕の文章が)わかりにくいと思いますので、コメント頂ければわかる範囲で説明しますので、よろしくお願いします。

終わり。
(2016/11/27更新)