Office関連

[PowerPoint]ドキュメントを開いたときに自動的にマクロを実行する

ドキュメントを開いたときに自動的にマクロを実行する方法として、WordにはAutoOpen、ExcelにはAuto_Openといったプロシージャを利用する方法が用意されていますが、PowerPointにはそういった方法は無いのでしょうか?

― 実はPowerPointにもマクロ自動実行の仕組みは用意されています。
下記コードを標準モジュールに貼り付けてファイルを保存し、再度ファイルを開くと…

Option Explicit

Public Sub Auto_Open()
  MsgBox "Auto_Open"
End Sub

Public Sub Auto_Close()
  MsgBox "Auto_Close"
End Sub

…何も動作しません。
WordやExcelと違ってPowerPointの”Auto_Open”はアドインとして読み込まなければ実行されません。

改めて、ファイルをアドイン形式(ppa,ppam)で保存し、アドインダイアログから保存したアドインを読み込むと…

今度はマクロが実行されました。
下記Webページにもあるように、Auto_Openプロシージャはアドインが読み込まれたときに、Auto_Closeプロシージャは読み込みが解除されたときに自動的に実行されます。

・PowerPoint アドインがロードまたはアンロードされているときにコードを自動的に実行する
http://msdn.microsoft.com/ja-jp/library/cc376820.aspx

上記のように、アドイン形式にすればアプリケーションを起動したとき(アドインが読み込まれたとき)にマクロを自動実行することができるわけですが、正直使い勝手は良くありません。

そこで私は、”リボンをカスタマイズしてcustomUI要素のonLoad属性のコールバックを利用する方法“をお薦めします。

※ リボンのカスタマイズ方法はここでは詳しく解説しませんので、私のHP「初心者備忘録・リボン関連」をご参照ください。

・XML

<?xml version="1.0" encoding="utf-8"?>
<customUI onLoad="Ribbon_onLoad" xmlns="http://schemas.microsoft.com/office/2006/01/customui" />

・標準モジュール

Option Explicit

Public Sub Ribbon_onLoad(ribbon As IRibbonUI)
  MsgBox "Ribbon_onLoad"
End Sub

上記XMLとVBAコードを設定したファイルを開くと、Ribbon_onLoadプロシージャが自動的に実行されるのが確認できます。

PowerPointのバージョンが2007以降に限られてしまうのが難点ですが、この方法であればいちいちアドイン形式で保存する必要は無いので動作確認も楽になります。
もちろん、アドインとして読み込んだ場合にも実行されます。

リボンをカスタマイズする、という一手間は掛かってしまいますが、PowerPointドキュメントを開いたときにマクロを自動実行したい、という場合には非常に有用な方法ですので、是非一度お試しください。

“元に戻す”履歴に文字列をセットするPowerPointマクロ前のページ

[PowerPoint]Applicationオブジェクトのイベントを利用する次のページ

関連記事

  1. Windows 10

    起動中のMicrosoft EdgeからタイトルとURLを取得するVBAマクロ(DOM編)

    前回の記事で、UI Automationを使って起動中のMicroso…

  2. Office関連

    Office 2016 Preview for Windowsのサポート情報まとめ

    「Office のサポート ページ - support.office.…

  3. Office関連

    Officeファイルから作成者などのプロパティを取得するVBScript

    下記記事でも書いていますが、xlsxやdocxといった、OOXML形式…

  4. Office アドイン

    [Office用アプリ]IMG Effector

    IMG Effectorはドキュメント上のイメージに15種類以上のエフ…

  5. Office関連

    [Excel Services ECMAScript]タイマーでグラフを描画する。

    タイマーで特定のセルの値を増やしていき、それに合わせてグラフを描画して…

  6. Office アドイン

    [Office用アプリ]選択範囲変更時のイベントを利用する。

    ※ この情報はOffice 2013 カスタマー プレビュー版を元にし…

コメント

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP