【バグ対策】PowerPointで自作アドインを表示させる方法

2021年2月28日

自作アドインを作ったことがありますか?

ExcelやWordならばアドインを読み込めばクイックアクセスツールバーなどからマクロを登録する事ができます。
しかし、なぜかPowerPointではマクロを登録しようとしても候補に表示されないというバグがあります。(自作アドインのみ発生する模様)

そのためExcelやWordのようにアドインを作成しても読み込んでも使用することができません。

今回はこのバグを上手に回避して自作アドインを使う方法を紹介したいと思います。

PowerPointのバグを回避する方法

PowerPointの問題点は自作アドインがマクロの候補として表示されない点です。
アドインの読み込み自体はできるため、アドインが読み込まれた時にイベント動作をさせます。

具体的には次のようなコードをアドインに組み込みます。

Option Explicit
Const ControlCaption As String = "Addin"

Public Sub Auto_Open()
'アドインとして読み込んだときに実行
  With Application.CommandBars("Standard")
    On Error Resume Next
    .Controls(ControlCaption).Delete
    On Error GoTo 0
    With .Controls.Add(Type:=msoControlButton) '[アドイン]タブにボタン追加
      .Caption = ControlCaption
      .Style = msoButtonIconAndCaption
      .FaceId = 65 'アイコン画像の設定
      .OnAction = "Sample"
    End With
  End With
End Sub

Public Sub Auto_Close()
'アドインの読み込み解除したときに実行
  On Error Resume Next
  Application.CommandBars("Standard").Controls(ControlCaption).Delete
  On Error GoTo 0
End Sub

Public Sub Sample()
'ボタンをクリックしたときに呼ばれるプロシージャー
  MsgBox "OK", vbSystemModal
End Sub

4行目のAuto_Openというのがアドインが読み込まれた時に発生するイベント動作です。
このAuto_Openの中ではアドインタブを追加し、そこにボタンを追加しています。

実際にアドインを読み込まれるとアドインタブが作成され、そこにAddinと書かれたボタンが作成されます。
このボタンを押すと、Sampleプロシージャが実行されます。

マクロの候補が表示されないため、アドインを読み込んだ時に一気に実行ボタンを作ってしまう訳です。

.OnAction = "Sample"

このOnActionメソッドで実行するプロシージャを指定しているため、Sampleの部分をアドインで動かしたいプロシージャ名に変更して使ってみてください。

参考:https://social.msdn.microsoft.com/Forums/ja-JP/41bed520-ed9e-47f1-8ca8-9c5f3f355fed/33258203161249712527125401250912452125311248812450124891245212?forum=vbajp

エクセルでのアドインの使い方も知りたい場合はこちらの記事も合わせてどうぞ。

他の「PowerPoint」の記事はこちらからどうぞ