VBA Excel. Модуль (импорт, экспорт, удаление)

    Импорт, экспорт и удаление модуля в редакторе 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:

    Если в книге "Книга3.xlsm" уже присутствует модуль с именем "Module1", то импортированному модулю будет присвоен другой номер.

    Программное удаление модуля

    Код VBA Excel для программного удаления стандартного модуля с именем "Module24":

    Замените имя "Module24" на имя своего модуля, который вы хотите безвозвратно удалить.


    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

    6 комментариев для “VBA Excel. Модуль (импорт, экспорт, удаление)”

    1. Холмурод

      Из за незнания английского языка я боялся этого сделать, теперь уверенно это сделал, спасибо.

    2. При нажатии правой кнопкой на нужный модуль Єкспорт модуля есть а ремув т.е. удаление отсутствует что делать?

      1. Евгений

        Здравствуйте, Леонид!
        Я такого еще не встречал. Посмотрите в модуле книги, нет ли там процедуры Workbook_Open() или другой, которая может удалять этот пункт из контекстного меню.

      2. Столкнулся с такой же проблемой.
        Когда выбираете макрос в окне диспетчера, жмите не кнопку «Войти» (тогда наверху в строке адреса будет дополнительная надпись [break] и команда удаления модуля не активна), а кнопку «Изменить» — тогда команда Удалить модуль (Remove Module) станет активна.

      1. Евгений

        Здравствуйте, Игорь!
        Используйте программный способ удаления стандартного модуля. Код я добавил в конце статьи.

    Добавить комментарий

    Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора.