Добрый день!
Перерыл кучу тем и форумов, так и не нашёл ответа. Нашёл здесь работающий макрос для панели, но он не подошёл под мою ситуацию. Ещё нашёл вариант пользоваться personal.xlsb, тоже, кажется не вариант.
Суть - есть уже почти полностью готовый инструмент на Экселе по созданию новой книги с формулами, оформлением и прочим. Единственное, что осталось - научить этот инструмент переносить в новую книгу часть макросов, которая там нужна.
Макросы я переношу простым кодом
ActiveWorkbook.VBProject.VBComponents("Module1").Export ("c:\Module1.bas")
Application.VBE.ActiveVBProject.VBComponents.Import ("c:\Module1.bas")
Kill ("c:\Module1.bas")
Макрос успешно переносится, но!
Графическая кнопка (по сути - форма прямоугольника) на листе имеет привязку к этому макросу. При копировании листа с кнопкой, затем экспорта-импорта модуля, кнопка остаётся привязанной к первому документу. Убрать бы путь (и тут меня можно ткнуть в тему, про убирание пути у панели макросов - но, я ж пишу, к этой кнопке он не работает, к VB кнопке, кстати, тоже).
Personal.xlsb тоже не вариант - поскольку документ должен быть использован на бесчисленном множестве компьютеров. Или научите принудительно импортировать эти модули в личную книгу каждого пользователя.
Как реализовать этот программный перенос макроса?
Перерыл кучу тем и форумов, так и не нашёл ответа. Нашёл здесь работающий макрос для панели, но он не подошёл под мою ситуацию. Ещё нашёл вариант пользоваться personal.xlsb, тоже, кажется не вариант.
Суть - есть уже почти полностью готовый инструмент на Экселе по созданию новой книги с формулами, оформлением и прочим. Единственное, что осталось - научить этот инструмент переносить в новую книгу часть макросов, которая там нужна.
Макросы я переношу простым кодом
ActiveWorkbook.VBProject.VBComponents("Module1").Export ("c:\Module1.bas")
Application.VBE.ActiveVBProject.VBComponents.Import ("c:\Module1.bas")
Kill ("c:\Module1.bas")
Макрос успешно переносится, но!
Графическая кнопка (по сути - форма прямоугольника) на листе имеет привязку к этому макросу. При копировании листа с кнопкой, затем экспорта-импорта модуля, кнопка остаётся привязанной к первому документу. Убрать бы путь (и тут меня можно ткнуть в тему, про убирание пути у панели макросов - но, я ж пишу, к этой кнопке он не работает, к VB кнопке, кстати, тоже).
Personal.xlsb тоже не вариант - поскольку документ должен быть использован на бесчисленном множестве компьютеров. Или научите принудительно импортировать эти модули в личную книгу каждого пользователя.
Как реализовать этот программный перенос макроса?