Posted at

【Excel】アドインをインストールするスクリプト

More than 3 years have passed since last update.


概要

Excelアドインを追加するには、通常「C:\Users{user名}\AppData\Roaming\Microsoft\AddIns」等のフォルダにアドインをファイルを格納し、Excelを開いてアドインの追加操作をする必要があります。

自分で作ったアドインを配布する場合、Excelのアドイン追加方法を知らない人のために、上記の手順をいちいち説明するのがめんどくさいのでスクリプト化してみました。


ソース

vbscriptで記述してます。


Install.vbs

Const FILLE_NAME="sample.xlam"

Call Exec

Sub Exec()
Dim objExcel
Dim strAdPath
Dim strMyPath
Dim strAdCp
Dim strMyCp
Dim objFileSys
Dim oAdd

Set objExcel = CreateObject("Excel.Application")
Set objFileSys = CreateObject("Scripting.FileSystemObject")

strAdPath = objExcel.Application.UserLibraryPath
strMyPath = Replace(WScript.ScriptFullName, WScript.ScriptName, "")
strAdCp = objFileSys.BuildPath(strAdPath, FILLE_NAME)
strMyCp = objFileSys.BuildPath(strMyPath, FILLE_NAME)

objFileSys.CopyFile strMyCp, strAdCp

objExcel.Workbooks.Add
Set oAdd = objExcel.AddIns.Add(strAdCp,True)
oAdd.Installed = True
objExcel.Quit

Set objExcel = Nothing
Set objFileSys = Nothing

MsgBox "Complete!"
End Sub



説明

Const FILLE_NAME="sample.xlam"

1行目にインストールしたいアドインのパスを定義しておきます。

    strAdPath = objExcel.Application.UserLibraryPath

strMyPath = Replace(WScript.ScriptFullName, WScript.ScriptName, "")
strAdCp = objFileSys.BuildPath(strAdPath, FILLE_NAME)
strMyCp = objFileSys.BuildPath(strMyPath, FILLE_NAME)

objFileSys.CopyFile strMyCp, strAdCp

Application.UserLibraryPathでアドイン格納先のフォルダを取得し、

そのフォルダにインストールするファイルをコピーしています。

    objExcel.Workbooks.Add

Set oAdd = objExcel.AddIns.Add(strAdCp,True)
oAdd.Installed = True

Excelオブジェクトをvbsから操作し、AddIns.Addでアドインを追加、

AddInオブジェクトのInstalledをtrueにすることでアドインが有効化されます。


実行方法

上記のソースをメモ帳などにコピーし、Install.vbsという名前で保存してください。

ダブルクリックでスクリプトを実行すると、「Complete」とメッセージが表示され、

アドインが追加されていることを確認できると思います。


実例

https://github.com/fuku2014/VBAFormatter/blob/master/Install.vbs