CATIAV5 управляет проектами vba в указанных c файлах с расширением .catvba
Эти проекты структурированы и ведут себя как другие VBA: в них есть модули, формы и классы. Вы можете вручную импортировать экспорт этих компонентов VBA, как, например, в Excel. Но, похоже, в CATIA вы не можете автоматизировать эту операцию , в то время как в Excel это возможно с помощью модуля «Microsoft Visual Basi c For Applications Extensibility» (как вы можете видеть здесь https://www.rondebruin.nl/win/s9/win002.htm).
Я хотел бы добиться чего-то подобного в CATIAV5.
Другими словами, чтобы мой .catvbas находился под контролем версий, я хотел бы:
- автоматизирует импорт / экспорт модулей / классов / форм и "собирает" и "разбирает" их в файле .catvba программным способом.
К настоящему моменту мне удалось добавить библиотеку расширяемости в пример проекта catvba и получить доступ к текущим компонентам проекта для импорта или экспорта.
'These references were added in the project:
'Microsoft APC Object Library
'Microsoft Visual Basic for Applications Extensibility
Sub main()
Dim oAPC As New Apc
Dim oVBE As VBE
Set oVBE = oAPC.VBE
Dim p As Project
Set p = oVBE.VBProjects.add(vbext_pt_HostProject)
'the instruction above throws error 440
Set p = oVBE.VBProjects.Open("C:\path\to\another\existing\project.catvba")
'the instruction above throws error 440, too
For Each comp In oAPC.VBE.ActiveVB.Project.VBComponent
Debug.Print comp.Name
'...export comp
Next
НО ЕЩЕ Я не могу создать новый проект catvba или откройте существующий (ошибка 440, см. выше). Если бы я только смог открыть другой проект, я бы использовал его как пустой шаблон для «заполнения» ..