Раньше я запускал код, очень похожий на код Тима, пока Кевин Джонс не указал в сообщении Experts-Exchange, что я повторю здесь (поскольку пост EE находится за платным доступом)
"Знайтечто при запуске Excel через автоматизацию с использованием функции CreateObject Excel не загружает надстройки или другие книги, обычно загружаемые автоматически. Это не хороший способ запустить сеанс Excel, который будет использоваться пользователем. Запуск приложения ExcelНапример, без использования автоматизации из какого-либо приложения, кроме Excel, приложение Excel должно быть запущено с использованием средств, не связанных с автоматизацией. Приведенный ниже код иллюстрирует шаги, необходимые для этого. Сначала код пытается получить дескриптор автоматизации для существующего экземпляра приложения.существующий экземпляр не найден, затем новый экземпляр запускается с помощью команды Shell. "
Dim ExcelApplication As Object
Dim TimeoutTime As Long
On Error Resume Next
Set ExcelApplication = GetObject(, "Excel.Application")
On Error GoTo 0
If ExcelApplication Is Nothing Then
Shell "Excel.exe"
TimeoutTime = Timer + 5
On Error Resume Next
Do
DoEvents
Err.Reset
Set ExcelApplication = GetObject(, "Excel.Application")
Loop Until Not ExcelApplication Is Nothing Or Timer > TimeoutTime
On Error GoTo 0
End If
If ExcelApplication Is Nothing Then
MsgBox "Unable to launch Excel."
Else
' Do something with the Excel instance...
End If