Как использовать контроль версий с кодом VBA?

Я разрабатываю приложение VBA, которое довольно велико. Я хочу использовать SVN для разработки этого приложения.

Как я могу разделить свои модули из документа Excel и как загрузить мои модули отдельно в исходный код?

Пожалуйста, помогите мне.

Ответ 1

Отметьте это excel addin https://github.com/hilkoc/vbaDeveloper.

Он автоматически экспортирует весь ваш код vba, как только вы сохраните свою книгу. Вы также можете легко импортировать его снова, когда вы открываете книгу. Все это работает очень хорошо.

В качестве бонуса он поставляется с форматированием кода, который можно запустить в редакторе vba, чтобы вы могли форматировать свой код при записи.

Ответ 2

С файлом file- > export вы можете экспортировать отдельные классы.

Этот способ разделить модули - временно или иначе.

Как только вы это сделаете, вы можете создать репозиторий SVN. Я не буду вдаваться в инструкции для этого, так как это по всему Интернету, но вот отправная точка:

http://svnbook.red-bean.com/en/1.0/ch05s02.html

Ответ 3

Я написал небольшой инструмент, помогающий поместить код VBA под контроль версий, не требуя ничего от Excel, или заблокировать вас в какой-либо конкретной системе управления версиями. Он может либо извлекать модули из файла Office в папку, либо публиковать модули из папки в файл Office. В любом случае он обращается к файлу Office напрямую, а не через Excel. Он доступен на GitHub:

Код Microsoft Office VBA обычно хранится в двоичном формате, что затрудняет правильное управление версиями. VBA Sync Tool синхронизирует макросы между файлом с поддержкой VBA и папкой, что позволяет легко управлять версиями с помощью Git, SVN, Mercurial или любого другого VCS.

Чтобы начать, выберите параметр Извлечь VBA из файла Office, затем выберите местоположения вашего репозитория (или где вы хотите его запустить) и файл Office. Инструмент будет сравнивать два местоположения и показать все различия:

Инструмент VBA Sync после выбора папки и расположения файлов

Если вы хотите извлечь все (как правило, для создания репозитория), просто нажмите ОК. Если вы хотите быть более избирательным, вы можете отключить определенные файлы (например, некоторые формы, которые, как вы знаете, не изменились), а затем продолжить. Если вы настроили инструмент diff (в разделе "Файл" → "Настройки" ), вы можете дважды щелкнуть по нему, чтобы просмотреть его изменения.

После слияния выполните ту же процедуру, но выберите опцию Опубликовать VBA в Office. Когда вы нажмете Применить или ОК, инструмент будет записывать комбинированный код в файл Office.

Ответ 4

Отметьте этот ответ о том, как автоматически извлекать все модули/формы/классы в текстовые файлы. Это сделает их более управляемыми в SVN.