Progress28.ru

IT Новости


09ae9cb0
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Удаление макросов в excel

Автоматизация задач с помощью средства записи макросов — Excel

Для автоматизации повторяющихся задач в Microsoft Excel можно быстро записать макрос. Предположим, у вас есть даты в различном формате и вы хотите применить ко всем из них один формат. Это можно сделать с помощью макроса. Вы можете записать макрос, который применяет нужный формат, а затем запускать его при необходимости.

При записи макроса записываются все действия, описанные в Visual Basic для приложений (VBA) коде. Эти действия могут включать ввод текста или чисел, нажатие ячеек или команд на ленте или в меню, форматирование ячеек, строк или столбцов, а также импорт данных из внешнего источника, например Microsoft Access. Приложение Visual Basic (VBA) — это подмножество мощного языка программирования Visual Basic, которое входит в большинство приложений Office. Несмотря на то, что VBA обеспечивает возможность автоматизации процессов между приложениями Office, вам не нужно знать код VBA или программное программирование, если это нужно.

Важно знать, что при записи макроса регистрируются почти все ваши действия. Поэтому если вы допустите ошибку, например нажмете не ту кнопку, средство записи макросов зарегистрирует это действие. В таком случае можно снова записать всю последовательность или изменить код VBA. Поэтому перед записью процесса следует хорошо проработать его. Чем точнее вы запишете последовательность, тем более эффективно будет работать макрос.

Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее. Дополнительные сведения см. в статье Отображение вкладки «Разработчик».

Запись макроса

Перед записью макросов полезно знать следующее:

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

Если вам нужно записать длинную последовательность задач, советуем вместо этого использовать несколько более мелких макросов.

В макросе могут содержаться и задачи, не относящиеся к Excel. Процесс макроса может охватывать прочие приложения Office и другие программы, которые поддерживают Visual Basic для приложений (VBA). Например, вы можете записать макрос, который сначала обновляет таблицу в Excel, а затем открывает Outlook для ее отправки по электронной почте.

Чтобы записать макрос, следуйте инструкциям ниже.

На вкладке Разработчик в группе Код нажмите кнопку Запись макроса.

В поле Имя макроса укажите имя макроса. Сделайте имя понятным, чтобы можно было быстро найти нужный макрос.

Примечание: Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не должно содержаться пробелов; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса..

Чтобы назначить сочетание клавиш для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву. Рекомендуется использовать сочетания клавиш с CTRL+ SHIFT, так как они будут заменять собой совпадающие с ними стандартные сочетания клавиш в Excel, пока открыта книга, содержащая макрос. Например, если назначить сочетание клавиш CTRL+Z (Отменить), вы не сможете использовать его для функции «Отменить» в данном экземпляре Excel.

В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.

Как правило, макрос сохраняется в указанном расположении книги , но если вы хотите, чтобы макрос был доступен при использовании Excel, выберите пункт Личная книга макросов . Если выбрать команду Личная книга макросов, Excel создаст скрытую личную книгу макросов (личное. xlsb), если она еще не существует, и сохранит макрос в этой книге.

В поле Описание при необходимости введите краткое описание действий макроса.

Хотя поле «Описание» является необязательным, рекомендуется его заполнить. Кроме того, желательно ввести понятное описание, которое будет полезно вам и всем, кто запускает макрос. Если у вас много макросов, описания помогут быстро определить, для чего они нужны.

Чтобы начать запись макроса, нажмите кнопку ОК.

Выполните действия, которые нужно записать.

На вкладке разработчик в группе код нажмите кнопку остановить запись .

Работа с макросами, записанными в Excel

На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. Кроме того, можно нажать клавиши ALT+F8. При этом откроется диалоговое окно Макрос.

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

Ниже приведены дополнительные сведения о работе с макросами в Excel.

Сведения о параметрах безопасности макросов и их значении.

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

С помощью редактора Visual Basic можно изменять макросы, присоединенные к книге.

Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic.

Назначение макроса объекту, фигуре или графическому элементу

На листе щелкните правой кнопкой мыши объект, рисунок, фигуру или элемент, которому нужно назначить существующий макрос, а затем выберите команду назначить макрос.

Читать еще:  Анализ временных рядов в excel

В поле Назначить макроса выберите макрос, который вы хотите назначить.

Вы можете назначить макрос значку и добавить его на панель быстрого доступа или ленту.

Вы можете назначать макросы формам и элементам ActiveX на листе.

Узнайте, как включать и отключать макросы в файлах Office.

Открытие редактора Visual Basic

Нажмите клавиши ALT+F11.

Узнайте, как найти справку по элементам Visual Basic.

Работа с записанным кодом в редакторе Visual Basic (VBE)

С помощью редактора Visual Basic (VBE) вы можете добавлять в записанный код собственные переменные, управляющие структуры и другие элементы, которые не поддерживает средство записи макросов. Так как средство записи макросов фиксирует почти каждый шаг, выполняемый во время записи, может также потребоваться удалить ненужный код. Просмотр записанного кода — отличный способ научиться программировать на VBA или отточить свои навыки.

Пример изменения записанного кода можно найти в статье Начало работы с VBA в Excel.

Запись макроса

Перед записью макросов полезно знать следующее:

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

Если вам нужно записать длинную последовательность задач, советуем вместо этого использовать несколько более мелких макросов.

В макросе могут содержаться и задачи, не относящиеся к Excel. Процесс макроса может охватывать прочие приложения Office и другие программы, которые поддерживают Visual Basic для приложений (VBA). Например, вы можете записать макрос, который сначала обновляет таблицу в Excel, а затем открывает Outlook для ее отправки по электронной почте.

Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее.

Перейдите в раздел настройки > Excel . Панель инструментов & > ленты.

В категории Настроить ленту в списке Основные вкладки установите флажок Разработчик, а затем нажмите кнопку Сохранить.

Чтобы записать макрос, следуйте инструкциям ниже.

На вкладке Разработчик нажмите кнопку Запись макроса.

В поле Имя макроса введите название макроса. Сделайте имя понятным, чтобы можно было быстро найти нужный макрос.

Примечание: Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не должно содержаться пробелов; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса..

В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.

Как правило, макрос сохраняется в указанном расположении книги , но если вы хотите, чтобы макрос был доступен при использовании Excel, выберите пункт Личная книга макросов. Если выбрать команду Личная книга макросов, в Excel будет создана скрытая личная книга макросов (личное. XLSB), если он еще не существует, и сохранение макроса в этой книге. Книги в этой папке открываются автоматически при запуске Excel, а код, хранящийся в личной книге макросов, будет указан в диалоговом окне Макрос, которое описано в следующем разделе.

Чтобы назначить сочетание клавиш для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву. Рекомендуется использовать сочетания клавиш, которые еще не назначены другим командам, так как они будут переопределять совпадающие с ними стандартные сочетания клавиш в Excel, пока открыта книга, содержащая макрос.

В поле Описание при необходимости введите краткое описание действий макроса.

Хотя поле «Описание» является необязательным, рекомендуется его заполнить. Полезно ввести понятное описание с любой полезной информацией, которая может быть полезна Вам или другим пользователям, которые будут запускать макрос. Если у вас много макросов, описания помогут быстро определить, для чего они нужны.

Чтобы начать запись макроса, нажмите кнопку ОК.

Выполните действия, которые нужно записать.

На вкладке Разработчик щелкните Остановить запись.

Работа с макросами, записанными в Excel

На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. При этом откроется диалоговое окно Макрос.

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

Ниже приведены дополнительные сведения о работе с макросами в Excel.

Узнайте, как включать и отключать макросы в Excel для Mac.

Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic.

Назначение макроса объекту, фигуре или графическому элементу

На листе щелкните правой кнопкой мыши объект, рисунок, фигуру или элемент, которому нужно назначить существующий макрос, а затем выберите команду назначить макрос.

В поле Назначить макроса выберите макрос, который вы хотите назначить.

Вы можете назначить макрос значку и добавить его на панель быстрого доступа или ленту.

Вы можете назначать макросы формам и элементам ActiveX на листе.

Открытие редактора Visual Basic

На вкладке Разработчик щелкните Visual Basic или выберите Сервис > Макрос > Редактор Visual Basic.

Узнайте, как найти справку по элементам Visual Basic.

Читать еще:  Как вернуть буквы в столбцы excel

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

Макросы для 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 только для одного документа? Нужно выбрать соответствующий пункт в меню «Находится»: либо «Эта книга», либо пункт меню с названием данного документа.

Удаление макроса из персональной книги макросов

10.07.2014, 21:10

Запуск функций UDF из персональной книги макросов
Добрый день! Помогите пожалуйста. Небольшая проблема. Я создал пользовательскую функцию UDF. Если.

Очистка книги от макросов
При сохранении книги использую такой код: Public Sub WorkbookDeleteVBA(oWorkbook As.

Загрузка личной книги макросов
Добрый день. Подскажите пожалуйста как мне загрузить personal.xls при помоши макроса. Проблема в.

Программное сохранение книги с отработкой макросов
Доброе время суток. Подскажите как программно сохранить книгу с выполнением макросов. Есть.

10.07.2014, 21:222

Зачем его удолять ?, может быть проще не использовать в тех или иных случаях

Добавлено через 4 минуты
или вот как можно!, ручками.. средствами правки.. копировать-вырезать-вставить-удалить

10.07.2014, 21:51 [ТС]310.07.2014, 22:344

Решение

10.07.2014, 23:16 [ТС]507.07.2015, 16:406

Решение

1. На вкладке Вид в группе Окно нажмите кнопку Отобразить окно.

2. В разделе Показать скрытое окно книги выберите пункт ЛИЧНОЕ, а затем нажмите кнопку ОК.

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

Читать еще:  Перцентиль в excel

4. В поле Имя макроса выберите имя макроса, который нужно удалить.

5. Выберите команду Удалить.

14.03.2016, 23:40712.05.2016, 10:48820.03.2018, 17:389

Кстати, нет никакой необходимости пользоваться «Персональной Книгой Макросов».

Можно любой документ с расширением XlsM сохранить в папку
c:UsersUserAppDataRoamingMicrosoftExcelXLSTART
И музыка будет играть

16.05.2019, 09:341016.05.2019, 09:4111
16.05.2019, 09:41
16.05.2019, 09:41

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

Автосохранение книги в созданую папку без макросов
Добрый день. Вопрос — есть код VBA Sub Auto_open() Dim x As String strPath = «» .

Остановка работы всех макросов перед закрытием книги.
Pered zakrytiem knigi nado ostanovitj rabotu vseh makrosov. Kak eto mozno sdelatj, 4erez kakie.

Запуск макроса из закрытой книги
Здравствуйте Гуру VBA! Может эта тема уже и поднималась. Я по крайней мере не нашел ответа.

Запуск макроса без книги
Дело такое: для производственных нужд сделал макрос который приводит данные в ячейках к.

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

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

Для изменения кодов программно необходимо, чтобы было проставлено доверие к объектной модели проекта 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 и ранее и хочет удалить коды и макросы вручную — придется удалять каждый модуль из проекта и каждый код из модулей листов и книг поочередно, руками.

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

Ссылка на основную публикацию
×
×