PowerPointのマクロでのショートカットキー設定

以前からPowerPointVBA使って色んな機能にショートカットキー割り当てられないかと思っていましたが、とりあえずはできることが分かりました。
検索してもなかなか発見できなかったので、備忘録を兼ねてメモ。


まずはこのサイトのOfficeOne Shortcut Manager SDK for PowerPointをダウンロード。
あとはコメントとかここを読んでいろいろいじれば設定できます。


これだけではなんなんで……。


インストールしたフォルダのSamples\Basic\PPSctMgr_Basic.pptを開いてみます。
このファイルでVisual Basic Editorを開くと標準モジュールの中にSctMgrSDKSampleBasicModuleというモジュールがあります。


このサンプルモジュールでは全てのウィンドウを閉じるプロシージャとしてCloseAllSlideShowWindows()を定義しており、LoadSampleShortcut()で先のプロシージャに対してCtrl+Qを割り当てています。
この辺を変更すれば自分の好きなようにショートカットが設定できます。


プレゼン作っているときは一覧表示にして全体の流れを見ることが多いので(個人的にですが)、この操作にショートカットを割り当ててみます。


まず適当なプロシージャを作ってこんな感じに一覧表示機能を持たせます。

Sub ShowAllSlides()
    ActiveWindow.ViewType = ppViewSlideSorter
End Sub


あとはサンプルのCloseAllSlideShowWindowsの部分をShowAllSlidesに変えるだけ。
ショートカットキーの割り当てを変える場合はLoadSampleShortcut()を変更します。


例えばCtrl+Alt+Lに割り当てる場合はこんな感じ。

Private Sub LoadSampleShortcut()
    On Error Resume Next

    RegisterShortcut BasicSampleNamespace, vbKeyL, MOD_ALT_CONTROL, _
        AddressOf ShowAllSlides, vbNullString, _
        BasicSampleShortcutId
End Sub


最後にこれをアドインにします。
まず、「デバッグ」→「コンパイル」をしてVisual Basic Editorを閉じます。
そして、PowerPointに戻ってファイルを保存。この際にファイルの種類をPowerPointアドインにします。
そうすると「〜.ppa」というファイルができるので、これをアドインとして登録します。


アドインの登録はPowerPointを開いて「ツール」→「アドイン」→「新規追加」から、先ほど作成した「〜.ppa」というファイルを選択します。
ダイアログが出たら「マクロを有効にする」を選択して、追加したアドインにチェックがついているのを確認したら完了。
この状態でCtrl+Alt+Lを押すと見事スライドの一覧表示になるはずです。


なおマクロの中身は細かく読んでいませんので、この方法で何かおかしなことが起っても責任は取れません。
試す場合は自己責任でお願いします。


追記:
よく見たらシェアウェアでした。
1PCで$29.95なら許容範囲内かな。う〜む。