Я возился с импортом/экспортом модулей и классов VBA в приложении Excel, над которым я работаю. Кажется действительно полезным для использования с контролем версий. Мне это нравится. Я могу легко вносить изменения кода в модули, экспортировать свои изменения, фиксировать и отправлять свои изменения, а также «перезагружать» (удалять все модули и повторно импортировать) свои изменения в другом экземпляре приложения Excel.
Однако я не могу найти способ использовать это с листами. Если я добавлю визуальное изменение на лист (скажем, добавлю кнопку или изменю внешний вид листа), есть ли способ экспортировать лист как код, точно так же, как модули, чтобы я мог затем импортировать лист точно так же, как это выглядело из моих изменений?
Я уже знаю о некоторых псевдорешениях для этого, но они либо не впишутся в то, что мне нужно с точки зрения контроля версий, либо будут слишком большими. Во-первых, я могу написать сценарий VBA, чтобы скопировать мое приложение Excel в файл .xlsx, в котором будут храниться любые изменения моего листа, а затем я могу импортировать их в другой экземпляр приложения, если захочу. Проблема в том, что я не смогу включить их в свой контроль версий. Я также знаю, что могу писать сценарии в событии Workbook_Open
, чтобы программно создавать пользовательский интерфейс на листах каждый раз, когда открывается приложение Excel. Это решит мою проблему фиксации моего кода, но это слишком много.
Любые предложения или решения этой проблемы?
РЕДАКТИРОВАТЬ: Чтобы было ясно, я знаю, что могу экспортировать свои листы как модули. Однако, кажется, нет ничего, что указывало бы на то, как лист выглядел при экспорте. Следовательно, когда я импортирую «лист», он импортируется как модуль класса.