Импорт, экспорт и удаление модуля в редакторе VBA. Программный экспорт-импорт модуля из одной рабочей книги Excel в другую с помощью кода VBA Excel.
Импорт модуля в редакторе VBA
1. Откройте рабочую книгу Excel, в которую планируете импортировать модуль. Для импорта модуля в Личную книгу макросов, откройте любую книгу.
2. Откройте редактор VBA сочетанием клавиш Alt+F11 (в этом сочетании используется левая клавиша Alt). Обратите внимание на наличие в окне редактора VBA окна проводника «Project-VBAProject», обычно, расположенного слева. При отсутствии, отобразите его через главное меню, выбрав «View» — «Project Explorer».
3. В окне проводника «Project-VBAProject» найдите строку «VBAProject (ИмяКниги)», где «ИмяКниги» — это имя книги, в которую вы собираетесь импортировать модуль. Если вы желаете импортировать модуль в Личную книгу макросов, строка называется «VBAProject (PERSONAL.XLSB)». Если у вас нет Личной книги макросов — создайте ее.
4. У выбранной строки раскройте все крестики слева.
5. Откройте контекстное меню, кликнув правой кнопкой мыши на строке «ЭтаКнига», и выберите в нем пункт «Import File…».
6. В открывшемся окне выбора файла найдите импортируемый модуль с расширением .bas и дважды кликните по нему, или кликните один раз и нажмите кнопку «Открыть». Модуль импортирован и отобразился в проводнике под именем «Module» с очередным номером, независимо от имени импортируемого файла.
7. Если вы импортировали модуль в Книгу Excel 2007-2016 с расширением .xlsx, ее необходимо будет пересохранить как «Книга Excel с поддержкой макросов (.xlsm)», иначе импортированный модуль не сохранится.
Инструкцию с картинками вы можете посмотреть здесь в параграфе «Пользовательская функция «СуммаПрописью».
Экспорт модуля в редакторе VBA
1. Откройте рабочую книгу Excel, из которой вы планируете экспортировать модуль. Для экспорта модуля из Личной книги макросов, откройте любую книгу.
2. Откройте редактор VBA сочетанием клавиш Alt+F11 и в окне проводника «Project-VBAProject» найдите экспортируемый модуль.
3. Откройте контекстное меню, кликнув правой кнопкой мыши на экспортируемом модуле, и выберите в нем пункт «Export File…».
4. В открывшемся окне выберите папку, куда следует сохранить экспортируемый модуль, если необходимо, измените название сохраняемого файла, и нажмите кнопку «Сохранить». Модуль экспортирован и отобразился в выбранном каталоге с указанным именем и расширением .bas.
Удаление модуля в редакторе VBA
1. В окне проводника «Project-VBAProject» найдите удаляемый модуль.
2. Откройте контекстное меню, кликнув правой кнопкой мыши на удаляемом модуле, и выберите в нем пункт «Remove Module…» с номером удаляемого модуля.
3. VBA Excel предложит экспортировать модуль перед удалением, нажмите «Да», если хотите сохранить модуль, или «Нет», чтобы удалить без сохранения.
Как удалить стандартный модуль с помощью кода VBA Excel, смотрите в последнем параграфе статьи Программное создание модуля.
Программный экспорт-импорт модуля
Пример программного экспорта стандартного модуля "Module1"
из книги "Книга2.xlsm"
и импорта его в книгу "Книга3.xlsm"
с помощью кода VBA Excel:
1 2 3 4 |
Sub ExportImportModule() Workbooks("Книга2.xlsm").VBProject.VBComponents("Module1").Export "C:\Тестовая\Module1.bas" Workbooks("Книга3.xlsm").VBProject.VBComponents.Import "C:\Тестовая\Module1.bas" End Sub |
Если в книге "Книга3.xlsm"
уже присутствует модуль с именем "Module1"
, то импортированному модулю будет присвоен другой номер.
Программное удаление модуля
Код VBA Excel для программного удаления стандартного модуля с именем "Module24"
:
1 2 3 4 5 |
Sub RemoveModule() With ThisWorkbook.VBProject .VBComponents.Remove .VBComponents("Module24") End With End Sub |
Замените имя "Module24"
на имя своего модуля, который вы хотите безвозвратно удалить.
Из за незнания английского языка я боялся этого сделать, теперь уверенно это сделал, спасибо.
При нажатии правой кнопкой на нужный модуль Єкспорт модуля есть а ремув т.е. удаление отсутствует что делать?
Здравствуйте, Леонид!
Я такого еще не встречал. Посмотрите в модуле книги, нет ли там процедуры Workbook_Open() или другой, которая может удалять этот пункт из контекстного меню.
Столкнулся с такой же проблемой.
Когда выбираете макрос в окне диспетчера, жмите не кнопку «Войти» (тогда наверху в строке адреса будет дополнительная надпись [break] и команда удаления модуля не активна), а кнопку «Изменить» — тогда команда Удалить модуль (Remove Module) станет активна.
Добавить модуль есть опция а удалить нету
Здравствуйте, Игорь!
Используйте программный способ удаления стандартного модуля. Код я добавил в конце статьи.
Обсуждение закрыто.