Как удалить макрос в excel
26.03.2015 13:22:43
Скопирован лист1 (с созданием копии) в котором содержится определённый макрос (то есть получается, что созданный Лист1(2) так же содержит макрос под таким же именем как и лист1.
Как удалить макрос с активного листа, которым является Лист1(2), не затрагивая макроса который находиться в Листе1? Имя (имена) удаляемого макроса должно быть прописано в коде макроса убийцы.
Есть следующий код единственно, который нашла на форуме от Pavel55:
Sub DeleteProcedure() Dim iProcedure As String Dim iVBComponent As Object Dim iStartLine As Long Dim iCountLines As Long Dim Killed As Boolean iProcedure = InputBox(Prompt:="Введите имя макроса," & _ vbCrLf & "который требуется удалить", Title:="Удаление макроса";) If iProcedure$ = "" Then _ MsgBox "Вы не указали имя ненужного макроса", 48, "Ошибка": Exit Sub For Each iVBComponent In ActiveWorkbook.VBProject.VBComponents With iVBComponent.CodeModule If .Find("Sub " & _ iProcedure$, 1, 1, .CountOfLines, 1) = True Then iStartLine& = .ProcStartLine(iProcedure$, 0) iCountLines& = .ProcCountLines(iProcedure$, 0) .DeleteLines iStartLine&, iCountLines& Killed = True Exit For End If End With Next If Killed = True Then MsgBox "Макрос " & iProcedure$ & " удалён!", 64, "Удаление макроса" Else MsgBox "Макрос " & iProcedure$ & " не найден!", 48, "Удаление макроса" End If End Sub
Но после копирования листа и запуска этого макроса, удаляется макрос в Листе 1, но никак не в активном Листе1(2).
Так же этот макрос выводит форму для ввода имени удаляемого макроса, что совершенно ненужно. Помогите решить задачу плиииз!
Пользователь
Сообщений: 15596 Регистрация: 10.01.2013
покупка
Microsoft Excel предлагает мощную функцию в виде макросов, которая может автоматизировать повторяющиеся задачи и выполнять многие операции, которые не могут быть выполнены встроенными функциями Excel. Однако бывают случаи, когда эти макросы могут стать избыточными или даже представлять потенциальную угрозу безопасности, особенно при совместном использовании вашей книги с другими. В такие моменты становится важным понимание того, как безопасно и эффективно удалять макросы. Это руководство создано, чтобы познакомить вас с различными методами удаления макросов из книг Excel, гарантируя, что при необходимости у вас будет чистый и оптимизированный файл.
Что нужно знать перед удалением макросов в Excel
Удалить определенный макрос
Удалить все макросы из книги
- Сохранив файл в формате xlsx
- С помощью опции в один клик, предоставляемой Kutools
Удалить все макросы из нескольких книг
- Удалить макросы из книг в папке с VBA
- Удалите макросы из любых конкретных книг с помощью Kutools
Что нужно знать перед удалением макросов в Excel
- При открытии книги с поддержкой макросов и попытке удалить макросы сначала необходимо нажать кнопку Включить контент кнопку в вашей книге. Это необходимо, прежде чем вы сможете приступить к их удалению.
Примечание: Если вы не видите эту кнопку, это зеленый свет для удаления макросов. Причиной его отсутствия может быть то, что вы сами создали книгу со встроенными макросами и сохранили ее. При повторном открытии этой книги на том же компьютере с неизмененными настройками Excel Включить контент кнопка часто не появляется. Это связано с тем, что файл получен из надежного источника (вы) и находится в надежном месте (ваш компьютер).
Удалить определенный макрос
Шаг 1. Откройте диалоговое окно «Макрос».
Перейдите в Застройщик И выберите Макрос для открытия Макрос диалоговое окно. (Если Застройщик вкладка не отображается в Excel, см. примечание после шагов.)

- Если вы используете Excel 2013 или более позднюю версию, Макрос кнопку также можно найти в Вид меню.
- Любители ярлыков могут напрямую нажать Alt + F8 чтобы получить доступ к Макрос диалоговое окно.
Шаг 2. Выберите и удалите конкретный макрос.

- Развернуть «Макросы внутри» раскрывающееся меню и выберите желаемое место, откуда удалить макросы.
- Из списка макросов выберите тот, который хотите удалить.
- Нажмите Удалить.
Ноты:
- Чтобы добавить Застройщик вкладку на ленту в Excel, сделайте следующее:
- Щелкните правой кнопкой мыши в любом месте ленты и выберите Настройте ленту….

- В списке Основные вкладки в правой части появившегося окна установите флажок рядом с Застройщик и нажмите OK.

- Если вы собираетесь удалить несколько макросов, вам придется повторить описанный выше процесс для каждого отдельного макроса. Инструкции по пакетному удалению всех макросов см. в следующих разделах.
Удалить все макросы из книги
В случаях, когда вам необходимо удалить все макросы из книги, есть два способа:
Удалите все макросы из книги, сохранив файл в формате xlsx.
Формат книги Excel (*.xlsx) по своей сути не поддерживает макросы. Таким образом, сохранение книги в этом конкретном формате приведет к автоматическому удалению всех встроенных макросов. Чтобы выполнить этот метод, пожалуйста, действуйте следующим образом:
- Перейдите в Файл >Сохранить как.
- Разверните раскрывающееся меню типа файла и выберите «Книга Excel (* .xlsx)формат.
Наконечник: Вы можете ввести новое имя для файла .xlsx в текстовом поле над раскрывающимся меню. Чтобы сохранить файл в другом месте, нажмите Приложения.

Примечание: Так, Сохранить как Интерфейс может отличаться в разных версиях Excel. Если вы не видите правую панель, как показано выше, где доступен выбор формата файла, вы всегда можете нажать Приложения а затем выберите формат «Книга Excel (*.xlsx)».

В результате сохраняется новый файл в формате «.xlsx» без макросов. Этот файл .xlsx примет имя исходного файла .xlsm и сохранится в том же месте.
Примечание: Этот метод не удаляет пользовательские формы, листы диалогов Excel 5/95 и подобные элементы. Если вы хотите устранить их, воспользуйтесь следующим методом.
Удалите все макросы из книги с помощью опции одним щелчком мыши, предоставляемой Kutools.
Kutools for Excel, расширенная надстройка Excel, предоставляет пользователям возможность одним щелчком мыши легко удалить все макросы, встроенные в книгу. Одним щелчком мыши вы можете очистить модули VBA, пользовательские формы, диалоговые листы Excel 5/95 и листы макросов Excel 4 XLM.
Открыв книгу, содержащую макросы, которые хотите удалить, перейдите к Кутулс Вкладка и выберите Удалить > Удалить все макросы. И вуаля, все готово!

Примечание: Хотите получить доступ к этой функции? Скачать Kutools for Excel сейчас! Помимо этого, Kutools может похвастаться множеством других функций и предлагает 300-дневную пробную версию. Не ждите, попробуйте сегодня!
Удалить все макросы из нескольких книг
Столкнувшись с задачей удаления макросов из нескольких книг, вы можете использовать два подхода:
Удалить все макросы из книг в папке с VBA
В этом разделе я покажу, как эффективно удалять макросы из всех книг в указанной папке с помощью макроса VBA.
- Перейдите в Файл >Опции >Центр управления >Параметры центра >Настройки макроса, затем выберите «Доверять доступ к объектной модели проекта VBA«.
- Убедитесь, что при выполнении этого VBA ни одна книга в указанной папке не открыта. Запуск его с открытыми книгами может привести к ошибкам.
Шаг 1: Создайте новый модуль

- Нажмите Alt + F11 для открытия Visual Basic для приложений (VBA) редактор.
- Нажмите Вставить >Модули для создания нового модуля.
Шаг 2: Скопируйте код VBA в окно модуля
Скопируйте приведенный ниже код VBA и вставьте его в открывшееся окно. Модули окно.
Sub RemoveMacrosFromWorkbooks() ' Update by ExtendOffice Dim wb As Workbook Dim FolderPath As String Dim filename As String Dim VBComp As Object Dim VBProj As Object With Application.FileDialog(msoFileDialogFolderPicker) .title = "Select a folder" .Show If .SelectedItems.Count = 0 Then MsgBox "No folder selected. The procedure will exit.", vbExclamation Exit Sub End If FolderPath = .SelectedItems(1) End With If Right(FolderPath, 1) <> "\" Then FolderPath = FolderPath + "\" filename = Dir(FolderPath & "*.xls*") Application.ScreenUpdating = False Application.DisplayAlerts = False On Error Resume Next Do While filename <> "" Set wb = Workbooks.Open(FolderPath & filename) If wb.HasVBProject Then Set VBProj = wb.VBProject For Each VBComp In VBProj.VBComponents VBProj.VBComponents.Remove VBComp Next VBComp End If wb.Close SaveChanges:=True filename = Dir Loop Application.ScreenUpdating = True Application.DisplayAlerts = True MsgBox "Macros removal completed!", vbInformation End Sub
Шаг 3: Запустите код VBA
- В Модули окно, нажмите F5 или нажмите
кнопка для выполнения вставленного кода. - В Выберите папку в появившемся окне выберите папку, содержащую книги, из которых вы хотите удалить макросы, и нажмите OK.

После того, как макрос завершит обработку всех файлов Excel в выбранной папке и удалит из них макросы, вы увидите сообщение «Удаление макросов завершено!» окно сообщения.

Ноты:
- Этот метод не удаляет пользовательские формы, листы диалогов Excel 5/95 и подобные элементы. Если вы хотите устранить их, воспользуйтесь следующим методом.
- Активация параметра Доверительный доступ к объектной модели проекта VBA может представлять угрозу безопасности. Рекомендуется включать эту опцию только во время выполнения этого кода. Убедитесь, что вы отменили выбор «Доверять доступ к объектной модели проекта VBA«, как только код завершит свое выполнение.
Удалите все макросы из любых конкретных книг с помощью Kutools
Kutools for Excel предоставляет удобный способ удаления всех макросов из нескольких книг. Для тех, кто колеблется или не знаком с методами VBA, Kutools служит идеальной альтернативой. Имея в своем распоряжении этот инструмент, можно легко удалить модули VBA, пользовательские формы, диалоговые листы Excel 5/95 и листы макросов Excel 4 XLM.
Примечание: Чтобы запустить эту функцию, вам необходимо доверить доступ к объектной модели проекта VBA. В Excel перейдите к Файл > Опции > Центр управления > Параметры центра > Настройки макроса, затем выберите «Доверять доступ к объектной модели проекта VBA«.
- Выберите Кутулс >Удалить >Пакетное удаление всех макросов.

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


Появится новое диалоговое окно, в котором будет указано, сколько книг Kutools обработало для удаления макросов. После нажатия OK, будет создана автоматизированная сводная книга для описания результатов.
Ноты:
- Хотите получить доступ к этой функции? Скачать Kutools for Excel сейчас! Наряду с этим Kutools предлагает более 300 других функций. Благодаря 30-дневной бесплатной пробной версии нет причин ждать. Попробуйте сегодня!
- Активация параметра Доверительный доступ к объектной модели проекта VBA может представлять угрозу безопасности. Рекомендуется включать эту опцию только во время работы этой функции. Убедитесь, что вы отменили выбор «Доверять доступ к объектной модели проекта VBA«, как только функция завершит свое выполнение.
Выше приведен весь соответствующий контент, связанный с удалением макросов в Excel. Я надеюсь, что этот урок окажется для вас полезным. Если вы хотите узнать больше советов и рекомендаций по Excel, Пожалуйста, нажмите здесь чтобы получить доступ к нашей обширной коллекции из более чем тысячи учебных пособий.
Статьи по теме
- Как запустить макрос на основе значения ячейки в Excel?
- Как запустить макрос при изменении значения ячейки в Excel?
- Как запустить один и тот же макрос на нескольких листах одновременно в Excel?
Как удалить макросы из книги Excel (3 простых способа)

Использование макросов 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, который содержит несколько макросов.
Ниже приведены инструкции по удалению макроса из этой книги:
- Щелкните вкладку Разработчик (если вы не видите вкладку Разработчик, см. Примечание желтым после шагов)
- Щелкните кнопку Macro. Откроется диалоговое окно «Макросы», в котором отображаются все макросы в книге.
- Убедитесь, что эта книга выбрана в раскрывающемся списке «Макрос в».
- Выберите имя макроса, который вы хотите удалить из списка макросов.
- Щелкните кнопку Удалить. Это удалит выбранный макрос
Если вы хотите удалить другие (или все) макросы, повторите шаги 4 и 5.
Примечание. Если вы не видите вкладку разработчика, щелкните здесь, чтобы узнать, как отобразить вкладку разработчика на ленте в Excel. Кроме того, вы также можете использовать сочетание клавиш ALT + 8, чтобы открыть диалоговое окно «Макросы».
Кроме того, вы также можете щелкнуть вкладку «Представления», щелкнуть раскрывающийся список «Макросы» и затем выбрать параметр «Просмотр макросов». Это также откроет диалог макроса.
Хотя этот метод отлично работает, он удаляет только макросы, хранящиеся в модуле редактора Visual Basic. Если у вас есть макросы событий (в определенных листах или ThisWorkbook) или макросы в вашей личной книге макросов, вы не можете удалить их с помощью этого метода.
Удалите модуль с макросом
Другой способ удалить макросы — перейти в редактор Visual Basic и удалить макросы оттуда.
Этот метод дает вам максимальный контроль, поскольку вы можете получить доступ ко всем макросам (будь то модуль, объекты или ваша личная книга макросов).
Вот шаги, чтобы удалить макрос из редактора Visual Basic:
- Щелкните вкладку Разработчик на ленте.
- Нажмите на опцию Visual Basic (или воспользуйтесь сочетанием клавиш — ALT + F11)
- В редакторе VB у вас будут все объекты книги в Project Explorer. Если вы не видите Project Explorer, выберите в меню опцию View, затем щелкните Project Explorer.
- В обозревателе проектов дважды щелкните объект кода макроса. Это может быть форма, объект рабочего листа или ThisWorkbook.
- В открывшемся окне кода удалите макросы, которые хотите удалить. Если вы хотите удалить все, выберите все и нажмите клавишу «Удалить.
Если у вас есть закодированная форма, которую вы хотите удалить, вы можете щелкнуть правой кнопкой мыши объект формы и выбрать опцию «Удалить форму».
Итак, есть три способа удалить макросы из книги Microsoft Excel.
Надеюсь, вы нашли этот урок полезным!
Удалить все макросы (код VBA) из текущего файла
× The language used in menus and dialogs (Язык, используемый в меню и диалоговых окнах) in ASAP Utilities can be set to «Русский (Russian)».
Файл и система › 18. Удалить все макросы (код VBA) из текущего файла
Эта утилита удаляет все макросы (код vba) из текущей книги.
Это может быть полезным, если вы хотите очистить вашу книгу, прежде чем передать ее кому-то другому.
Эта утилита также полезна в том случае, когда вы получаете предупреждение о наличии макроса при открытии книги, но при этом не используете макросы из файла.
Примечание.
Эта утилита только удалит макросы в проекте VBA. Листы с макросами Excel 4.0 и диалоговые окна Excel 5.0 не удаляются.
Запуск этой утилиты
- Нажмите кнопку ASAP Utilities › Файл и система › 18. Удалить все макросы (код VBA) из текущего файла
- Укажите сочетание клавиш: ASAP Utilities › Избранное и сочетания клавиш › Редактировать избранное и сочетания клавиш.
