Содержание:
- Удалите все макросы, сохранив файл в формате 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.
Надеюсь, вы нашли этот урок полезным!
Сейчас буду пробовать, а вот и код, спасибо за пояснение про копирование!!!
Sub СохранитьЛистВФайл()
On Error Resume Next
‘ название подпапки, в которую по-умолчанию будет предложено сохранить файл в данном случае это папка Акты
Const REPORTS_FOLDER = «Акты»
‘ создаём папку для файла, если её ещё нет
MkDir ThisWorkbook.Path & «» & REPORTS_FOLDER
‘ выбираем стартовую папку
ChDrive Left(ThisWorkbook.Path, 1): ChDir ThisWorkbook.Path & «» & REPORTS_FOLDER
‘устанавливаем ячейку имя которой автоматически будет прописываться в названии файла при сохранении
With Workbooks(«модификация.xls»).Sheets(«акт»)
Имя_для_сохранения = .[a1] ‘Формируем имя, можем его сцепить из нескольких ячеек прописав вместо .[a1]
‘значения .[хх] & «_» & .[хх], где [хх] номер ячейки в которой находится информация для сцепки
End With
‘ вывод диалогового окна для запроса имени сохраняемого файла
Filename = Application.GetSaveAsFilename(InitialFileName:=Имя_для_сохранения, _
FileFilter:=»Excel Files (*.xls), *.xls»)
If VarType(Filename) = vbBoolean Then Exit Sub
‘ копируем активный лист (при этом создаётся новая книга)
Err.Clear: ActiveSheet.Copy: DoEvents
If Err Then Exit Sub ‘ произошла какая-то ошибка при попытке копирования листа
‘ убеждаемся, что активной книгой является копия листа
If ActiveWorkbook.Worksheets.Count = 1 And ActiveWorkbook.Path = «» Then
‘эта строка убирает из документа все формулы
With ActiveSheet.UsedRange
.Value = .Value
End With ‘окончание функции
‘удаление макроса с сохраняемого листа целиком
ActiveSheet.Shapes(«Сохранить и отправить в печать»).Delete
‘ сохраняем файл под заданным именем в формате Excel 2003
ActiveWorkbook.SaveAs Filename, xlWorkbookNormal
ActiveWorkbook.Selection.SpecialCells(xlFormulas).ClearContents
‘With ActiveSheet.PrintOut ‘ выводим лист на печать(убрать одинарные ковычки перед командами)
‘End With
‘ закрываем сохранённый файл
‘ (удалите следующую строку, если закрывать созданный файл не требуется)
ActiveWorkbook.Close False
End If
End Sub
Download Article
The complete guide to deleting macros from any Excel workbook
Download Article
- On Windows
- On Mac
- Q&A
- Tips
- Warnings
|
|
|
|
This wikiHow teaches you how to remove a macro from a Microsoft Excel spreadsheet. You can do this from within the spreadsheet’s settings in Excel on both Windows and Mac computers.
Things You Should Know
- You must first enable macros in your workbook before you can delete them.
- On Windows, click «Macros» on the «View» tab to view and delete macros.
- On a Mac, you’ll find your macros in the «Tools» menu under «Macros.
-
1
Open the macro-enabled Excel sheet. Double-click the Excel file which contains the macro you want to delete. This will open the file in Excel.
-
2
Click Enable Content. It’s in the yellow bar at the top of the Excel window. This will enable the macro(s) that are embedded in the file.
- If you don’t enable the macro(s), you won’t be able to delete your macro.
Advertisement
-
3
Click the View tab. This tab is in the green ribbon at the top of the Excel window.
-
4
Click Macros. It’s a drop-down icon
in the far-right side of the View tab. A drop-down menu will appear.
-
5
Click View Macros. This option is in the drop-down menu. Doing so opens the Macros pop-up window.
-
6
Click the «Macros in» drop-down box. You’ll find this at the bottom of the window. Clicking it prompts a drop-down menu.
-
7
Click All Open Workbooks. It’s in the drop-down menu.
-
8
Select a macro. Click the name of the macro you want to delete.
-
9
Click Delete. It’s on the right side of the window.
-
10
Click Yes when prompted. Doing so will remove the macro from your workbook.
-
11
Save your changes. Press Ctrl+S to do so. This will ensure that the macro remains deleted after you close Excel.
Advertisement
-
1
Open the macro-enabled Excel sheet. Double-click the Excel file which contains the macro you want to delete. This will open the file in Excel.
-
2
Click Enable Content. It’s in the yellow bar at the top of the Excel window. This will enable the macro(s) that are embedded in the file.
- If you don’t enable the macro(s), you won’t be able to delete your macro.
-
3
Click Tools. It’s a menu item at the top of your Mac’s screen. Clicking it prompts a drop-down menu.
-
4
Select Macro. This option is at the bottom of the Tools drop-down menu. Selecting it causes a pop-out menu to the right of the drop-down menu to appear.
-
5
Click Macros…. It’s in the pop-out menu. Doing so opens the «Macros» window.[1]
-
6
Click the «Macros in» drop-down box. This is near the bottom of the «Macros» window. A drop-down menu will appear.
-
7
Click All Open Workbooks. It’s in the drop-down menu.
-
8
Select a macro. Click the name of the macro you want to delete.
-
9
Click —. It’s below the list of macros.
-
10
Click Yes when prompted. This will remove the macro.
-
11
Save your changes. Press ⌘ Command+S to do so. This will ensure that the macro remains deleted after you close Excel.
Advertisement
Add New Question
-
Question
What do I do if I get the error «cannot edit a macro on a hidden workbook»?
Click «View» tab. Click «Unhide». A «Personal workbook» option will appear; select this. Once inside the Personal workbook, follow the steps in the tutorial above and it should delete easily.
-
Question
What do I do if the Delete button is disabled?
The Delete button will be disabled if you didn’t click «Enable Content» upon opening the macro. You can find this option in the yellow bar at the top of the Excel document. If the Delete button is still greyed out after enabling macros, you may not have permission to edit the document.
Ask a Question
200 characters left
Include your email address to get a message when this question is answered.
Submit
Advertisement
-
On a Mac, you can also open the «Macros» window from within the Developer tab by clicking Macros.
Thanks for submitting a tip for review!
Advertisement
-
Macros can harm your computer. Unless you know where a macro came from (e.g., a trusted colleague created it), do not run macros from files you didn’t personally create.
Advertisement
About This Article
Article SummaryX
1. Open the file.
2. Click Enable Content.
3. Click View.
4. Click the Macros drop-down.
5. Click View Macros and select «This Workbook.»
6. Click All Open Workbooks.
7. Select a macro and click Delete.
8. Click Yes.
Did this summary help you?
Thanks to all authors for creating a page that has been read 291,103 times.
Is this article up to date?
Загрузить PDF
Загрузить PDF
B этой статье мы расскажем вам, как удалить макрос из электронной таблицы Microsoft Excel. Это можно сделать в настройках электронной таблицы Excel на компьютерах под управлением Windows и Mac OS X.
-
1
Откройте таблицу Excel с макросами. Дважды щелкните по файлу Excel с макросом, который вы хотите удалить. Файл откроется в Excel.
-
2
Нажмите Включить содержимое. Эта опция находится на желтой полосе в верхней части окна Excel. Макросы, встроенные в файл, будут активированы.
- Если не включить макрос, удалить его не получится.
-
3
Щелкните по вкладке Вид. Она находится на зеленой ленте в верхней части окна Excel.
-
4
Щелкните по Макросы. Это значок
в правой части вкладки «Вид». Раскроется меню.
-
5
Нажмите Макросы. Эта опция находится в меню. Откроется всплывающее окно «Макрос».
-
6
Откройте меню «Находится в». Вы найдете его в нижней части окна.
-
7
Выберите Все открытые книги. Эта опция находится в меню.
-
8
Выберите макрос. Нажмите на имя макроса, который вы хотите удалить.
-
9
Щелкните по Удалить. Эта опция находится в правой части окна.
-
10
Нажмите Да, когда появится запрос. Макрос будет удален.
-
11
Сохраните изменения. Нажмите Ctrl+S. Теперь макрос не восстановится, когда вы закроете Excel.
Реклама
-
1
Откройте таблицу Excel с макросами. Дважды щелкните по файлу Excel с макросом, который вы хотите удалить. Файл откроется в Excel.
-
2
Нажмите Включить содержимое. Эта опция находится на желтой полосе в верхней части окна Excel. Макросы, встроенные в файл, будут активированы.
- Если не включить макрос, удалить его не получится.
-
3
Откройте меню Инструменты. Оно находится в верхней части окна Excel.
-
4
Щелкните по Макрос. Эта опция находится внизу меню «Инструменты». Откроется новое меню.
-
5
Нажмите Макросы. Эта опция находится в меню. Откроется всплывающее окно «Макрос».[1]
-
6
Откройте меню «Находится в». Вы найдете его в нижней части окна.
-
7
Выберите Все открытые книги. Эта опция находится в меню.
-
8
Выберите макрос. Нажмите на имя макроса, который вы хотите удалить.
-
9
Щелкните по —. Этот значок находится под списком макросов.
-
10
Нажмите Да, когда появится запрос. Макрос будет удален.
-
11
Сохраните изменения. Нажмите ⌘ Command+S. Теперь макрос не восстановится, когда вы закроете Excel.
Реклама
Советы
- На компьютере под управлением Mac также можно нажать «Разработчик» > «Макросы», чтобы открыть окно «Макрос».
Реклама
Предупреждения
- Макросы могут нанести вред компьютеру. Если вы не знаете, кем создан макрос (например, если он добавлен в таблицу не вашим коллегой, которому вы доверяете), не запускайте его.
Реклама
Об этой статье
Эту страницу просматривали 30 906 раз.
Была ли эта статья полезной?
Создание и удаление макросов
Ниже описывается создание и удаление макроса в Excel 2013 и 2016.
При записи макроса все необходимые действия записываются средством записи макроса. Такими действиями может быть ввод текста или чисел, выбор ячеек или команд на ленте или в меню, форматирование, выделение ячеек, строк или столбцов, а также выделение ячеек путем перетаскивания указателя мыши. Команды для записи, создания и удаления макросов доступны на вкладке ленты Разработчик.
- Если вкладка Разработчик недоступна, выполните следующие действия для ее отображения:
- Откройте вкладку Файл.
- Нажмите кнопку Параметры и выберите команду Настройка ленты.
- В категории Настройка ленты в списке Основные вкладки установите флажок Разработчик, а затем нажмите кнопку ОК.
- На вкладке Разработчик в группе Код нажмите кнопку Безопасность макросов.
- В группе Параметры макросов выберите переключатель Включить все макросы (не рекомендуется, возможен запуск опасной программы), а затем дважды нажмите кнопку ОК.
ВНИМАНИЕ : Для предотвращения запуска потенциально опасного кода по завершении работы с макросами рекомендуется вернуть параметры, отключающие все макросы.
Нравится? Поделись с друзьями в социальных сетях, нажми поделиться
- На вкладке Разработчик в группе Код нажмите кнопку Запись макроса.
- В поле Имя введите имя макроса .
ПРИМЕЧАНИЕ : Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не допускаются пробелы; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса.
- Чтобы назначить сочетание клавиш с клавишей CTRL для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву.Выбранное сочетание клавиш заменяет все совпадающие стандартные сочетания клавиш Excel на то время, пока открыта книга, содержащая данный макрос.
- В поле Сохранить в выберите книгу, в которой нужно сохранить макрос.Если вам нужно, чтобы данный макрос был всегда доступен при работе в Excel, выберите вариант Личная книга макросов. При выборе этого варианта создается скрытая личная книга макросов (Personal.xlsb) (если она еще не существует), в которой сохраняется данный макрос. В Windows 7 и Windows Vista эта книга сохраняется в папке C:Usersимя_пользователяApplication DataMicrosoftExcelXLStart. В Microsoft Windows XP эта книга сохраняется в папке C:Documents and Settingsимя_пользователяApplication DataMicrosoftExcelXLStart, откуда она будет автоматически загружаться при каждом запуске приложения Excel. Если вы хотите автоматически выполнять макрос из личной книги в другой книге, следует также сохранить эту книгу в папке XLStart, чтобы при запуске Excel открывались обе книги.
- Введите описание макроса в поле Описание.
- Для начала записи макроса нажмите кнопку ОК.
- Выполните действия, которые нужно записать.
- На вкладке Разработчик в группе Код нажмите кнопку Остановить запись.
Создание макроса с помощью VBA
- На вкладке Разработчик в группе Код нажмите кнопку Visual Basic.
- При необходимости в меню Insert выберите команду Module.
ПРИМЕЧАНИЕ : Модули будут созданы автоматически для всех листов книги.
Нравится? Подпишись на рассылку полезных советов от prodma.ru
- Откройте книгу, содержащую макрос, который нужно скопировать.
- На вкладке Разработчик в группе Код нажмите кнопку Макросы.
- В поле Имя выберите имя макроса, который нужно скопировать.
- Нажмите кнопку Изменить.
- В окне редактора Visual Basic выделите строки макроса, которые нужно скопировать.
СОВЕТ : Чтобы скопировать макрос целиком, включите в выделенную часть строки Sub и End Sub.
Личную книгу макросов (файл Personal.xls) редактировать нельзя, поскольку она является скрытой книгой, которая всегда открыта. Сначала ее следует отобразить с помощью команды Показать. Этот файл также можно открыть в редакторе Visual Basic, нажав клавиши ALT+F11.
Назначение макроса объекту, графическому объекту и элементу управления
- Щелкните на листе правой кнопкой мыши объект, графический объект или элемент управления, которому нужно назначить существующий макрос, а затем в контекстном меню выберите команду Назначить макрос.
- В поле Имя выберите макрос, который нужно назначить.
Создание, выполнение, изменение и удаление макроса в Office для Mac
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Чтобы сэкономить время на выполнении часто повторяющихся задач, можно записать соответствующую последовательность действий в виде макроса. Затем, когда вам потребуется выполнить такую задачу, вы сможете вызвать макрос, и он сделает все за вас.
В Word 2016 для Mac можно создать макрос с сочетанием клавиш, запустить макрос и удалить макрос, который больше не нужен.
В меню Вид последовательно выберите пункты Макросы и Записать макрос.
Введите имя макроса или примите имя по умолчанию, предлагаемое Word.
Чтобы использовать этот макрос во всех новых документах, убедитесь в том, что в списке Сохранить макрос в выбран пункт Все документы (Обычный).
Нажмите кнопку Клавиатура, чтобы назначить макросу сочетание клавиш.
В Word откроется диалоговое окно Настройка клавиатуры.
Введите сочетание клавиш в поле Нажмите новое сочетание клавиш.
При нажатии сочетания клавиш в Word отображается команда или действие, назначенные в данный момент этому сочетанию, если таковые имеются.
Если выбранное сочетание клавиш уже назначено, удалите его в поле Нажмите новое сочетание клавиш и выберите другое сочетание.
Найдя свободное сочетание клавиш, переходите к следующему шагу.
Чтобы использовать это сочетание клавиш во всех новых документах, убедитесь в том, что в поле Сохранить изменения в выбран глобальный шаблон Normal.dotm.
Нажмите кнопку Назначить.
Когда вы будете готовы к записи макроса, нажмите кнопку ОК.
Последовательно выберите нужные команды или нажмите нужные клавиши.
Word записывает щелчки мышью и нажатия клавиш, но не выделение текста мышью. Чтобы выделить текст при записи макроса, используйте клавиатуру.
Чтобы остановить запись, в меню Вид последовательно выберите пункты Макросы и Остановить запись.
Запустить макрос можно с помощью назначенного ему сочетания клавиш или из списка Макросы.
В меню Вид последовательно выберите пункты Макросы и Просмотр макросов.
В списке Имя макроса выберите макрос, который хотите запустить.
Нажмите кнопку Запустить.
В меню Вид последовательно выберите пункты Макросы и Просмотр макросов.
Убедитесь в том, что в списке Макросы в указано расположение макроса, который вы хотите удалить.
В списке содержится имя документа, открытого в текущем окне, а также глобальный шаблон и команды Word.
В поле Имя макроса выберите макрос, который нужно удалить, а затем щелкните значок минуса под списком.
Когда в Word появится подтверждение на удаление макроса, нажмите кнопку Да.
В Excel 2016 для Mac можно создать макрос с сочетанием клавиш, запустить макрос и удалить макрос, который больше не нужен.
При записи макроса все необходимые действия записываются средством записи макроса. Такими действиями может быть ввод текста или чисел, выбор ячеек или команд на ленте или в меню, форматирование, выделение ячеек, строк или столбцов, а также выделение ячеек путем перетаскивания указателя мыши.
Примечание: Команды для записи, создания и удаления макросов, а также другие дополнительные функции также доступны на вкладке » разработчик » на ленте. Дополнительные сведения об использовании вкладки «Разработчик» можно найти в разделе Использование вкладки «Разработчик» для создания и удаления макроса в Excel 2016 для Mac.
Выберите Сервис _гт_ макрос _гт_ запись New.
В поле Имя макроса укажите имя макроса.
Чтобы создать сочетание клавиш для макроса, введите букву в поле Option + cmd .
Выберите расположение макроса в раскрывающемся списке.
Как удалить макросы в книге?
Рано или поздно у разработчиков возникает вопрос: как удалить макросы, в том числе и из книги, в которой эти макросы расположены? Да еще так, чтобы об этом никто ничего не узнал?
Для изменения кодов программно необходимо, чтобы было проставлено доверие к объектной модели проекта VBA и изменяемый проект не должен быть защищен. Подробнее читайте в статье: Что необходимо для внесения изменений в проект VBA(макросы) программно
Без этого будет невозможно программное вмешательство в проект VBA.
УДАЛИТЬ ВСЕ МАКРОСЫ ИЗ АКТИВНОЙ КНИГИ
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 li = li + lProcLineCount Next li End With End Sub
Здесь стоит обратить внимание на один момент: данный поиск чуствителен к регистру. Т.е. если требуется удалить процедуру «Code2» , то и к сравнению надо вписывать имя именно так. Если записать «code2» , то совпадения найдено не будет и процедура не будет удалена. Во избежание подобного можно приводить имена к одному регистру:
If LCase(sProcName) = LCase(«Code2») Then
УДАЛИТЬ ВСЕ МАКРОСЫ ВРУЧНУЮ
Еще хочу добавить, что если Вам надо не скрыто, а просто быстро удалить все макросы из книги и Вы счастливый обладатель Excel версии 2007 и выше, то Вам всего лишь необходимо книгу, из которой хотите удалить макросы, Сохранить как-обычная Книга Excel(Меню—Сохранить как—Книга Excel).
Программно это можно сделать простым кодом:
Sub SaveBookWithoutMacro() ActiveWorkbook.SaveAs Filename:=»C:Книга1.xlsx», FileFormat:=51 End Sub
Для тех же, кто все еще использует офис 2003 и ранее и хочет удалить коды и макросы вручную — придется удалять каждый модуль из проекта и каждый код из модулей листов и книг поочередно, руками.
Статья помогла? Поделись ссылкой с друзьями!
Поиск по меткам
Если написать вместо
Set oVBComponent = ActiveWorkbook.VBProject.VBComponents(«ThisWorkbook»)
вот так
Set oVBComponent = ActiveWorkbook.VBProject.VBComponents(ActiveWorkbook.CodeName),
то макрос будет срабатывать и в английской и в русской версии (ThisWorkbook и ЭтаКнига).
Предположу, что срабатывать будет со всеми языками.
Поделитесь своим мнением
Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме — добро пожаловать на Форум
Макросы для Excel. Как создать и как удалить макрос в Excel?
Как правило, знакомство с языком VBA начинается с выполнения простейших программ, называемых макросами. С их помощью можно выполнить такие функции, как удаление листа или строки в Excel. В дальнейшем полученные знания можно использовать для написания более сложных программ.
Что такое макрос и зачем он нужен?
Это специальная программа, написанная на языке VBA для выполнения каких-либо функций в приложении MS Office. Можно воспользоваться уже готовым решением, которое легко найти на просторах сети Интернет, либо написать такую программу самостоятельно. С этим может справиться даже человек, абсолютно незнакомый с языком VBA. Достаточно нажать кнопку «Записать макрос», выполнить некоторые действия, которые затем можно повторить, просто запустив данный макрос, и вовремя нажать кнопку «Стоп».
Удаление листа Excel
Делается это следующим образом:
- Создаем новый документ Excel (на примере Excel 2010).
- Вставляем несколько листов и вносим в них произвольные данные.
- Чтобы открыть редактор VBA, нажимаем Alt+F11.
- Для вставки нового модуля (собственно, это и есть макрос) переходим на вкладку Insert (Вставить) и выбираем Module.
- Вставляем код:
- Закрываем окно редактирования макроса.
- Закрываем редактор VBA.
- Сохраняем книгу как документ с поддержкой макросов.
- Открываем сохраненный документ.
- Переходим «Вид-Макросы-Макросы» и выбираем DeleteSheet.
- Нажимаем «Выполнить». Появится предупредительное сообщение о том, что в ячейках данного листа могут существовать данные. Чтобы удалить лист Excel макросом, нажимаем на кнопку «Удалить».
- Для удаления листа без предупредительного сообщения в код макроса необходимо добавить две строчки:
Удаление строк в Excel
Теперь посмотрим, как удалить строки макросами Excel. Для начала уберем одну строку. Чтобы модуль легче было искать, так его и назовем – DeleteRow.
После выполнения макроса в Excel удалится строка под первым номером. Остальные сдвинутся вверх. Для удаления нескольких меняем вторую строку кода на следующую:
В данном случае будут удалены строки со второй по пятнадцатую.
Макросы являются программами и могут причинить существенный вред компьютеру. Теперь рассмотрим, как удалить макрос в Excel.
Открываем вкладку «Вид», нажимаем на «Макросы», выбираем верхнюю строку под названием «Макросы», выбираем подлежащий удалению и нажимаем соответствующую кнопку.
Процесс удаления макроса в Excel 2003 имеет одну особенность. Чтобы полностью убрать его, нужно будет вручную очистить все модули. Для этого нужно зайти в редактор Visual Basic.
Удаление макросов программным способом
Следующий способ, как можно удалить макрос в Excel, заключается в использовании надстройки – специальной программы, которая устанавливается отдельно и содержит в себе несколько модулей для выполнения различных функций. Одной из таких надстроек является Kutools. С помощью данной программы можно одновременно удалить все макросы Excel.
Данная надстройка имеет более 300 различных функций. Отметим некоторые интересные функции:
- преобразование обычных чисел в римские и обратно;
- конвертация валюты с использованием актуальных курсов валют;
- преобразование единиц измерения;
- поиск ячеек с определенным форматированием;
- удаление пустых листов, строк, столбцов.
При наличии большой базы макросов можно создать собственную надстройку. Благодаря этому можно будет разграничить «свои» и «чужие» (Excel будет им автоматически доверять).
Что делать, если он хранится в Личной книге? Как удалить макрос в Excel в этом случае? Сперва нужно отобразить скрытое окно. Для этого следует выбрать вкладку «Вид» и в группе «Окно» нажать кнопку «Отобразить». В дальнейшем процедура удаления макроса включает стандартные шаги.
Важно отметить, что при удалении через вкладку «Вид» открывается окно просмотра макросов. По умолчанию выбран пункт «Находится во всех открытых книгах». Как удалить макрос в Excel только для одного документа? Нужно выбрать соответствующий пункт в меню «Находится»: либо «Эта книга», либо пункт меню с названием данного документа.
Как удалить скрытые имена в Excel
Здравствуйте. Рад представить Вам пошаговую инструкцию по удалению скрытых имен в Экселе. Вы возможно сталкивались с ситуацией, когда при копировании листа в книге Excel возникала ошибка, которая сообщает что Имя уже существует и нужно либо выбрать новое, либо использовать тоже. Хорошо если таких ошибок 2 — 3, а если их несколько сотен или тысяч, тогда никакого терпения не хватит нажимать ОК. Используя рекомендации, представленные ниже, Вы избавитесь от ошибки навсегда! Итак, приступим:
1. Создание макроса DeleteHiddenNames.
Встроенной функции в Excel для решения этой проблемы я не нашел, зато есть замечательный макрос, с помощью которого мы от нее избавимся. Сначало надо зайти в редактор макросов, для этого запустите Excel, откройте файл с проблемой и нажмите ALT+F11. Откроется Microsoft Visual Basic for Applications, далее заходим в меню Insert и выбираем Module.
Открывается окно модуля. Туда Вы должны вставить следующий код макроса:
Sub DeleteHiddenNames()
Dim n As Name
Dim Count As Integer
On Error Resume Next
For Each n In ActiveWorkbook.Names
If Not n.Visible Then
n.Delete
Count = Count + 1
End If
Next n
MsgBox «Скрытые имена в количестве » & Count & » удалены»
End Sub
Выглядеть это должно в результате следующим образом:
Отлично. Макрос мы создали, теперь нам осталось его применить.
2. Использования макроса для удаления скрытых имен в Excel.
Переключаемся назад на нашу Эксель книгу, переходим в меню Вид, там выбираем блок Макросы и в нем нажимаем на меню Макросы.
В открывшемся меню выбираем макрос DeleteHiddenNames и нажимаем кнопку выполнить.
Макрос отработает некоторое время (чем больше скрытых имен у Вас в файле, тем дольше он будет работать) и выдаст сообщение о том, сколько имен было удалено. Поздравляю Вы избавились от проблемы и можете смело копировать листы.