あるSEのつぶやき・改

ITやシステム開発などの技術に関する話題を、取り上げたりしています。

VBScriptでWordにアドインを自動でインストール/アンインストールする方法

はじめに

Word でアドインを作成することがあると思いますが、問題になるのは配布方法だと思います。

というのも、Windows 10 では、以下のフォルダにアドインファイルをコピーする必要があるからです。

  • C:\Users[ユーザーID]\AppData\Roaming\Microsoft\Word\Startup

このフォルダは隠しファイルになっているし、階層も深いため、ユーザーにアドインファイルをコピーしてもらうのは難儀です。

この作業は、VBScript を使用すれば、インストール、アンインストールとも簡単に行うことができます。

今回は、当ブログで配布している「Word2003カラーパレット・改」を例にとって、VBScript による Word アドインのインストールとアンインストールのサンプルコードをご紹介します。

動作確認は、Microsoft 365 の Word で行っています。

なお、ファイルはShift-JISで保存してください。UTF-8で保存すると「終了していない文字列型の定数です」というエラーが発生します。また、実行前に Word を終了しておいてください。

Word アドインのインストール

Word のアドインを、%appdata%\Microsoft\Word\Startupにコピーするサンプルコードです。addInName と addInFileName をご自身の環境に合わせるだけで動作します。Word はこのフォルダにアドインをコピーするだけで、Word起動時にアドインを読み込むようになります。

なお、Word アドインは、このサンプルコードのインストーラーと同じフォルダにあるものとします。

On Error Resume Next

Dim installPath
Dim addInName
Dim addInFileName

'アドイン情報を設定
addInName = "Word2003カラーパレット・改"
addInFileName = "Word2003ColorPalletKai.dotm" 

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\Word\Startup\[addInFileName]
installPath = objWshShell.SpecialFolders("Appdata") & "\Microsoft\Word\Startup\" & addInFileName

'ファイルコピー(上書き)
objFileSys.CopyFile  addInFileName ,installPath , True

Set objWshShell = Nothing
Set objFileSys = Nothing

IF Err.Number = 0 THEN
   MsgBox "アドインのインストールが終了しました。", vbInformation
ELSE
   MsgBox "エラーが発生しました。" & vbCrLF & "実行環境を確認してください。", vbExclamation
End IF

Word アドインのアンインストール

Word のアドインを、%appdata%\Microsoft\Word\Startup から削除するサンプルコードです。上記インストールのサンプルコードと対になります。addInName と addInFileName をご自身の環境に合わせるだけで動作します。

On Error Resume Next

Dim installPath
Dim addInName
Dim addInFileName

'アドイン情報を設定
addInName = "Word2003カラーパレット・改"
addInFileName = "Word2003ColorPalletKai.dotm" 

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\Word\Startup\[addInFileName]
installPath = objWshShell.SpecialFolders("Appdata") & "\Microsoft\Word\Startup\" & 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

おわりに

Word アドインファイルを配布するのは、なかなか面倒ですが、この記事で紹介した方法を使用することで簡単に配布(インストール)、配布中止(アンインストール)することができます。

ぜひ活用してください。

関連記事

Excel や PowerPoint のアドインのインストール記事です。

www.aruse.net

www.aruse.net