概要
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」とメッセージが表示され、
アドインが追加されていることを確認できると思います。
実例