はじめに
PowerPoint の便利なアドインを作成することがあると思いますが、配布方法が問題になりますね。
PowerPoint のアドインファイルは、%appdata%\Microsoft\AddIns フォルダにコピーします。Windows 10 であれば、以下のフォルダになります。
- C:\Users\ [User]\AppData\Roaming\Microsoft\AddIns
階層が深いですね。
しかも、隠しフォルダなのでユーザーによっては見えないと言われてしまうかもしれません。
また、PowerPoint のアドインは、ファイルをコピーしだだけでは登録されず、設定画面で登録する必要があります。
これも手間です。
この2つの作業ですが、VBScript を使用すれば自動化が可能で、インストールとアンインストールの両方を行えるようになります。
今回は、当ブログで配布している「PowerPoint2003カラーパレット」を例にとって、VBScript による PowerPoint アドインのインストールとアンインストールのサンプルコードをご紹介します。
動作確認は、Microsoft 365 の PowerPoint で行っています。
なお、ファイルはShift-JISで保存してください。UTF-8で保存すると「終了していない文字列型の定数です」というエラーが発生します。また、実行前に PowerPoint を終了しておいてください。
PowerPoint アドインのインストール
PowerPoint のアドインを、%appdata%\Microsoft\AddIns にコピー後、アドインを PowerPoint に登録するサンプルコードです。addInName と addInFileName をご自身の環境に合わせるだけで動作します。
なお、PowerPoint アドインは、このサンプルコードのインストーラーと同じフォルダにあるものとします。
On Error Resume Next Dim installPath Dim addInName Dim addInFileName Dim objPowerPoint Dim objAddin 'アドイン情報を設定 addInName = "PowerPoint2003カラーパレット" addInFileName = "PowerPoint2003ColorPallet.ppam" IF MsgBox(addInName & " アドインをインストールしますか?", vbYesNo + vbQuestion) = vbNo Then WScript.Quit End IF Set objWshShell = CreateObject("WScript.Shell") Set objFileSys = CreateObject("Scripting.FileSystemObject") 'インストール先パスの作成 '(ex)C:\Users\[User]\AppData\Roaming\Microsoft\AddIns\[addInFileName] installPath = objWshShell.SpecialFolders("Appdata") & "\Microsoft\Addins\" & addInFileName 'ファイルコピー(上書き) objFileSys.CopyFile addInFileName ,installPath , True Set objWshShell = Nothing Set objFileSys = Nothing ' PowerPoint インスタンス化 Set objPowerPoint = CreateObject("PowerPoint.Application") ' アドイン登録 Set objAddin = objPowerPoint.AddIns.Add(installPath) objAddin.AutoLoad = True ' PowerPoint 終了 objPowerPoint.Quit Set objAddin = Nothing Set objPowerPoint = Nothing IF Err.Number = 0 THEN MsgBox "アドインのインストールが終了しました。", vbInformation ELSE MsgBox "エラーが発生しました。" & vbCrLF & "実行環境を確認してください。", vbExclamation End IF
PowerPoint アドインのアンインストール
PowerPoint アドインの登録を解除後、%appdata%\Microsoft\AddIns にあるアドインファイルを削除するサンプルコードです。
addInName と addInFileName をご自身の環境に合わせるだけで動作します
On Error Resume Next Dim installPath Dim addInName Dim addInFileName Dim addInRegisterName Dim objPowerPoint Dim objAddin 'アドイン情報を設定 addInName = "PowerPoint2003カラーパレット" addInFileName = "PowerPoint2003ColorPallet.ppam" IF MsgBox(addInName & " アドインをアンインストールしますか?", vbYesNo + vbQuestion) = vbNo Then WScript.Quit End IF ' アドインの登録名取得 addInRegisterName = Mid(addInFileName, 1, Len(addInFileName) - 5) ' PowerPointインスタンス化 Set objPowerPoint = CreateObject("PowerPoint.Application") ' アドイン登録解除 For i = 1 To objPowerPoint.Addins.Count Set objAddin = objPowerPoint.Addins.item(i) If objAddin.Name = addInRegisterName Then objAddin.AutoLoad = False objPowerPoint.Addins.Remove addInRegisterName End If Next ' PowerPoint 終了 objPowerPoint.Quit Set objAddin = Nothing Set objAddins = Nothing Set objPowerPoint = Nothing Set objWshShell = CreateObject("WScript.Shell") Set objFileSys = CreateObject("Scripting.FileSystemObject") 'インストール先パスの作成 '(ex)C:\Users\[User]\AppData\Roaming\Microsoft\AddIns\[addInFileName] installPath = objWshShell.SpecialFolders("Appdata") & "\Microsoft\Addins\" & addInFileName 'ファイル削除 If objFileSys.FileExists(installPath) = True Then objFileSys.DeleteFile installPath , True Else MsgBox "アドインファイルが存在しません。", vbExclamation End If Set objWshShell = Nothing Set objFileSys = Nothing IF Err.Number = 0 THEN MsgBox "アドインのアンインストールが終了しました。", vbInformation ELSE MsgBox "エラーが発生しました。" & vbCrLF & "実行環境を確認してください。", vbExclamation End IF
おわりに
PowerPoint のアドインをインストール、アンインストールするのは面倒ですが、この記事で紹介した方法であれば簡単に作業が完了します。
ぜひご活用ください。
関連記事
Excel や Word のアドインをインストールする方法です。