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. Программный экспорт-импорт модуля из одной рабочей книги 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"
на имя своего модуля, который вы хотите безвозвратно удалить.
Return to VBA Code Examples
In this Article
- How to Rename or Delete a VBA module or Form
- Renaming a Module
- Delete a Module
- Name Modules & Forms
How to Rename or Delete a VBA module or Form
The first time you insert a module in VBA, it will automatically be given the name of “Module1” and subsequent module will become Module2, Module3 etc. Similarly, when you insert a UserForm it will be called UserForm1, UserForm2 etc.
Renaming a Module
To rename your module or form, you need to have the properties window switched on in your VBE.
If the properties windows is not showing, press F4 or go to the menu bar and select View > Properties Window.
- Click on the module you wish to rename in the Project Explorer.
- Select the name property in the Properties Window (a module will only have this property; a form has multiple properties)
3. Delete the module name (in this case Module1) and type in the name you want to call your module.
4. Press enter to rename the module.
You rename your forms in the same manner.
Delete a Module
Occasionally you may have the need to remove a module or form that you no longer need.
Right-click on the module or form you wish to remove to show the right click short cut menu.
Click Remove (in this case Module2)
OR
Click on the File menu, and then click on Remove (Module2).
A warning box will appear asking if you want to Export the module or form before you remove it. Exporting the module or form enables you to save it as an individual file for use in a different Excel project at some other time.
More often than not when you remove a module or form it is because you do not need it, so click No.
Name Modules & Forms
It is good practice to rename modules and forms in order to give them more meaningful names. For example, if UserForm1 is going to be a form for entering invoice details, we can rename it to frmInvoices. Similarly, if Module1 is going to be used to hold some general functions that are going to be used repetitively throughout your code, you could rename it to basGeneral or modGeneral (depending on which naming conventions you like to use).
It is a good idea to be consistent with the naming conventions, both in naming your modules and forms, as well as the variables that you use within your code. You will notice that I have written the first 3 letters of the module or form name in lowercase, and have a capital letter at the beginning of the description for the module or form. This is known as CamelCase (https://en.wikipedia.org/wiki/Camel_case) and is a good habit to get into when naming your objects. I have also used the Leszynski naming convention which is often used by Visual Basic programmers. (https://en.wikipedia.org/wiki/Leszynski_naming_convention).
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
Learn More!
Is it possible to remove all VBA modules from an Excel file using VBA?
The names of the modules if they exist at all are unknowns before running this script.
asked Aug 29, 2013 at 18:30
user1283776user1283776
18.8k43 gold badges135 silver badges268 bronze badges
Obviously, you can. The following code will do the job:
Sub compact_code()
On Error Resume Next
Dim Element As Object
For Each Element In ActiveWorkbook.VBProject.VBComponents
ActiveWorkbook.VBProject.VBComponents.Remove Element
Next
End Sub
This will remove all modules including ClassModules and UserForms but keep all object modules (sheets, workbook).
answered Aug 29, 2013 at 18:47
Kazimierz JaworKazimierz Jawor
18.8k7 gold badges35 silver badges55 bronze badges
3
Here is a similar alternative that removes only the ClassModules:
On Error Resume Next
With wbk.VBProject
For x = .VBComponents.Count To 1 Step -1
If .VBComponents(x).Type = vbext_ct_StdModule Then
.VBComponents.Remove .VBComponents(x)
End If
Next x
End With
On Error GoTo 0
answered Aug 29, 2013 at 19:00
user1283776user1283776
18.8k43 gold badges135 silver badges268 bronze badges
0
Хитрости »
1 Май 2011 300351 просмотров
Что такое модуль? Какие бывают модули?
Любой код VBA должен где-то храниться. Для хранения кодов в VBA используются модули, которые хранятся в книге. Книга может содержать сколько угодно модулей. Каждый модуль в свою очередь может содержать множество процедур(макросов).
Все имеющиеся в книге модули можно посмотреть через редактор VBA (Alt+F11). Имеющиеся модули отображены в левой части редактора в проводнeике объектов(Project Explorer).
рис.1
Сам проводник объектов может быть не отображен по умолчанию и тогда его необходимо отобразить: нажать Ctrl+R либо в меню редактора VBA-View—Project Explorer
Модули делятся на пять основных типов:
- Стандартный модуль
- Модуль листа
- Модуль книги
- Модуль пользовательской формы
- Модуль класса
- Перенос, импорт и экспорт модуля
Вообще, если точнее, то всего-то два типа модуля — обычный и модуль класса, т.к. Модуль листа, Модуль книги, Модуль пользовательской формы и Модуль класса по своей сути являются модулями классов. Но я специально разделил их на несколько типов, т.к. именно такие типы часто употребляются при пояснениях в различных учебниках и на всевозможных форумах и в самих книгах Excel они по виду и некоторому функционалу различны.
Для того, чтобы создать новый стандартный модуль(Module), модуль класса(ClassModule) или пользовательскую форму(UserForm) надо просто в окне Проводника объектов(Project Explorer) щелкнуть правой кнопкой мыши, выбрать пункт Insert и затем тип добавляемого объекта(Module, ClassModule, UserForm). Так же добавить модуль можно и через меню: Insert -тип модуля.
Удалить тоже просто: щелкнуть правой кнопкой мыши на нужном модуле в окне проекта и выбрать Remove. Подробнее про удаление описано в конце этой статьи: Удаление модулей
СТАНДАРТНЫЙ МОДУЛЬ
на рис.1 Module1.
Самый распространенный тип модулей, который используется в большинстве случаев. Именно в них макрорекордер создает записываемые макросы. Все коды и процедуры в таких модулях пишутся вручную, либо копируются из других источников(другого модуля, с этого сайта и т.п.). В основном именно в стандартных модулях содержится большая часть кодов. Они предназначены для хранения основных процедур и Public переменных, которые могут быть доступны впоследствии из любого модуля. Как создать стандартный модуль: в окне проводника объектов щелкаем правой кнопкой мыши-Insert—Module. При записи макрорекордером модули создаются автоматически и им автоматически присваиваются имена.
Многие коды, опубликованные в статьях на сайте необходимо размещать именно в стандартных модулях. Для этого достаточно создать новый стандартный модуль, скопировать текст кода с сайта и вставить.
МОДУЛЬ ЛИСТА
Лист1 или Sheet1 — на рис.1: Лист1(Лист1),Лист2(Лист2),Лист3(Лист3).
Для каждого листа книги имеется свой отдельный модуль. Попасть в модуль листа проще, чем в остальные модули. Для этого надо просто щелкнуть правой кнопкой мыши по ярлычку листа и выбрать из контекстного меню пункт Исходный текст(View Code)
в зависимости от версии Excel этот пункт на русском может называться так же: Просмотреть код или Исходный код
:
Можно и более трудным путем пойти — через редактор VBA: Alt+F11 и в окне Проводника объектов(Project Explorer) дважды щелкнуть по объекту с именем листа или правая кнопка мыши на модуле листа —View code.
Размещая код в модуле листа следует помнить, что при копировании или переносе данного листа в другую книгу код так же будет скопирован, т.к. является частью листа. Это и плюс и минус одновременно. Плюс в том, что разместив код в модуле листа можно использовать этот лист в качестве шаблона для распространения со своими кнопками вызова этих кодов(в том числе создания книг кодом) и весь функционал будет доступен. Минус же заключается в некоторых нюансах обращения к ячейкам(подробнее можно ознакомиться в этой статье: Как обратиться к диапазону из VBA) и необходимости размещения ВСЕХ используемых процедур в этом листе, иначе при переносе в другие книги коды могут работать с ошибками.
В модуле листа содержатся встроенные событийные процедуры, каждая из которых отвечает за обработку определенного события на этом листе. Посмотреть их можно так: выбираете объект(на рисунке ниже список в левой части) Worksheet, а в правом списке выбираете событие(в этом списке все процедуры, доступные для выбранного листа):
Процедуры, события для которых уже используются, выделяются жирным шрифтом.
Названия событийных процедур носят достаточно информативные имена и большая их часть не нуждается в тщательной расшифровке. Но самые наиболее части применяемые в любом случае считаю нужным описать:
- Activate — возникает при активации самого листа(но не возникает, если произошел переход из одной книги в другую и этот лист является там активным)
- BeforeDoubleClick — возникает при двойном клике мыши на любой ячейке листа. Важно обращать внимание на передаваемые аргументы: Target и Cancel. Target — ссылка на ячейку, в которой было произведено действие; Cancel — отвечает за отмену режима редактирования
- BeforeRightClick — возникает при клике правой кнопкой мыши на любой ячейке листа. Важно обращать внимание на передаваемые аргументы: Target и Cancel. Target — ссылка на ячейку, в которой было произведено действие; Cancel — отвечает за отмену показа всплывающего меню
- Calculate — возникает при пересчете функций и формул на листе
- Change — возникает при изменении значений ячеек на листе. Важно обращать внимание на передаваемый аргумент Target. Target — ссылка на ячейку, которая была изменена. Может отличаться от активной в момент обработки ячейки
- Deactivate — возникает при переходе с этого листа на другой лист этой же книги
- FollowHyperlink — возникает при переходе по гиперссылке, созданной в этом листе
- SelectionChange — возникает при изменении адреса выделенной ячейки/области. Важно обращать внимание на передаваемый аргумент Target. Target — ссылка на диапазон ячеек, которые были выделены. Совпадает с выделенными на текущий момент ячейками
Достаточно важный момент: если захотите познакомиться поближе с событийными процедурами, всегда обращайте внимание на переменные, которые передаются в качестве аргументов в процедуру. В большинстве случаев рекомендую использовать именно эти переменные, а не выдумывать всякие возможности для вычисления объекта, который послужил причиной возникновения события. Для события листа Worksheet_Change это переменная Target. Для примера вставьте приведенный ниже код в модуль любого листа:
Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "Адрес измененной ячейки: " & Target.Address & _ "; Адрес активной ячейки: " & Selection.Address, vbInformation, "www.excel-vba.ru" End Sub
После этого запишите в ячейку A1 значение 5 и нажмите Enter. Событие Change сработает в момент завершения редактирования — т.е. в момент нажатия Enter. При этом будет произведен переход на ячейку A2(в большинстве случаев, если настройками не задано иное) и появится сообщение, которое покажет, что изменили ячейку A1, а выделена сейчас A2. Т.е. Target — это всегда ссылка именно на измененную ячейку независимо от того, что сейчас выделено. Данное событие(Worksheet_Change) не будет срабатывать при изменении значений ячеек с формулами. Только ручной ввод.
Примечание: для всех кодов, приведенных на сайте, достаточно просто открыть необходимый модуль(книги или листа) и вставить предложенный код. Корректировка может понадобиться только в случаях, когда в модуле Листа или Книги вашего файла уже имеется код в необходимой событийной процедуре.
МОДУЛЬ КНИГИ
ЭтаКнига или ThisWorkbook:
В модуль книги можно попасть только через проводник объектов(Project Explorer) редактора VBA — двойной щелчок по ЭтаКнига (ThisWorkbook) или правая кнопка мыши на модуле —View code. В модуле книги так же содержатся «встроенные» событийные процедуры. Так же как и для листа выбираем в списке объектов(вверху слева) Workbook. В правом окне выбора процедур, так же как и с модулем листа, будут все процедуры, доступные для объекта ЭтаКнига. Пример использования событийных процедур книги можно посмотреть в статье Как отследить событие(например выделение ячеек) в любой книге?
Но там применяются все те же правила — главное не забывать про аргументы, доступные из этих процедур и передаваемые им самим Excel. Например, для события Workbook_BeforeClose доступен аргумент Cancel. Это можно использовать, если не хотите, чтобы книгу закрыл пользователь, не заполнив ячейку A1. Вот пример подобного кода:
Private Sub Workbook_BeforeClose(Cancel As Boolean) If Me.Sheets("Отчет").Range("A1").Value = "" Then MsgBox "Необходимо заполнить ячейку A1 на листе 'Отчет'", vbCritical, "www.excel-vba.ru" Cancel = True 'отменяем закрытие книги End If End Sub
Из кода видно, что на листе «Отчет» должна быть не пустой ячейка A1(лист «Отчет» тоже должен существовать в этой книге). Но есть и еще одна вещь — какое-то Me. Это краткое обращение к объекту модуля класса, в данном случае это равнозначно обращению ThisWorkbook. И еще один пример кода для модуля ЭтаКнига, который запрещает сохранять исходную книгу, разрешая сохранить её только через пункт Сохранить как(SaveAs):
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If SaveAsUI = False Then 'используется простое сохранить MsgBox "Эта книга является шаблоном. Сохранять её можно только через Сохранить как", vbCritical, "www.excel-vba.ru" Cancel = True 'отменяем сохранение книги End If End Sub
Такое может потребоваться, если книга является шаблоном с полями для заполнения и необходимо предотвратить случайное сохранение исходного документа. Хотя это можно так же сделать без макросов — книгу можно сохранить с правами только на чтение.
МОДУЛИ ФОРМ
UserForm — на рис.1 UserForm1.
Содержатся внутри
Пользовательской формы(UserForm)
и её объектов. В Пользовательских формах в основном все завязано именно на событийных процедурах самой формы и на элементах этой формы(Кнопки, ТекстБоксы, КомбоБоксы(выпадающие списки) и т.д.). Очень удобно использовать Пользовательские формы в своих приложениях для общения с пользователем. Т.к. через формы очень удобно отслеживать действия пользователя и можно запретить доступ к листам с данными, путем их скрытия. Создается форма так же как и модуль: в окне проводника объектов щелкаем правой кнопкой мыши-Insert—UserForm. Примеры кодов с использованием форм можно посмотреть в статьях: Каждому пользователю свой лист/диапазон, Как оставить в ячейке только цифры или только текст?
МОДУЛЬ КЛАССА
ClassModule — на рис.1 Class1.
В большинстве случаев создается специально для отслеживания событий различных объектов. Вряд ли понадобиться начинающим изучение VBA, хотя все зависит от поставленной задачи. Но обычно начинающим изучать это кажется слишком сложным. В любом случае, перед работой с модулями классов лучше научиться хоть чуть-чуть работать с обычными модулями и самостоятельно писать процедуры. Как добавить такой модуль: в окне проводника объектов щелкаем правой кнопкой мыши-Insert—Class Module. Подробнее про модули классов и работу с ними можно почитать в этой статье: Работа с модулями классов. Там описаны все основные принципы и приложен файл примера.
Действия по удалению любого из модулей одинаковы для всех типов. Для этого необходимо перейти в проект VBA нужной книги, выбрать нужный модуль, щелкнуть по нему правой кнопкой мыши и в появившемся меню выбрать Remove (Имя модуля)…(Remove Module1, Remove UserForm1, Remove Class1 и т.п.). После этого появится окно с запросом «Do you want to export (имя модуля) before removing it?». Это означает, что VBA спрашивает: хотите ли Вы сохранить копию кодов модуля перед удалением? Как правило выбирать следует Нет. Но если Вы хотите сохранить текст кодов из удаляемого модуля в отдельном файле, то соглашаетесь, нажав Да. Будет предложено выбрать папку для сохранения модуля и можно даже задать ему отдельное имя.
Иногда нужно модуль из одной книги переместить в другую. Сделать это можно несколькими способами. Самый простой — открыть обе книги, перейти в проводник проектов -найти нужный модуль -захватить его левой кнопкой мыши и не отпуская кнопку перетащить на проект другой книги:
Следует помнить, что так можно перенести и скопировать только стандартный модуль, модуль класса и модуль
UserForm
. Коды модулей листов и книги придется переносить как обычный текст: переходим в модуль
ЭтаКнига
(откуда хотим копировать) -копируем весь код -переходим в модуль ЭтаКнига второй книги и вставляем скопированное:
Экспорт модуля(сохранение в отдельный файл)
Если же надо сохранить стандартный модуль, модуль класса или модуль формы и не переносить сразу же в другую книгу, то можно экспортировать модуль. Для чего это может быть нужно? Как правило, чтобы перенести коды из дома на работу, переслать кому-то на другой ПК(пересылка файла с макросами может быть запрещена политикой безопасности компании) и т.п. Делается это просто: щелкаем на модуле правой кнопки мыши —Export file.
У экспортируемых модулей есть разные расширения, в зависимости от типа модуля. Для стандартных модулей это
.bas
(Module1.bas), для модулей класса —
.cls
(Class1.cls). А вот для модулей форм будет создано целых два файла:
UserForm1.frm
и
UserForm1.frx
. Их важно хранить вместе — один без другого не может быть импортирован в дальнейшем в файл. В файле
.frx
хранится информация об визуальном отображении формы и её элементах, если можно так сказать. В файле
.frm
хранятся непосредственно тексты кодов для формы и служебная информация(имя и размеры формы, некоторые глобальные директивы и ссылка на файл .frx). Поэтому не рекомендуется без соответствующих навыков переименовывать эти два файла в надежде, что потом все заработает.
Импорт модуля(перенос экспортированного ранее в новую книгу)
Для переноса экспортированного модуля в другую книгу надо просто в проводнике объектов выделить нужный проект правой кнопкой мыши —Import module -выбрать в диалоговом окне нужный модуль.
Экспортировать можно любой модуль, а вот импортировать — нет. Модули листов и книг хоть и экспортируются в отдельные файлы(кстати, с расширением .cls), но импортировать их не получится в том виде, как это предполагается. Они будут импортированы как новые модули класса и только. Поэтому для переноса кодов из модулей листов и книг придется использовать все равно копирование и вставку непосредственно кодов.
И в довершение — можно переносить модули автоматически, кодами VBA: Как добавить код процедуры программно, скопировать модуль
Также см.:
Копирование модулей и форм из одной книги в другую
Что такое макрос и где его искать?
Как удалить макросы в книге?
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
In this article we will create a macro to delete module from the workbook.
We will be using the MainModule as raw module.
We want to get rid of this MainModule.
Click on this button for the same.
Logic explanation
In this article, we have created two macros, DeleteVBComponent and calling_procedure.
DeleteVBComponent
It takes the workbook name and module name as inputs, and deletes the module from the workbook.
calling_procedure
It is used to call the DeleteVBComponent macro with the active workbook and MainModule as inputs.
Code explanation
Application.DisplayAlerts = False
This code is used to disable the alert message.
wb.VBProject.VBComponents.Remove wb.VBProject.VBComponents(CompName)
This code is used to remove the module from the workbook.
Application.DisplayAlerts = True
This code is used to enable the alert message.
Please follow below for the code
Option Explicit Sub DeleteVBComponent(ByVal wb As Workbook, ByVal CompName As String) 'Disabling the alert message Application.DisplayAlerts = False 'Ignore errors On Error Resume Next 'Delete the component wb.VBProject.VBComponents.Remove wb.VBProject.VBComponents(CompName) On Error GoTo 0 'Enabling the alert message Application.DisplayAlerts = True End Sub Sub calling_procedure() 'Calling DeleteVBComponent macro DeleteVBComponent ActiveWorkbook, "MainModule" End Sub
If you liked this blog, share it with your friends on Facebook. Also, you can follow us on Twitter and Facebook.
We would love to hear from you, do let us know how we can improve our work and make it better for you. Write to us at info@exceltip.com
При первой вставке модуля в 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).
Вы поможете развитию сайта, поделившись страницей с друзьями
You can remove modules from the Visual Basic Editor rather quickly. As you work within the Visual Basic Editor, you may find that you have modules that you want to remove from a selected project. Typically, you delete modules that contain subroutines and functions that you no longer need for your project.
When you remove a module that contains code for a macro used within Excel, remember that you can no longer access the macro. Also, if you remove a module that contains code referenced by a procedure in another module, including an Excel macro, an error message displays when you run the code in the other module. To avoid error messages, you may want to consider saving the module to another file before you delete it.
When you remove a module, the Visual Basic Editor provides the opportunity to export the module to a file so you can reload it again, either in the same project or a different project. If you do not export the module to a file before deleting it, you cannot restore it later. Even if you do not intend to use the module again, to make sure that you do not cause problems with other procedures or subroutines in the project, again, you should save the module to a file before deleting it. After you ensure that everything works, you can delete the exported file. When you export the module to a file, the Visual Basic Editor saves this module in a .bas file that you can import back into a project again at any time.
When you delete macros within Excel, Excel removes the corresponding VBA subroutine code. If the only code contained in the VBA module is the Excel macro, Excel removes the entire module.
REMOVE A MODULE
File | Edit View Insert Format Debug Run tools Add-Ins Window Help i m m ff <g 3? 10
REMOVE A MODULE
File | Edit View Insert Format Debug Run tools Add-Ins Window Help i m m ff <g 3? 10
31 File Edit View Insert Format lools Data Window Help
—D In the Project Explorer, click to highlight the module that you want to remove.
■ If the Project Explorer is not displayed, you can summon it by clicking View O Project Explorer.
Click File O Remove ModuleName where Module Name is the name of the selected module.
■ The Remove command always contains the name of the selected module.
31 File Edit View Insert Format lools Data Window Help
January
February
March April
June
July
August
September
October
November
Office Expenses
Advertising
Rent
command out of this dialog be
KSheet1 i Sheet2 / 5heet3 /
Selected command:
Description | Modify Se
■ The Visual Basic Editor displays a message to verify the delete selection.
Click Yes to save the module to a file.
■ If you click No, the Visual Basic Editor removes the module permanently.
Continue reading here: An Introduction To Vba
Was this article helpful?