Я написал своего рода систему сборки для Excel, которая импортирует код VBA из исходных файлов (которые затем могут быть импортированы в систему управления исходным кодом, в diffd и т. Д.). Он работает путем создания нового файла Excel, который содержит импортированный код, поэтому он может не работать в вашем случае.
Макрос сборки выглядит следующим образом, я сохраняю его в файле с именем Build.xls:
Sub Build()
Dim path As String
path = "excelfiles"
Dim vbaProject As VBIDE.VBProject
Set vbaProject = ThisWorkbook.VBProject
ChDir "C:\Excel"
' Below are the files that are imported
vbaProject.VBComponents.Import (path & "\something.frm")
vbaProject.VBComponents.Import (path & "\somethingelse.frm")
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "Output.xls"
Application.DisplayAlerts = True
Application.Quit
End Sub
Теперь, материал VBIDE означает, что вы должны импортировать ссылку под названием «Microsoft Visual Basic для расширений приложений 5.3», я думаю.
Конечно, у вас все еще есть проблема с запуском Excel для сборки. Это можно исправить с помощью небольшого VB-скрипта:
currentPath = CreateObject("Scripting.FileSystemObject") _
.GetAbsolutePathName(".")
filePath = currentPath & "\" & "Build.xls"
Dim objXL
Set objXL = CreateObject("Excel.Application")
With objXL
.Workbooks.Open(filePath)
.Application.Run "Build.Build"
End With
Set objXL = Nothing
Запуск вышеуказанного скрипта должен запустить файл Excel сборки, который выводит полученный лист. Вероятно, вам придется изменить некоторые вещи, чтобы сделать его подвижным в файловой системе. Надеюсь, это поможет!