Napisałem rodzaj systemu kompilacji dla programu Excel, który importuje kod VBA z plików źródłowych (który może następnie zostać importowane do kontroli źródła, diffowane itd.). Działa poprzez utworzenie nowego pliku Excel, który zawiera zaimportowany kod, więc może nie działać w twoim przypadku.
Build makro wygląda to tak, ja zapisać go w pliku o nazwie 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
Teraz rzeczy VBIDE oznacza, że trzeba importować referencję o nazwie „Microsoft Visual Basic for Applications rozciągliwość 5.3 ”Myślę, że
oczywiście nadal masz problem z konieczności uruchamiania programu Excel budować To może być ustalona z małego skryptu 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
Ru nning powyższy skrypt powinien rozpocząć kompilację pliku Excel, który wyprowadza wynikowy arkusz. Prawdopodobnie musisz zmienić niektóre rzeczy, aby były ruchome w systemie plików. Mam nadzieję że to pomoże!
Tylko uwaga - skoroszyty, które programowo zmieniają swój kod VBA, są często oznaczane jako wirusy ... –