Полезные советы на все случаи в жизни
Электронный журнал полезных советов, советы без воды и по сути. Пишут и делятся советами простые и открытые люди которым есть чем безвозмездно поделиться
[gtranslate]
Создание и удаление макросов
Применяется к: Excel 2016 Excel 2013 Excel 2010 Excel 2007
Excel 2013 и 2016Excel 2010Excel 2007
Ниже описывается создание и удаление макроса в Excel 2013 и 2016.
Запись макроса
При записи макроса все необходимые действия записываются средством записи макроса. Такими действиями может быть ввод текста или чисел, выбор ячеек или команд на ленте или в меню, форматирование, выделение ячеек, строк или столбцов, а также выделение ячеек путем перетаскивания указателя мыши. Команды для записи, создания и удаления макросов доступны на вкладке ленты Разработчик.
- Если вкладка Разработчик недоступна, выполните следующие действия для ее отображения:

- Откройте вкладку Файл.
- Нажмите кнопку Параметры и выберите команду Настройка ленты.
- В категории Настройка ленты в списке Основные вкладки установите флажок Разработчик, а затем нажмите кнопку ОК.
- На вкладке Разработчик в группе Код нажмите кнопку Безопасность макросов.
- В группе Параметры макросов выберите переключатель Включить все макросы (не рекомендуется, возможен запуск опасной программы), а затем дважды нажмите кнопку ОК.ВНИМАНИЕ : Для предотвращения запуска потенциально опасного кода по завершении работы с макросами рекомендуется вернуть параметры, отключающие все макросы.
Нравится? Поделись с друзьями в социальных сетях, нажми поделиться
- На вкладке Разработчик в группе Код нажмите кнопку Запись макроса.
- В поле Имя введите имя макроса .ПРИМЕЧАНИЕ : Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не допускаются пробелы; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса.
- Чтобы назначить сочетание клавиш с клавишей CTRL для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву.Выбранное сочетание клавиш заменяет все совпадающие стандартные сочетания клавиш Excel на то время, пока открыта книга, содержащая данный макрос.
- В поле Сохранить в выберите книгу, в которой нужно сохранить макрос.Если вам нужно, чтобы данный макрос был всегда доступен при работе в Excel, выберите вариант Личная книга макросов. При выборе этого варианта создается скрытая личная книга макросов (Personal.xlsb) (если она еще не существует), в которой сохраняется данный макрос. В Windows 7 и Windows Vista эта книга сохраняется в папке C:\Users\имя_пользователя\Application Data\Microsoft\Excel\XLStart. В Microsoft Windows XP эта книга сохраняется в папке C:\Documents and Settings\имя_пользователя\Application Data\Microsoft\Excel\XLStart, откуда она будет автоматически загружаться при каждом запуске приложения Excel. Если вы хотите автоматически выполнять макрос из личной книги в другой книге, следует также сохранить эту книгу в папке XLStart, чтобы при запуске Excel открывались обе книги.
- Введите описание макроса в поле Описание.
- Для начала записи макроса нажмите кнопку ОК.
- Выполните действия, которые нужно записать.
- На вкладке Разработчик в группе Код нажмите кнопку Остановить запись .
Создание макроса с помощью VBA
- На вкладке Разработчик в группе Код нажмите кнопку Visual Basic.
- При необходимости в меню Insert выберите команду Module.ПРИМЕЧАНИЕ : Модули будут созданы автоматически для всех листов книги.
- В окне программы модуля введите или скопируйте нужный текст макроса.
- Для запуска макроса из окна модуля нажмите клавишу F5.
- Когда макрос будет создан, в меню File выберите команду Close and Return to Microsoft Excel.
Нравится? Подпишись на рассылку полезных советов от prodma.ru
[wysija_form > Копирование части макроса для создания нового макроса
- Откройте книгу, содержащую макрос, который нужно скопировать.
- На вкладке Разработчик в группе Код нажмите кнопку Макросы.
- В поле Имя выберите имя макроса, который нужно скопировать.
- Нажмите кнопку Изменить.
- В окне редактора Visual Basic выделите строки макроса, которые нужно скопировать.СОВЕТ : Чтобы скопировать макрос целиком, включите в выделенную часть строки Sub и End Sub.
- Выберите в меню Правка команду Копировать.
- В поле Procedure окна кода выберите модуль, куда нужно поместить текст.
- Выберите в меню Правка команду Вставить.
Личную книгу макросов (файл Personal.xls) редактировать нельзя, поскольку она является скрытой книгой, которая всегда открыта. Сначала ее следует отобразить с помощью команды Показать. Этот файл также можно открыть в редакторе Visual Basic, нажав клавиши ALT+F11.
Назначение макроса объекту, графическому объекту и элементу управления
- Щелкните на листе правой кнопкой мыши объект, графический объект или элемент управления, которому нужно назначить существующий макрос, а затем в контекстном меню выберите команду Назначить макрос.
- В поле Имя выберите макрос, который нужно назначить.
Удаление макроса
- Выполните одно из указанных ниже действий.
- Откройте книгу, содержащую макрос, который нужно удалить.
- Если макрос, который требуется удалить, хранится в личной книге макросов (Personal.xlsb) и эта книга скрыта, для ее отображения выполните указанные ниже действия.
- На вкладке Вид в группе Окно нажмите кнопку Отобразить окно.
- В разделе Показать скрытое окно книги выберите пункт PERSONAL и нажмите кнопку ОК.
Как избавиться от макросов в программе Excel

Excel — один из самых популярных программных инструментов, который используется для работы с таблицами и данных. Это мощное приложение, которое позволяет автоматизировать некоторые задачи с помощью макросов. Макросы — это записанные последовательности команд, которые могут выполнять определенные действия. Однако, иногда может возникнуть необходимость удалить макросы из файла Excel.
Удаление макросов может быть полезно в таких случаях, как защита от вредоносного программного обеспечения, оптимизация производительности или просто очистка файла от ненужных элементов. В данном руководстве мы рассмотрим несколько простых шагов, которые помогут вам удалить макросы из Excel.
Шаг 1: Откройте файл Excel, содержащий макросы
Перед тем, как удалить макросы, необходимо открыть файл Excel, в котором они находятся. Вы можете сделать это, открыв приложение Excel и выбрав нужный файл через диалоговое окно открытия файла.
Шаг 2: Откройте вкладку «Разработчик» и выберите «Макросы»
После открытия файла Excel выберите вкладку «Разработчик» в верхней части экрана. Если у вас нет вкладки «Разработчик» в верхнем меню, вам нужно будет включить ее через настройки Excel. Затем нажмите на кнопку «Макросы», чтобы открыть список доступных макросов в файле.
Шаг 3: Выберите макросы, которые нужно удалить
В открывшемся списке макросов выберите те, которые вы хотите удалить. Вы можете выбрать один макрос или несколько макросов, удерживая клавишу Ctrl на клавиатуре и щелкнув на нужных макросах. После выбора макросов нажмите на кнопку «Удалить», чтобы удалить их из файла.
Примечание: Перед удалением макросов убедитесь, что вы выбрали правильные макросы и не удалите нежелательные элементы из файла.
Шаг 4: Сохраните файл без макросов
После удаления макросов сохраните файл без них, чтобы изменения были сохранены. Нажмите на кнопку «Сохранить» или выберите «Сохранить как», если вы хотите сохранить файл под другим именем или в другом формате.
Вот и все! Теперь вы знаете, как удалить макросы в Excel. Не забудьте проверить, что макросы действительно удалены и что ваш файл функционирует должным образом.
Откройте документ Excel
Перед тем как удалить макросы в Excel, вам необходимо открыть соответствующий документ, в котором содержатся макросы. Это можно сделать следующим образом:
- Запустите Excel на своем компьютере.
- Выберите «Открыть» в меню «Файл» или используйте комбинацию клавиш Ctrl + O.
- Настройте вид открытия файла, если это необходимо. Укажите путь к файлу, в котором находятся макросы, и выберите его.
- Нажмите кнопку «Открыть».
- После этого документ Excel будет загружен, и вы сможете начать процесс удаления макросов.
Обратите внимание, что перед удалением макросов рекомендуется создать резервную копию документа Excel, чтобы в случае ошибки или нежелательных результатов вы могли восстановить исходное состояние файла.
Перейдите во вкладку «Разработчик» в главном меню
Чтобы удалить макросы в Excel, необходимо выполнить следующие шаги:
В главном меню навигации найдите вкладку «Разработчик» и нажмите на нее.
Если вкладка «Разработчик» не отображается, то нужно включить ее отображение в настройках Excel.
Во вкладке «Разработчик» найдите группу инструментов «Код» или «Макросы» и нажмите на кнопку «Макросы».
В открывшемся окне «Макросы» выберите макрос, который вы хотите удалить, из списка доступных макросов.
Нажмите на кнопку «Удалить», чтобы удалить выбранный макрос.
Подтвердите удаление, если будет запрошено подтверждение.
Теперь вы успешно удалите макросы в Excel.
Нажмите на кнопку «Макросы» в разделе «Код» на панели инструментов
После того, как нажата кнопка «Макросы», появится дополнительное меню с доступными макросами в выбранном файле. Выберите макрос, который вы хотите удалить, и нажмите на него один раз, чтобы выделить его.
Наконец, щелкните на кнопку «Удалить» в нижней части меню. Всплывающее окно подтвердит удаление выбранного макроса. Для завершения процесса удаления макроса нажмите на кнопку «ОК».
Помните, что удаление макроса может быть необратимым, поэтому перед удалением убедитесь, что вы точно знаете, какие макросы вы хотите удалить.
Выберите макрос, который вы хотите удалить
Чтобы удалить макрос в Excel, необходимо выбрать конкретный макрос, который вы хотите удалить. Вам может понадобиться знать название макроса или иметь описание его функциональности.
Существует несколько способов выбрать макрос:
- Перейдите во вкладку «Разработка» в меню Excel и нажмите на кнопку «Макросы». В появившемся окне выберите нужный макрос.
- Используйте сочетание клавиш ALT + F8. Откроется диалоговое окно со списком макросов, где вы сможете выбрать нужный макрос.
- Если вы знаете название макроса, вы можете воспользоваться поиском. Нажмите CTRL + F и введите название макроса в поле поиска.
Осуществив выбор нужного макроса, вы готовы удалить его. Продолжайте чтение, чтобы узнать, как выполнить эту операцию.
Как удалить макросы в книге?
Рано или поздно у разработчиков возникает вопрос: как удалить макросы, в том числе и из книги, в которой эти макросы расположены? Да еще так, чтобы об этом никто ничего не узнал?
Для изменения кодов программно необходимо, чтобы было проставлено доверие к объектной модели проекта VBA и изменяемый проект не должен быть защищен. Подробнее читайте в статье: Что необходимо для внесения изменений в проект VBA(макросы) программно
Без этого будет невозможно программное вмешательство в проект VBA.- Удалить все макросы из активной книги
- Удалить отдельный модуль(Module), Форму(UserForm), Код листа или книги
- Удалить отдельную процедуру из модуля
- Удалить все макросы вручную
УДАЛИТЬ ВСЕ МАКРОСЫ ИЗ АКТИВНОЙ КНИГИ
Sub Delete_Macroses() Dim oVBComponent As Object, lCountLines As Long 'Проверяем, защищен проект или нет If ActiveWorkbook.VBProject.Protection = 1 Then MsgBox "VBProject выбранной книги защищён." & vbCrLf & _ " Компоненты не будут удалены.", vbExclamation, "Отмена выполнения" Exit Sub End If For Each oVBComponent In ActiveWorkbook.VBProject.VBComponents On Error Resume Next With oVBComponent Select Case .Type Case 1 'Модули .Collection.Remove oVBComponent Case 2 'Модули Класса .Collection.Remove oVBComponent Case 3 'Формы .Collection.Remove oVBComponent Case 100 'ЭтаКнига, Листы lCountLines = .CodeModule.CountOfLines .CodeModule.DeleteLines 1, lCountLines End Select End With Next Set oVBComponent = Nothing End Sub
Sub Delete_Macroses() Dim oVBComponent As Object, lCountLines As Long ‘Проверяем, защищен проект или нет If ActiveWorkbook.VBProject.Protection = 1 Then MsgBox «VBProject выбранной книги защищён.» & vbCrLf & _ » Компоненты не будут удалены.», vbExclamation, «Отмена выполнения» Exit Sub End If For Each oVBComponent In ActiveWorkbook.VBProject.VBComponents On Error Resume Next With oVBComponent Select Case .Type Case 1 ‘Модули .Collection.Remove oVBComponent Case 2 ‘Модули Класса .Collection.Remove oVBComponent Case 3 ‘Формы .Collection.Remove oVBComponent Case 100 ‘ЭтаКнига, Листы lCountLines = .CodeModule.CountOfLines .CodeModule.DeleteLines 1, lCountLines End Select End With Next Set oVBComponent = Nothing End Sub
Так же можно удалить макросы только из одного компонента(листа или книги или модуля).
УДАЛИТЬ ОТДЕЛЬНЫЙ МОДУЛЬ(Module), ФОРМУ(UserForm) КОД ЛИСТА ИЛИ КНИГИ
Удалить модуль/форму целиком достаточно просто:ActiveWorkbook.VBProject.VBComponents("UserForm1").Collection.Remove ActiveWorkbook.VBProject.VBComponents("UserForm1") ActiveWorkbook.VBProject.VBComponents("Module1").Collection.Remove ActiveWorkbook.VBProject.VBComponents("Module1")
ActiveWorkbook.VBProject.VBComponents(«UserForm1»).Collection.Remove ActiveWorkbook.VBProject.VBComponents(«UserForm1») ActiveWorkbook.VBProject.VBComponents(«Module1»).Collection.Remove ActiveWorkbook.VBProject.VBComponents(«Module1»)
С листами несколько сложнее — если удалить компонент полностью, то будут потеряны и все данные на листе, а не только макросы. Поэтому удалять необходимо только код внутри листа. В качестве примера возьмем Лист1:
Sub Delete_Macroses_In_One_Comp() Dim oVBComponent As Object, lCountLines As Long Set oVBComponent = ActiveWorkbook.VBProject.VBComponents("Лист1") With oVBComponent lCountLines = .CodeModule.CountOfLines .CodeModule.DeleteLines 1, lCountLines End With Set oVBComponent = Nothing End Sub
Sub Delete_Macroses_In_One_Comp() Dim oVBComponent As Object, lCountLines As Long Set oVBComponent = ActiveWorkbook.VBProject.VBComponents(«Лист1») With oVBComponent lCountLines = .CodeModule.CountOfLines .CodeModule.DeleteLines 1, lCountLines End With Set oVBComponent = Nothing End Sub
Здесь тоже есть небольшая поправка: Лист1 — это кодовое(внутреннее имя) листа. На ярлычке имя листа может отображаться как угодно, а вот внутреннее. Его можно лучше подглядеть через редактор VBA:
Подробнее про кодовое имя листа можно прочитать в этой статье: Кодовое имя листа — что это и зачем нужно? Какие плюсы и минусы?
Чтобы удалить коды из модуля книги необходимо вместо Лист1 указать ЭтаКнига(для англ.версии — ThisWorkbook).УДАЛИТЬ ОТДЕЛЬНУЮ ПРОЦЕДУРУ ИЗ МОДУЛЯ
Если же Вам необходимо удалить лишь определенную процедуру из модуля формы, стандартного модуля, модуля листа или книги, то сделать это чуть сложнее. Рассмотрим на примере удаления процедуры с именем «Code2» , расположенной в стандартном модуле «Module2»Sub Delete_Sub_From_Module() Dim lCountLines As Long, li As Long, lStartLine As Long, lProcLineCount As Long Dim sCodeName As String, sProcName As String With ActiveWorkbook.VBProject.VBComponents("Module2") 'получаем кол-во строк кода в модуле lCountLines = .CodeModule.CountOfLines 'получаем первую строку с кодом, исключая строки декларирования функции и опций модуля lStartLine = .CodeModule.CountOfDeclarationLines + 1 'цикл по всем строкам кода внутри модуля For li = lStartLine To lCountLines 'получаем имя процедуры/функции, внутри которой строка кода sProcName = .CodeModule.ProcOfLine(li, 0) 'если имя процедуры совпадает с тем, которое нам нужно If sProcName = "Code2" Then 'узнаем кол-во строк процедуры/функции lProcLineCount = .CodeModule.ProcCountLines(sProcName, 0) 'удаляем процедуру/функцию .CodeModule.DeleteLines li, lProcLineCount - 1 Exit For End If Next li End With End Sub
Sub Delete_Sub_From_Module() Dim lCountLines As Long, li As Long, lStartLine As Long, lProcLineCount As Long Dim sCodeName As String, sProcName As String With ActiveWorkbook.VBProject.VBComponents(«Module2») ‘получаем кол-во строк кода в модуле lCountLines = .CodeModule.CountOfLines ‘получаем первую строку с кодом, исключая строки декларирования функции и опций модуля lStartLine = .CodeModule.CountOfDeclarationLines + 1 ‘цикл по всем строкам кода внутри модуля For li = lStartLine To lCountLines ‘получаем имя процедуры/функции, внутри которой строка кода sProcName = .CodeModule.ProcOfLine(li, 0) ‘если имя процедуры совпадает с тем, которое нам нужно If sProcName = «Code2» Then ‘узнаем кол-во строк процедуры/функции lProcLineCount = .CodeModule.ProcCountLines(sProcName, 0) ‘удаляем процедуру/функцию .CodeModule.DeleteLines li, lProcLineCount — 1 Exit For End If Next li End With End Sub
Здесь стоит обратить внимание на один момент: данный поиск чувствителен к регистру. Т.е. если требуется удалить процедуру «Code2» , то и к сравнению надо вписывать имя именно так. Если записать «code2» , то совпадения найдено не будет и процедура не будет удалена. Во избежание подобного можно приводить имена к одному регистру:
If LCase(sProcName) = LCase(«Code2») ThenУДАЛИТЬ ВСЕ МАКРОСЫ ВРУЧНУЮ
Еще хочу добавить, что если надо не скрыто, а просто быстро удалить все макросы из книги и Вы счастливый обладатель Excel версии 2007 и выше, то всего лишь необходимо книгу, из которой хотите удалить макросы, Сохранить как -обычная Книга Excel ( Файл (File) (или кнопка Меню для 2007 Excel) — Сохранить как (Save As) — Книга Excel (Excel Workbook) ).Программно это можно сделать простым кодом:
Sub SaveBookWithoutMacro() ActiveWorkbook.SaveAs Filename:="C:\Книга1.xlsx", FileFormat:=51 End Sub
Sub SaveBookWithoutMacro() ActiveWorkbook.SaveAs Filename:=»C:\Книга1.xlsx», FileFormat:=51 End Sub
Отдельную роль здесь играет параметр FileFormat , которому мы назначаем значение 51. По сути 51 — это значение константы xlOpenXMLWorkbook , которая говорит VBA, что файл надо сохранить в формате обычной книги Excel без поддержки макросов. Работает только начиная с 2007 Excel.
Для тех же, кто все еще использует офис 2003 и ранее и хочет удалить коды и макросы вручную — придется удалять каждый модуль из проекта и каждый код из модулей листов и книг поочередно, руками.
Статья помогла? Поделись ссылкой с друзьями!
покупка
Иногда вы записываете и создаете макросы в Excel или получаете книги с макросами. В некоторых случаях вам нужно будет удалить все макросы из книги. Здесь мы расскажем о двух способах быстрого и удобного удаления всех макросов в Excel.
Удалите все макросы один за другим с помощью команды Macro
Обычно мы можем удалить макросы один за другим с помощью команды Macro в Excel.
Шаг 1. Пожалуйста, нажмите Вид > Макрос > Макросы просмотра, см. снимок экрана:

Шаг 2: Затем вы попадаете в Макрос диалоговое окно. Выберите макрос, который вы хотите удалить, и выберите Все открытые книги из раскрывающегося списка в Макросы в площадь. Смотрите скриншот:

Шаг 3: нажмите Удалить кнопку, и выбранный макрос будет удален, и вы можете повторить шаги 2 и 3, чтобы удалить другие макросы один за другим.
Эта команда макроса может каждый раз удалять только один макрос. Хотя не требуется закрывать диалоговое окно «Макрос», мы должны удалить все макросы один за другим, повторяя щелчки мышью. Это будет нормально для нескольких макросов, но удаление большого количества с помощью этого метода должно быть утомительным.
Удалить все макросы из текущей книги с помощью Kutools for Excel
Kutools for Excel‘s Удалить все макросы позволяет удалить все макросы из всей книги одновременно одним щелчком мыши.
Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.
1: нажмите Кутулс > Удалить > Удалить все макросы, см. снимок экрана:

2. Затем появится окно с подсказкой, в котором сообщается, что все макросы были успешно удалены. Нажмите кнопку ОК.

Внимание: Если Доверять доступ к объектной модели проекта VBA Если опция не включена в вашей книге, появится диалоговое окно с напоминанием о необходимости включить эту опцию перед удалением всех макросов из текущей книги.

Если вы хотите получить бесплатную пробную версию ( 30 -день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
Пакетное удаление всех макросов из нескольких книг с помощью Kutools for Excel
Помимо удаления всех макросов в книге с помощью Kutools for Excel, вы также можете одновременно удалить все макросы из нескольких книг с помощью Пакетное удаление всех макросов полезности Kutools for Excel.
1. Нажмите Кутулс > Удалить > Пакетное удаление всех макросов чтобы включить эту утилиту.

2. в Удалить все макросы В диалоговом окне вы можете увидеть, что все открытые книги отображаются в диалоговом окне. Если вы хотите удалить все макросы из других книг, нажмите кнопку Добавить и нажмите кнопку Файл or Папка возможность выбрать книги, из которых нужно удалить макросы. Смотрите скриншот:

Внимание: Вы можете нажать кнопку, чтобы удалить ненужную книгу.

3. Теперь все выбранные книги отображаются в Удалить все макросы диалоговое окно, щелкните OK кнопку, чтобы начать удаление. Смотрите скриншот:

4. Затем появится диалоговое окно, в котором указано, сколько макросов было удалено, щелкните значок OK кнопку.

Теперь все макросы в выбранных книгах успешно удалены. И вы получите новую книгу с отчетом об удаленном списке внутри.

Если вы хотите получить бесплатную пробную версию ( 30 -день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.