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関連

    「いちばんやさしいPowerPoint VBAの教本」レビュー

    「インストラクターのネタ帳」で有名な伊藤さんが執筆された書籍第二弾、「…

  2. Office関連

    Unicodeブロックを元に指定した文字が平仮名なのかカタカナなのか漢字なのかを判別するVBAマクロ…

    以前書いた「ルビ(ふりがな)を一括設定するWordマクロ」記事で使った…

  3. Office関連

    ExcelとPowerPointに自動保存機能が追加されました。

    Excel 2016を使っていて、ふと気が付いたのが画面左上にある「自…

  4. Office関連

    Google Docs APIを使ってGoogle ドキュメントを操作するVBAマクロ

    前回の記事で新しく追加されたGoogle Docs APIを紹介しまし…

  5. Office関連

    Visual Studio Community 2015でOffice開発する。

    「Microsoft、統合開発環境「Visual Studio 201…

コメント

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP