Удаление макроса макросом |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Содержание:
- Удалите все макросы, сохранив файл в формате 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.
Надеюсь, вы нашли этот урок полезным!
Хитрости »
6 Июнь 2011 79254 просмотров
Как удалить макросы в книге?
Рано или поздно у разработчиков возникает вопрос: как удалить макросы, в том числе и из книги, в которой эти макросы расположены? Да еще так, чтобы об этом никто ничего не узнал?
Для изменения кодов программно необходимо, чтобы было проставлено доверие к объектной модели проекта 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
Так же можно удалить макросы только из одного компонента(листа или книги или модуля).
УДАЛИТЬ ОТДЕЛЬНЫЙ МОДУЛЬ(Module), ФОРМУ(UserForm) КОД ЛИСТА ИЛИ КНИГИ
Удалить модуль/форму целиком достаточно просто:
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
Здесь тоже есть небольшая поправка: Лист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
Здесь стоит обратить внимание на один момент: данный поиск чувствителен к регистру. Т.е. если требуется удалить процедуру "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
Отдельную роль здесь играет параметр FileFormat, которому мы назначаем значение 51. По сути 51 — это значение константы xlOpenXMLWorkbook, которая говорит VBA, что файл надо сохранить в формате обычной книги Excel без поддержки макросов. Работает только начиная с 2007 Excel.
Для тех же, кто все еще использует офис 2003 и ранее и хочет удалить коды и макросы вручную — придется удалять каждый модуль из проекта и каждый код из модулей листов и книг поочередно, руками.
Также см.:
Копирование модулей и форм из одной книги в другую
Как программно снять пароль с VBA проекта?
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
‘УДАЛИТЬ ВСЕ МАКРОСЫ ИЗ АКТИВНОЙ КНИГИ
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»)
‘С листами несколько сложнее — если удалить компонент полностью, то будут потеряны и все данные на листе, а не только макросы.
‘Поэтому удалять ‘необходимо только код внутри листа. В качестве примера возьмем Лист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
УДАЛИТЬ ПРОЦЕДУРУ ИЗ ТЕЛА МОДУЛЯ
Если же Вам необходимо удалить лишь определенную процедуру из модуля формы, стандартного модуля, модуля листа или книги, то сделать это чуть сложнее. Рассмотрим на примере удаления процедуры с именем «Code2», расположенной в стандартном модуле «Module2»
Здесь стоит обратить внимание на один момент: данный поиск чуствителен к регистру. Т.е. если требуется удалить процедуру «Code2», то и к сравнению надо вписывать имя именно так. Если записать «code2», то совпадения найдено не будет и процедура не будет удалена. Во избежание подобного можно приводить имена к одному регистру:
If LCase(sProcName) = LCase(«Code2») Then
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
li = li + lProcLineCount
Next li
End With
End Sub
Чтобы удалить все макросы, просто выберите первый макрос, нажмите кнопку SHIFT и выберите последнее имя макроса. Нажмите кнопку Удалить в правой части диалогового окна. Когда вас спросят, уверены ли вы, что хотите удалить выбранные макросы, нажмите Да. Вы должны найти все выбранные вами макросы удаленными из списка.
Чтобы очистить список макросов, просто отобразить диалоговое окно Macros (просто нажмите Alt + F8). По отдельности выберите каждый макрос, который вы хотите удалить, а затем нажмите кнопку «Удалить». Когда вы закончите удаление общих MacroN, вы также должны проверить названные макросы.
Как очистить все макросы в Excel? Интернет, игры, технологии
Безопасность макросов Excel — это защита от вирусов, которые могут проникнуть в компьютер вместе с макросами. Безопасность макросов значительно изменилась со времени выхода в свет Excel 2003, поэтому в рамках данной темы особенности старых и новых версий Excel будут рассмотрены раздельно:
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
При открытии книги Excel не уведомляет о том, что эта книга содержит макросы, поэтому пользователь может не понять причину, по которой книга Excel не работает так, как должна. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
Следующий способ, как можно удалить макрос в Excel, заключается в использовании надстройки – специальной программы, которая устанавливается отдельно и содержит в себе несколько модулей для выполнения различных функций. Одной из таких надстроек является Kutools. С помощью данной программы можно одновременно удалить все макросы Excel.
Как удалить макросы в excel 2003
- Найдите группу «Код» на вкладке «Разработчик» на ленте.
- В группе «Код» на вкладке «Разработчик» нажмите кнопку «Макросы».
- В диалоговом окне «Макрос» в списке «Имя макроса» выберите макрос, который нужно удалить.
- Выберите Удалить.
- В появившемся окне сообщения выберите Да.
Нажмите Alt + F11, в окне «Проект — Проект VBA» слева вы увидите модули в разделе «Проект VBA». Щелкните его правой кнопкой мыши и выберите Удалить модуль (1 или 2 и т. Д.). как вы сказали, вам не нужен макрос в вашей книге, поэтому, если вы видите другие «Модули», удалите и их. Затем выберите НЕТ, спрашивая, хотите ли вы его экспортировать.
Где найти параметры безопасности макросов в Excel
Вот как можно просматривать или изменять параметры безопасности макросов в Excel 2007, 2010 или 2013:
Замечание: Потребуется перезапустить Excel, чтобы новые настройки безопасности макросов вступили в силу.
Microsoft по умолчанию присваивает некоторым расположениям статус надёжных, их список хранится в разделе параметров безопасности Excel. Открыть список надёжных расположений можно так:
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
Ознакомьтесь с уроками, приведёнными ниже, чтобы узнать больше вариантов работы с данными в Excel и приручить электронные таблицы. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
В этом примере, давайте создадим макрос, который поможет нам автоматизировать обычную задачу в Excel: удалить все другие строки в наборе данных. Это не сложная задача, но она занимает слишком много времени и потребуется сделать очень много кликов.
Как записывать макросы в Microsoft Excel (руководство по автоматизации)
- В разделе Надёжные расположения (Trusted Locations) нажмите кнопку Добавить новое расположение (Add new location).
- Выберите папку, которую нужно объявить надёжным расположением и нажмите ОК.
Причина, по которой я кликаю по всей строке с левой стороны, заключается в том, что макросы Microsoft Excel очень специфичны. Если я выделю только три столбца в строке, то при запуске макроса, он удалит только те три столбца. Поэтому, вместо этого, я выбираю всю строку целиком. Это помогает вам работать с наборами данных практически любой ширины:
Как сделать макрос в Excel (смотрим и учимся)
Лучший способ научиться это смотреть. Посмотрите видеоурок ниже, в котором я создаю простой макрос и применяю его к данным для автоматизации процесса.
В этом уроке, ниже вы найдёте иллюстрированную инструкцию. Я покажу вам пример того, как макрос может сохранить вам время при работе с данными в Excel.
Как сохранить макросы Excel — Как сохранить программный код макроса? Что такое модули? Как в офисе.
Эти два уровня разрешают запуск макросов только из надёжных источников. Все прочие макросы не будут запущены. При открытии книги Excel не уведомляет о том, что эта книга содержит макросы, поэтому пользователь может не понять причину, по которой книга Excel не работает так, как должна.
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
В этом примере, давайте создадим макрос, который поможет нам автоматизировать обычную задачу в Excel удалить все другие строки в наборе данных. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
Чтобы удалить все макросы, просто выберите первый макрос, нажмите кнопку SHIFT и выберите последнее имя макроса. Нажмите кнопку Удалить в правой части диалогового окна. Когда вас спросят, уверены ли вы, что хотите удалить выбранные макросы, нажмите Да. Вы должны найти все выбранные вами макросы удаленными из списка.
Макросы в Excel — Инструкция по использованию 2019
- автоматизацию скучной, повторяющейся работы, что может сэкономить время для более значимой работы
- применение последовательных корректировок к данным, чтобы изменения всегда были одинаковыми
- уменьшение ошибок, связанных с ручным вводом, так как шаги будут выполняться автоматически
Excel — это мощный инструмент, который имеет множество применений. Ознакомьтесь с уроками, приведёнными ниже, чтобы узнать больше вариантов работы с данными в Excel и приручить электронные таблицы:
Как включать и работать с макросами в Excel
Для этого следуйте нижеприведенной инструкции:
Клавиша для открытия основного окна макросов в программе
- Также запустить необходимый макрос можно с помощью сочетания клавиш, которое было указано пользователем на начальном этапе его создания;
- После нажатия кнопки выполнить, все действия, которые были произведены во время записи, будут выполнены повторно.
Макрос удобнее всего использовать, когда определенная ячейка нуждается во многоразовом копировании.
Также вам может быть полезным прочтение статей:
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
Впервые технология создания макросов в программе Эксель была усовершенствована и стала доступна для использования простыми юзерами в версии 2007-го года. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
Развитие цифровых технологий требует непрестанного получения новых знаний и расширения кругозора. Останавливаться на достигнутом нельзя ни на миг. https://immkgh.livejournal.com/2819.html https://www.last.fm/ru/user/immkgh/ http://www.hdclub.ua/member/immkgh
Как удалить миллион пустых строк в excel
- Теперь начните выполнять те действия, которые будут записаны в макрос. Каждая ячейка при этом может заполняться определенными данными.
Можно также работать только с одной ячейкой, после записи и включения макроса эта же ячейка будет записываться согласно указанному алгоритму; - Не забудьте нажать кнопку остановки записи данных. После выполнения всех вышеприведенных действия он будет записан и сохранен в программе.
мой лист Excel, кажется, имеет 65555 строк, хотя мы используем только первые несколько сотен. Если я удаляю строки снизу, это ничего не меняет. Как я могу изменить его размер до того, что мы используем?