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. Office アドイン

    [Officeアドイン]地図記号挿入アドイン

    ちょっとずつ作成していたWord用のOffice アドインがようやくO…

  2. Office関連

    Office 365 unified APIをJavaScriptだけで呼び出す

    Microsoftの松崎さんのブログに下記の記事がありました。…

  3. Office関連

    [Word VBA]ルビ(ふりがな)ダイアログの操作に挑む

    2016/10/28 追記:改良版のマクロを書きました。…

  4. Office アドイン

    [Office用アプリ]アプリ開発コンテストの案内

    2013/9/9 追記:コンテストの受賞者が発表されました。おかげ…

  5. アイコン一覧

    Office 365アイコン(imageMso)一覧(R)

    Office 365のデスクトップ版Officeアプリケーション(Wo…

コメント

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP