Const FILLE_NAME="Book1.xlam"' 追加するアドイン名を指定
Call ExcelAddinAutoInstallation
Sub ExcelAddinAutoInstallation()
Dim objExcel, objAddin, excelWasRunning
excelWasRunning = True
' Excelが開いているか確認
On Error Resume Next
Set objExcel = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
' Excelが開いていない場合は新しく起動
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True ' Excelを可視化して確実に起動させる
objExcel.Workbooks.Add ' 空のワークブックを開いて完全起動を待つ
excelWasRunning = False
End If
Err.Clear
On Error GoTo 0
' ユーザーのアドインフォルダのパスを取得
Dim addinPath
addinPath = objExcel.Application.UserLibraryPath & FILLE_NAME
' アドインを追加
On Error Resume Next
Set objAddin = objExcel.AddIns.Add(addinPath, True)
If Err.Number <> 0 Then
WScript.Echo "アドインの追加に失敗しました: " & addinPath
If Not excelWasRunning Then
objExcel.DisplayAlerts = False
objExcel.Quit ' Excelを閉じる
End If
WScript.Quit
End If
Err.Clear
On Error GoTo 0
' アドインを有効化
objAddin.Installed = True
WScript.Echo "アドインが追加され、有効化されました: " & addinPath
' Excelがもともと開いていなかった場合は終了
If Not excelWasRunning Then
objExcel.DisplayAlerts = False
objExcel.Quit
End If
' クリーンアップ
Set objAddin = Nothing
Set objExcel = Nothing
End Sub
コメント