LoginSignup
19

More than 5 years have passed since last update.

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

Posted at

概要

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

実例

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19