Импорт, экспорт и удаление модуля в редакторе VBA. Программный экспорт-импорт модуля из одной рабочей книги Excel в другую с помощью кода VBA Excel.
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:
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"
:
Sub RemoveModule() With ThisWorkbook.VBProject .VBComponents.Remove .VBComponents(«Module24») End With End Sub |
Замените имя "Module24"
на имя своего модуля, который вы хотите безвозвратно удалить.
Have you ever seen a text file in a notepad or a source code file in visual studio code? These all are just basic files where you can write some code or information. Similarly, we have modules in excel, each module has its code window, where you can write some code and allow it to automate your repetitive tasks. There can be multiple modules. We can create, rename or delete a module in just a few mouse clicks. In this article, we will learn how to create and delete a module in excel VBA.
Module and its types
A module is a set of instructions written in a VBA editor. There are broadly 5 types of modules in VBA:
- General-Purpose Module: It is the simplest type of module. If we record a macro that will get stored in a module. This is called a general-purpose module. We can simply write code in the VBA editor also.
- Workbook Module: Workbook module handles the events happening at a workbook level. For example, opening, closing or renaming a workbook.
- Worksheet Module: The worksheet module is driven by the events happening at the worksheet level. For example, activating a worksheet or flipping between different worksheets. Automating the task such as merging the worksheets.
- Userform Module: Userform Module is a way to input a piece of information from the user. It is one of the most useful tools of VBA.
- Class Module: It’s similar to the classes in other languages. We create our objects. VBA has built-in objects such as the Collection, Workbook, etc. The inheritance in VBA is minimal and much more restricted than in other languages.
Creating a VBA module
Following are the steps to create a VBA module,
Step 1: Go to Developer Tab, and select Visual Basic in the menu bar.
Step 2: A VBA editor appears. We can see the information on all the worksheets and workbooks in the editor tab.
Step 3: Go to Insert Tab and select Module.
Step 4: A module name module1 is created.
Deleting a VBA module
Following are the steps to delete a VBA module,
Step 1: Given 3 modules name module1, module2, and module3. Delete module3 from the Modules.
Step 2: Right-click on module3 and click on Remove module3. A dialogue box appears.
Step 3: The dialogue box tells whether you want to export the given module or not. If you, do not want to save the module on your PC, then click on No.
Step 4: Module3 has been deleted from the VBA editor.
При первой вставке модуля в VBA ему автоматически будет присвоено имя «Модуль1», А последующий модуль станет Module2, Module3 и т. Д. Аналогичным образом, когда вы вставляете пользовательскую форму, она будет называться UserForm1, UserForm2 и т. Д.
Переименование модуля
Чтобы переименовать модуль или форму, вам необходимо включить окно свойств в вашем VBE.
Если окна свойств не отображаются, нажмите F4 или перейдите в строку меню и выберите Вид, Характеристики Окно.
- Щелкните модуль, который хотите переименовать, в Обозреватель проекта.
- Выберите свойство name в Окно свойств (модуль будет иметь только это свойство; форма имеет несколько свойств)
3. Удалите имя модуля (в данном случае Module1) и введите имя, которое вы хотите назвать своим модулем.
4. Нажмите Enter, чтобы переименовать модуль.
Таким же образом вы переименовываете свои формы.
Удаление модуля
Иногда вам может потребоваться удалить модуль или форму, которые вам больше не нужны.
Щелкните правой кнопкой мыши модуль или форму, которые вы хотите удалить, чтобы отобразить контекстное меню, вызываемое правой кнопкой мыши.
Нажмите Удалять (в этом случае Модуль2)
ИЛИ
Нажать на Файл меню, а затем нажмите Удалите (Module2).
Появится окно с предупреждением, в котором вас спросят, хотите ли вы экспортировать модуль или форму, прежде чем удалять их. Экспорт модуля или формы позволяет сохранить его как отдельный файл для использования в другом проекте Excel в другое время.
Чаще всего, когда вы удаляете модуль или форму, это происходит потому, что он вам не нужен, поэтому нажмите Нет.
Именование модулей и форм
Рекомендуется переименовывать модули и формы, чтобы дать им более понятные имена. Например, если UserForm1 будет формой для ввода сведений о счете, мы можем переименовать ее в frmInvoices. Точно так же, если Module1 будет использоваться для хранения некоторых общих функций, которые будут повторно использоваться в вашем коде, вы можете переименовать его в basGeneral или modGeneral (в зависимости от того, какие соглашения об именах вы хотите использовать).
Рекомендуется соблюдать соглашения об именах как при именовании ваших модулей и форм, так и переменных, которые вы используете в своем коде. Вы заметите, что я написал первые 3 буквы имени модуля или формы в нижнем регистре и поставил заглавную букву в начале описания модуля или формы. Это известно как CamelCase (https://en.wikipedia.org/wiki/Camel_case) и является хорошей привычкой при именовании объектов. Я также использовал соглашение об именах Лешинского, которое часто используется программистами Visual Basic. (https://en.wikipedia.org/wiki/Leszynski_naming_convention).
Вы поможете развитию сайта, поделившись страницей с друзьями
Можно ли из списка модулей (в окне проекта) удалить те, которые пусты и не нужны, а также формы, которые не будут использоваться |
|
Inter_E Пользователь Сообщений: 399 |
Посмотри тему, недавно у меня было «Чистка Кодов». Там все подробно описано! Желаю удачи! With my best regards, Inter_E |
я не могу ту тему просмотреть (((((((, вы не могли бы мне еще раз описание прислать. Та тема от 26/06 10:19. Заранее благодарю |
|
Да чего там смотреть — все что не нужно или пустые смело удаляйте. Почистите кукисы и все темы будут доступны |
|
Inter_E Пользователь Сообщений: 399 |
да Dik, прав! With my best regards, Inter_E |
ЯЮ понимаю что смело, но я их просто чищу, а сам модуль никак не могу удалить, только добавить новый |
|
Правой кнопкой по модулю, Remove, Нет. |
|
Inter_E Пользователь Сообщений: 399 |
я вам говорю вот в теме которую я создал «Чистка Кодов», как раз таки модуль удаляет!!!!, With my best regards, Inter_E |
просто мороки много с импортом файлов, потом еще удалять из созданной папки, короче говоря спасибо Inter_E. Просмотрела наконец ту тему ))))))). Просто кукисы как-то не хотели удаляться ))))))))))). СПАСИБОЧКИ. Твой вариант просто гуд |
|
Inter_E…..to….Mario Гость |
можете мне прислать чистку макросов! заранее спасибо! |
Mario, читайте внимательно: Правой кнопкой по модулю, Remove, Нет. Просто нажмите НЕТ и накакой мороки. |
|
если честно я сам не пробовал, мне кажется Pavel прислал! |
|
Павел присылал в той теме ссылку, но там нужно поковыряться http://msoffice.nm.ru/faq/macros/module.htm#faq47 |
|
блин, ну новичек я ((((((. Я вообще подумала вы мне замите ))))). Типа не пробовала??? нет??? СПАСИБО )))) |
|
Удаление строк из модуля ИмяПроекта..VBProject.VBComponents.Item(«Имя модуля»).CodeModule.DeleteLines(№,Количество) Где |
|
Определение количества строк в модуле ИмяПроекта.VBProject.VBComponents.Item(«Имя модуля»).CodeModule.CountOfLines Удаление модулей проекта ИмяПроекта.VBProject.VBComponents.Remove _ ИмяПроекта.VBProject.VBComponents.Item(«ИмяМодуля») |
|
Inter_E Пользователь Сообщений: 399 |
Спасибо! А как по названию макроса улалять код с модуля или с листа или с этакнига? With my best regards, Inter_E |
Inter_E, а чем вам не подошёл макрос, который я вам уже давал неделю назад? ‘Source: http://msoffice.nm.ru/faq/macros/module.htm#faq47 Sub DeleteProcedure() |
|
………..to Pavel55 Гость |
Спасибо, Pavel! Пока я тот не использовал, там модули удалялись, а вот это самый раз будет наверно, когда я применю! |
{quote}{login=………..to Pavel55}{date=03.07.2008 12:26}{thema=………..to Pavel55}{post}Спасибо, Pavel! Пока я тот не использовал, там модули удалялись, а вот это самый раз будет наверно, когда я применю! Подскажите, пожалуйста, мне нужно удалить модуль, в Имя_проекта.Модуль есть свойство только сохранить этот модуль, ничего похожего на удаление нет. |
|
Serge Пользователь Сообщений: 11308 |
|
{quote}{login=Serge 007}{date=22.03.2010 01:53}{thema=}{post}А как же Remove?{/post}{/quote} Remove нет! |
|
{quote}{login=The_Prist}{date=22.03.2010 02:07}{thema=}{post}Потому что необходимо указать имя или индекс удаляемого элемента: ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents(«Module2»){/post}{/quote} А нужно прямо всю строчку эту писать? У меня пишет, что Application-definded or object definded error |
|
{quote}{login=The_Prist}{date=22.03.2010 02:18}{thema=Re: Re: }{post}{quote}{login=}{date=22.03.2010 02:15}{thema=Re: }{post}А нужно прямо всю строчку эту писать? У меня пишет, что Application-definded or object definded error{/post}{/quote}А я-то откуда знаю, что Вам там писать? У Вас есть такой модуль = «Module2»? Напишите как Вы удаляете по моему примеру и какой именно модуль хотите удалить.{/post}{/quote} Вместо Module2 я конечно вставляю название своего модуля. Оно у меня называется CSV |
|
{quote}{login=The_Prist}{date=22.03.2010 02:29}{thema=}{post}Еще раз: НАПИШИТЕ КАК ВЫ УДАЛЯЕТЕ МОДУЛЬ СОГЛАСНО МОЕГО ПРИМЕРА{/post}{/quote} Private Sub DeleteModule() |
|
{quote}{login=The_Prist}{date=22.03.2010 02:37}{thema=}{post}Итак, модуль так и называется — CSV_EDI. Проставлена ли галка доверия к проекту в параметрах?{/post}{/quote} Модуль обычный, да, все в 1й книге! Если галка доверия, это Dockable, то она есть |
|
{quote}{login=The_Prist}{date=22.03.2010 03:04}{thema=Re: Re: }{post}{quote}{login=}{date=22.03.2010 02:57}{thema=Re: }{post}Если галка доверия, это Dockable, то она есть{/post}{/quote}Нет, не Dockable. Excel 2007 — Меню-Параметры Excel-Центр управления безопасностью-Параметры макросов-поставить галочку «Доверять доступ к объектной модели проектов VBA»; Excel 2003 — Сервис — Параметры-вкладка Безопасность-Парметры макросов-Доверять доступ к Visual Basic Project{/post}{/quote} А в 2003 Экселе? |
|
Guest Гость |
#29 22.03.2010 15:26:17 {quote}{login=The_Prist}{date=22.03.2010 03:21}{thema=Re: Re: Re: Re: }{post}{quote}{login=}{date=22.03.2010 03:19}{thema=Re: Re: Re: }{post}А в 2003 Экселе?{/post}{/quote}Вы читали хоть мой пост Выше? Там для обеих версий написано!{/post}{/quote} СПАСИБО!!!! ВЫ ГЕНИЙ! |
Содержание:
- Удалите все макросы, сохранив файл в формате XLSX
- Удалить определенные макросы из диалогового окна «Макрос»
- Удалите модуль с макросом
[lyte id=’lyNJbZfM7TU’ /]
Использование макросов VBA в Excel может значительно сэкономить время. Вы можете автоматизировать множество повторяющихся задач и создавать новые функции и возможности в Excel с помощью простых кодов макросов VBA.
Но в некоторых случаях вам может потребоваться удалить все макросы из книги Excel (или удалить только определенные макросы).
Это может быть в том случае, если вы получаете книгу от кого-то другого и хотите освободить ее от макросов, или когда вы отправляете кому-то файл с макросами, а квитанция не нуждается в них в книге.
В этом уроке я покажу вам несколько действительно простых способов удалить макросы из книги в Microsoft Excel.
Итак, приступим!
Удалите все макросы, сохранив файл в формате XLSX
Если вы хотите избавиться от всех макросов сразу, самый простой способ сделать это — сохранить существующую книгу в формате XLSX.
По умолчанию у вас не может быть кода макроса VBA в формате файла XLSX. Если вы это сделаете, он будет автоматически удален при сохранении файла Excel.
В Excel вы можете использовать макросы только в форматах .XLSM, .XLSB и более старых форматах .XLS. Когда вы сохраняете книгу в любом другом формате, макросы сразу теряются.
Предположим, у вас есть файл с именем Example.xlsm (с макросами), ниже приведены шаги по удалению всех макросов из этого файла:
- Перейдите на вкладку Файл.
- Нажмите на опцию «Сохранить как» (в новых версиях Excel это «Сохранить копию»).
- Щелкните Обзор. Откроется диалоговое окно «Сохранить как».
- В диалоговом окне «Сохранить как» введите имя файла, с которым вы хотите его сохранить. Вы также можете сохранить существующее имя, если хотите
- Щелкните раскрывающийся список Тип файла.
- Выберите вариант «Книга Excel (* .xlsx)».
- Нажмите на Сохранить
- В появившемся запросе нажмите Да. Он просто информирует вас о том, что код VB будет утерян, если вы сохраните этот файл в формате .XLSX.
Вот и все! Теперь ваш файл не содержит макросов.
Этот метод удобен тем, что удаляет все макросы из текущей книги Excel за один раз. Однако, если вы хотите удалить некоторые макросы и удалить некоторые, этот метод не сработает для вас (см. Тот, который использует диалоговое окно «Макрос» для этого).
Еще одна хорошая особенность этого метода заключается в том, что у вас все еще есть копия исходного файла со всеми макросами (на случай, если она вам понадобится в будущем).
Удалить определенные макросы из диалогового окна «Макрос»
Хотя предыдущий метод удалял все макросы. это позволяет вам выбрать те, которые вы хотите удалить.
И если вы хотите удалить все макросы, вы также можете это сделать.
Предположим, у вас есть файл с именем Example.xlsm, в котором есть несколько макросов.
Ниже приведены шаги по удалению макроса из этой книги:
- Перейдите на вкладку Разработчик (если вы не видите вкладку Разработчик, обратите внимание на примечание желтого цвета после шагов)
- Щелкните по кнопке Macros. Откроется диалоговое окно «Макрос», в котором вы увидите все макросы в книге.
- Убедитесь, что в раскрывающемся списке «Макросы в» выбрана «Эта книга».
- Выберите имя макроса, который вы хотите удалить, из списка макросов.
- Щелкните по кнопке Удалить. Это удалит выбранный макрос
Если вы хотите удалить несколько (или все) макросов, повторите шаги 4 и 5.
Примечание. Если вы не видите вкладку разработчика, нажмите здесь, чтобы узнать, как отобразить вкладку разработчика на ленте в Excel. Кроме того, вы также можете использовать сочетание клавиш — ALT + 8, чтобы открыть диалоговое окно «Макрос».
Кроме того, вы также можете щелкнуть вкладку «Представления», щелкнуть раскрывающийся список «Макросы» и затем выбрать опцию «Просмотр макросов». Это также откроет диалоговое окно Macros.
Хотя этот метод отлично работает, он позволяет удалять только макросы, которые хранятся в модуле редактора Visual Basic. Если у вас есть макросы событий (в определенных листах или ThisWorkbook) или макросы в личной книге макросов, их нельзя удалить с помощью этого метода.
Удалите модуль с макросом
Другой способ удалить макросы — перейти в редактор Visual Basic и удалить оттуда макросы.
Этот метод дает вам наибольший контроль, поскольку вы можете получить доступ ко всем макросам (будь то в модуле, объектах или личной книге макросов).
Ниже приведены шаги по удалению макроса из редактора Visual Basic:
- Щелкните вкладку Разработчик на ленте.
- Нажмите на опцию Visual Basic (или воспользуйтесь сочетанием клавиш — ALT + F11)
- В редакторе VB у вас будут все объекты книги в Project Explorer. Если вы не видите Project Explorer, выберите опцию View в меню, а затем нажмите Project Explorer.
- В Project Explorer дважды щелкните объект с кодом макроса. Это может быть модуль, объект рабочего листа или ThisWorkbook.
- В открывшемся окне кода удалите макросы, которые хотите удалить. Если вы хотите удалить все, просто выберите все и нажмите клавишу удаления.
Если у вас есть модуль, который имеет код, который вы хотите удалить, вы можете щелкнуть правой кнопкой мыши объект модуля, а затем выбрать опцию «Удалить модуль».
Итак, это три способа удаления макросов из книги Microsoft Excel.
Надеюсь, вы нашли этот урок полезным!