Хитрости »
Основные понятия (22)Здесь собраны статьи, в которых разъясняются базовые понятия работы в Excel и VBA, а так же проблемы, с которыми сталкивается большинство начинающих
Сводные таблицы и анализ данных (5) Раздел поможет изучить сводные таблицы и научиться их использовать "на полную"
Графики и диаграммы (4) Раздел поможет научиться создавать диаграммы и графики в Excel, в том числе нестандартные
Работа с VB проектом (10) С помощью статей раздела вы научитесь создавать процедуры программно и выполнять различные операции с объектами самого VBA
Power BI и Power Query (5) Здесь собраны статьи, раскрывающие различные возможности мощнейшего инструмента для визуализаций бизнесс-процессов Power BI и надстройки для Excel Power Query
Условное форматирование (5) Этот раздел поможет поближе познакомиться с Условным форматированием на примерах различных ситуаций
Списки и диапазоны (5) Статьи, посвященные работе не только с выпадающими списками, но и с диапазонами и хитростями их применения в рабочих файлах
Макросы(VBA процедуры) (59) Статьи раздела направлены на изучение VBA с детальным разбором кодов. Множество статей с примерами кодов под всевозможные ситуации с комментариями и пояснениями
Разное (34) Собраны статьи, которые не подходят ни под одну из представленных выше категорий или входят сразу в несколько. Но эти статье не менее полезные!

Как удалить макросы в книге?

 

Рано или поздно у разработчиков возникает вопрос: как удалить макросы, в том числе и из книги, в которой эти макросы расположены? Да еще так, чтобы об этом никто ничего не узнал?

Для изменения кодов программно необходимо, чтобы было проставлено доверие к объектной модели проекта VBA и изменяемый проект не должен быть защищен. Подробнее читайте в статье: Что необходимо для внесения изменений в проект VBA(макросы) программно
Без этого будет невозможно программное вмешательство в проект VBA.

УДАЛИТЬ ВСЕ МАКРОСЫ ИЗ АКТИВНОЙ КНИГИ

Так же можно удалить макросы только из одного компонента(листа или книги или модуля).
 
УДАЛИТЬ ОТДЕЛЬНЫЙ МОДУЛЬ(Module), ФОРМУ(UserForm) КОД ЛИСТА ИЛИ КНИГИ
Удалить модуль/форму целиком достаточно просто:

С листами несколько сложнее - если удалить компонент полностью, то будут потеряны и все данные на листе, а не только макросы. Поэтому удалять необходимо только код внутри листа. В качестве примера возьмем Лист1:

Здесь тоже есть небольшая поправка: Лист1 - это кодовое(внутреннее имя) листа. На ярлычке имя листа может отображаться как угодно, а вот внутренее...Его можно лучше подглядеть через редактор VBA:

Чтобы удалить коды из модуля книги необходимо вместо Лист1 указать ЭтаКнига(для англ.версии - ThisWorkbook).

 
УДАЛИТЬ ПРОЦЕДУРУ ИЗ ТЕЛА МОДУЛЯ
Если же Вам необходимо удалить лишь определенную процедуру из модуля формы, стандартного модуля, модуля листа или книги, то сделать это чуть сложнее. Рассмотрим на примере удаления процедуры с именем "Code2", расположенной в стандартном модуле "Module2"

Здесь стоит обратить внимание на один момент: данный поиск чуствителен к регистру. Т.е. если требуется удалить процедуру "Code2", то и к сравнению надо вписывать имя именно так. Если записать "code2", то совпадения найдено не будет и процедура не будет удалена. Во избежание подобного можно приводить имена к одному регистру:
If LCase(sProcName) = LCase("Code2") Then


УДАЛИТЬ ВСЕ МАКРОСЫ ВРУЧНУЮ
Еще хочу добавить, что если Вам надо не скрыто, а просто быстро удалить все макросы из книги и Вы счастливый обладатель Excel версии 2007 и выше, то Вам всего лишь необходимо книгу, из которой хотите удалить макросы, Сохранить как-обычная Книга Excel(Меню-Сохранить как-Книга Excel).

Программно это можно сделать простым кодом:

Для тех же, кто все еще использует офис 2003 и ранее и хочет удалить коды и макросы вручную - придется удалять каждый модуль из проекта и каждый код из модулей листов и книг поочередно, руками.

Также см.:
Копирование модулей и форм из одной книги в другую
Как программно снять пароль с VBA проекта?


Статья помогла? Сделай твит, поделись ссылкой с друзьями!

Поиск по меткам

Access Multex Outlook Power BI Power Query и Power BI VBA работа в редакторе VBA управление кодами Бесплатные надстройки Дата и время Диаграммы и графики Записки Защита Защита данных Интернет Картинки и объекты Листы и книги Макросы и VBA Настройка Поиск данных Почта Программы Работа с приложениями Работа с файлами Разработка приложений Сводные таблицы Списки Тренинги и вебинары Финансовые Форматирование Формулы и функции Функции Excel Функции VBA Ячейки и диапазоны акции MulTEx вебинар ссылки статьи тренинг
Обсуждение: оставлено 9 коммент.
  1. Roman:

    а если макросы были завязаны на кнопку(и) можно ли удалить вместе с кодом и саму кнопку?

  2. Что мешает записать макрорекордером действие удаления кнопки? В принципе это не имеет отношения к данной теме. Но делается примерно так:
    ActiveSheet.Shapes("Имя кнопки").Delete

  3. Roman:

    Вышеизложеный код удяляет коды (уж простите за тафтологию) только из листов, а вот из вложения "Эта книга" даже и не думает . Какнибудь можно обойти этот ньюанс?

  4. Не верю. Самый первый код удаляет ВСЕ коды из модулей листов, модуля книги, а так же все пользовательские формы и модули. А в последнем коде я честно указал, что удаление произойдет только для Лист1

  5. Roman:

    Дмитрий(Админ) :Не верю. Самый первый код удаляет ВСЕ коды из модулей листов, модуля книги, а так же все пользовательские формы и модули. А в последнем коде я честно указал, что удаление произойдет только для Лист1

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

  6. Алексей:

    Благодарю Вас за ценную информацию. Как среднестатистическому юзеру понадобился только последний абзац. :)

  7. Мотя:

    С П А С И Б О!

  8. Михаил:

    Спасибо - очень пригодилось Использую " Удалить процедуру из тела Модуля".
    Только у меня пришлось изменить строку

    - убрал вычитание единицы, иначе оставалась последняя строка процедуры
    Еще раз спасибо!

  9. Мотя:

    Автору "УДАЛИТЬ ВСЕ МАКРОСЫ ИЗ АКТИВНОЙ КНИГИ" - СПАСИБО!
    Долго "рыла" Интернет в поисках готовенького макроса.
    И вдруг - Его Величество Случай!
    Все мои "хотелки" - как подарок - "на халяву"!
    Манипулируешь CASE-ми и "дело в шляпе"!!!
    С П А С И Б О и У Д А Ч И!!!

Поделитесь своим мнением

Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме - добро пожаловать на Форум


Для оформления сообщений Вы можете использовать следующие тэги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Логин
Наши партнеры
Перейти
Перейти
Счетчики
Анализ сайта

Яндекс.Метрика
© 2016 Excel для всех  Войти