Part1の「プログラミングでExcelの不満を解決する」では,主に表計算ソフト「Excel」でプログラミングをしてきました。Microsoft OfficeはExcelだけではありません。Part2では,プレゼンテーション・ツール「PowerPoint」を使ったプログラミングをお見せします。

 人前で発表(プレゼンテーション)する際の資料作りだけでなく,図を描くためにPowerPointを使っている方も多いでしょう。四角い枠や矢印などの「図形」を並べて文字を入力していくだけでも,けっこう言いたいことを図にできるものです。

 図を作っていると図の中にある多くの文字を一括編集したい,と思うことがよくあります。Part2では,図形に書き込んだ文字列をテキスト・ファイルに書き出し,それを元に戻せる図1のプログラムを作ります*1。ただ,PowerPointのプログラミングでは知っておかなければならないことが多く,それを説明するだけでページが足りなくなってしまいそうです。長いサンプル・コードは日経ソフトウエアのWebサイトでダウンロードできるようにしておくので,それをじっくり読んでみてください。

図1●「アドイン」という機能を使うと,PowerPoint 2007のリボンに自分が書いたコードを組み込める
図1●「アドイン」という機能を使うと,PowerPoint 2007のリボンに自分が書いたコードを組み込める

PowerPointの機能拡張は「アドイン」で

 Part1のExcelのサンプルでは,Excelの機能拡張の方法として,「個人用マクロブック(PERSONAL.XLSB)」にマクロ・プログラムを格納する方法を紹介しました。しかし,PowerPointには,PERSONAL.XLSBに相当する,どの文書にも適用できるマクロを簡単に保存する方法がありません。そこでPowerPointの機能を拡張する方法として,Part2では「アドイン」を紹介します。

 アドインはExcelにも,PowerPointにもある機能です。アドインを使うと,図1のようにリボンに項目を追加し,そこからコードを実行できます。ただ,使い方は少し面倒です。

 アドインのマクロ・プログラムを作るには,マクロを開いたときに呼び出される「Auto_Open」サブプロシジャに,アドイン項目をリボンに追加するコードを記述します。また,マクロを閉じたときに呼び出される「Auto_Close」サブプロシジャに,アドイン項目をリボンから削除するコードを記述する必要があります。

 Excel 2007では,「xlsm」という拡張子を持つ「Excelマクロ有効ブック」でAuto_OpenとAuto_Closeを記述して正しく実行できるかどうかを確認し,完成したら「xlsa」という拡張子を持つ「Excelアドイン」として保存します()。あとは,「Officeボタン」→「Excelのオプション」→「アドイン」と進んだ画面で,自分が作ったアドインを登録すれば,Excelの起動時にアドインが読み込まれます。

表●Excel 2007とPowerPoint 2007のファイル形式(主なもの)
[画像のクリックで拡大表示]
表●Excel 2007とPowerPoint 2007のファイル形式(主なもの)

 PowerPointがExcelと異なるのは,「pptm」という拡張子を持つ「PowerPointマクロ有効プレゼンテーション」ではAuto_OpenとAuto_Closeが呼び出されないこと,そして,「ppam」という拡張子を持つ「PowerPointアドイン」ではマクロの選択実行/編集ができないことです*2。PowerPointのアドインを作る場合は,pptmで保存しつつプログラムを書き,最終的なテストと実行の際にppamに変換する必要があります。