Включение и отключение макросов в программе microsoft excel
Содержание:
- Предостережения
- Что записывает макрос?
- Как удалить все макросы в Excel?
- Отображение в Microsoft Office 2007 и 2010
- Создать макрос в Excel с помощью макрорекордера
- Рекомендации по использованию макросов
- Как включать и отключать макросы в Excel
- Запись макроса
- Создание макроса – практический пример
- Безопасность макросов в современных версиях Excel (2007 и более новых)
- Как работать с макросами в Excel
Предостережения
Формат статьи не позволяет раскрыть все возможности такого мощного инструмента как Макросы и тем более работы с кодами языка VBA, на котором прописываются все действия по работе с таблицами. Желающим использовать макросы в excel самоучитель Office 365, без сомнений, будет полезен. Там же можно найти примеры макросов excel. Здесь будут даны только некоторые наиболее общие понятия.
Чтобы посмотреть VBA программный код в меню открывается вкладка «Вид» и активируется «Макросы». Появится новое окно где будут видны имена всех записанных макросов. Выбирается нужный и с помощью клика «Изменить» смотрим коды Visual Basic for Applications. При определённом опыте непосредственно в этом окне можно менять последовательность действий. Более того, наиболее сложные макросы пишутся именно в кодах VBA. Но это уже другая история. Отметит только, что средства языка позволяют автоматизировать расчёт таблиц и построение графиков любой сложности и последовательности. Экспортировать данные в Exel с документов различного формата, включая интернет-ресурсы.
Один макрос может включать коды, которые позволяют работать одновременно с несколькими документами и необязательно из табличного процессора.
Не надо только забывать, что самый мощный инструмент может превратиться в свою противоположность. Вместо созидания, этот инструмент может навредить вашему архиву. Для этих макрокоманд доступны все приложения офиса.
При использовании следует учитывать, что при ошибках они могут нанести большой вред. Надстройка VBA может работать с любым документом на вашем компьютере. Можно случайно часть документов удалить или внести ненужные изменения. Тем более нельзя использовать чужие макросы из непроверенных источников. Источник проникновения вируса через такие программы самый очевидный и его не всегда можно обнаружить. Пока нет эффективных антивирусных программ, позволяющих бороться с такими вредоносными макросами.
Что записывает макрос?
Теперь перейдем к редактору кода и посмотрим что у нас получилось.
Вот шаги по открытию редактора VB в Excel:
- Перейдите на вкладку “Разработчик”.
- В группе “Код” нажмите кнопку “Visual Basic”.
Вы также можете использовать комбинацию клавиш Alt + F11 и перейти в редактор кода VBA.
Рассмотрим сам редактор кода. Далее коротко опишем интерфейс редактора.
- Панель меню: содержит команды, которые можно использовать во время работы с редактором VB.
- Панель инструментов – похожа на панель быстрого доступа в Excel. Вы можете добавить к ней дополнительные инструменты, которыми часто пользуетесь.
- Окно проектов (Project Explorer) – здесь Excel перечисляет все книги и все объекты в каждой книге. Например, если у нас есть книга с 3 рабочими листами, она появится в Project Explorer. Здесь есть несколько дополнительных объектов, таких как модули, пользовательские формы и модули классов.
- Окно кода – собственно сам код VBA размещается в этом окне. Для каждого объекта, указанного в проводнике проекта, есть окно кода, например, рабочие листы, книги, модули и т. д. В этом уроке мы увидим, что записанный макрос находится в окне кода модуля.
- Окно свойств – вы можете увидеть свойства каждого объекта в этом окне. Я часто использую это окно для обозначения объектов или изменения их свойств.
- Immediate Window (окно предпросмотра) – На начальном этапе оно вам не пригодится. Оно полезно, когда вы хотите протестировать шаги или во время отладки. Он по умолчанию не отображается, и вы можете его отобразить, щелкнув вкладку «View» и выбрав опцию «Immediate Window».
Когда мы записали макрос “ВводТекста”, в редакторе VB произошли следующие вещи:
- Был добавлен новый модуль.
- Макрос был записан с именем, которое мы указали – “ВводТекста”
- В окне кода добавлена новая процедура.
Поэтому, если вы дважды щелкните по модулю (в нашем случае модуль 1), появится окно кода, как показано ниже.
Вот код, который записан макрорекодером:
В VBA, любая строка , которая следует за ‘ (знак апострофа) не выполняется. Это комментарий, который предназначен только для информационных целей. Если вы удалите первые пять строк этого кода, макрос по-прежнему будет работать.
Теперь давайте пробежим по каждой строке кода и опишем что и зачем.
Код начинается с Sub, за которым следует имя макроса и пустые круглые скобки. Sub – сокращение для подпрограммы. Каждая подпрограмма (также называемая процедурой) в VBA начинается с Sub и заканчивается End Sub.
- Range(“A2”).Select – эта строка выбирает ячейку A2.
- ActiveCell.FormulaR1C1 = «Excel» – эта строка вводит текст “Excel” в активной ячейке. Поскольку мы выбрали ячейку A2 в качестве первого шага, она становится нашей активной ячейкой.
- Range(“A3”).Select – выбор ячейки A3. Это происходит, когда мы нажимаем клавишу Enter после ввода текста, результатом которого является выбор ячейки A3.
Надеюсь, что у вас есть некоторое базовое понимание того, как записывать макрос в Excel.
Обращаем внимание, что код, записанный через макрорекордер, как правило, не является эффективным и оптимизированным кодом. Макрорекордер часто добавляет дополнительные ненужные действия
Но это не значит, что не нужно пользоваться макрорекодером. Для тех, кто только изучает VBA , макрорекордер может быть отличным способом проанализировать и понять как все работает в VBA.
Как удалить все макросы в Excel?
Иногда вы записываете и создаете макросы в Excel или получаете книги с макросами. В некоторых случаях вам нужно будет удалить все макросы из книги. Здесь мы расскажем о двух способах быстрого и удобного удаления всех макросов в Excel.
Удалите все макросы один за другим с помощью команды Macro
Обычно мы можем удалить макросы один за другим с помощью команды Macro в Excel.
Шаг 1. Пожалуйста, нажмите Перейти к товару > Макрос > Макросы просмотра, см. снимок экрана:
Шаг 2: Затем вы попадаете в Макрос диалоговое окно. Выберите макрос, который вы хотите удалить, и выберите Все открытые книги из раскрывающегося списка в Макросы в площадь. Смотрите скриншот:
Шаг 3: нажмите Удалить кнопку, и выбранный макрос будет удален, и вы можете повторить шаги 2 и 3, чтобы удалить другие макросы один за другим.
Эта команда макроса может каждый раз удалять только один макрос. Хотя не требуется закрывать диалоговое окно «Макрос», мы должны удалить все макросы один за другим, повторяя щелчки мышью. Это будет нормально для нескольких макросов, но удаление большого количества с помощью этого метода должно быть утомительным.
Удалите все макросы из текущей книги с помощью Kutools for Excel
Kutools for Excel’s Удалить все макросы позволяет удалить все макросы из всей книги одновременно одним щелчком мыши.
Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.
1: нажмите Kutools > Удалить > Удалить все макросы, см. снимок экрана:
2. Затем появится окно с подсказкой, в котором сообщается, что все макросы были успешно удалены. Нажмите кнопку ОК.
Внимание: Если Доверять доступ к объектной модели проекта VBA Если опция не включена в вашей книге, появится диалоговое окно с напоминанием о необходимости включить эту опцию перед удалением всех макросов из текущей книги
Если вы хотите получить бесплатную (30-дневную) пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
Пакетное удаление всех макросов из нескольких книг с помощью Kutools for Excel
Помимо удаления всех макросов в книге с помощью Kutools for Excel, вы также можете одновременно удалить все макросы из нескольких книг с помощью Пакетное удаление всех макросов полезности Kutools for Excel.
1. Нажмите Kutools > Удалить > Пакетное удаление всех макросов чтобы включить эту утилиту.
2. в Удалить все макросы В диалоговом окне вы можете увидеть, что все открытые книги отображаются в диалоговом окне. Если вы хотите удалить все макросы из других книг, нажмите кнопку Добавить и нажмите кнопку Файл or Папка возможность выбрать книги, из которых нужно удалить макросы. Смотрите скриншот:
Внимание: Вы можете нажать кнопку, чтобы удалить ненужную книгу
3. Теперь все выбранные книги отображаются в Удалить все макросы диалоговое окно, щелкните OK кнопку, чтобы начать удаление. Смотрите скриншот:
4. Затем появится диалоговое окно, в котором указано, сколько макросов было удалено, щелкните значок OK кнопку.
Теперь все макросы в выбранных книгах успешно удалены. И вы получите новую книгу с отчетом об удаленном списке внутри.
Если вы хотите получить бесплатную (30-дневную) пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
Отображение в Microsoft Office 2007 и 2010
Включить макрокоманды можно и в табличном редакторе нового поколения, только придётся воспользоваться несколько иными инструкциями, потому что панель инструментов, расположение меню офисов различных лет выпуска отличаются между собой.
Office 2007
По сути, включить макрокоманды в табличном редакторе офиса 2007 можно таким же самым способом, как и в Excel 2003. Отличие заключается лишь в том, что для открытия диалогового окна «Параметры макросов» приходится проделать несколько иной путь.
В офисе 2007 первоначально необходимо зайти в Меню, расположенное в верхнем левом углу, после чего сразу же осуществить переход в «Параметры Excel».
Вслед за этим на экране компьютера появится диалоговое окно «Центр управления безопасностью», визуально изучив которое можно без труда обнаружить строку «Параметры центра управления безопасностью», по которой нужно сразу же кликнуть левой клавишей мышки.
После осуществления последовательных переходов на экране отобразится подменю «Параметры макросов», предоставляющее возможность вносить изменения в процесс отображения, написания и запуска различных макрокоманд.
В новом открывшемся окне переключатель нужно установить на последней строке «Включить все макросы». Система, конечно, предупредит, что такие действия могут позволить осуществлять запуск и опасных программ. Однако если пользователь уверен в своих действиях, на компьютере установлена надёжная противовирусная защита, то опасаться такого предупреждения нет смысла.
Также включить и отключить макрокоманды в Excel 2007 можно более простым способом, ничем не отличающимся от включения их в Excel 2010.
Office 2010
Включить и отключить макрокоманды в Excel 2010 можно, воспользовавшись меню «Разработчик». Однако данное меню не всегда активно в табличном редакторе 2010, особенно в момент первого запуска офисного приложения, поэтому первоначально следует совершить определённые действия, чтобы создать данное меню на панели инструментов. Специалисты рекомендуют выносить на панель инструментов подменю, к которым приходится достаточно часто обращаться в процессе выполнения различных задач.
Для этого необходимо кликнуть по меню «Файл», далее перейти в «Параметры», а затем в «Настройку ленты». С правой стороны будет находиться список, среди предложенных вариантов пользователь может выбрать те меню, в которых он наиболее часто будет нуждаться, а потому желает, чтобы они постоянно были отображены на панели инструментов. В частности, в этот момент необходимо установить переключатель на строке «Разработчик» и нажать «Ок». После этого данное меню отобразится в верхней части Excel 2010.
Теперь включить и отключить макрокоманды будет несложно, достаточно будет навести курсор на «Разработчик», далее перейти на строку «Безопасность макросов», после чего откроется уже знакомое меню «Параметры макросов», в котором выбирается последний пункт.
Проделав все вышеописанные действия по включению макрокоманд, у пользователя уже не возникнут вопросы, как отключить макросы в Excel 2010, поскольку все шаги остаются такими же, только меняется их последовательность на обратную.
Чтобы создать собственную автоматическую подпрограмму, пользователь должен освоить некоторые азы программирования. Однако если это совершенно невозможно, поскольку нет никаких навыков в этой области, пользователь не настроен на прохождение обучения программированию, можно начать писать макрокоманды, в которых возникла острая необходимость.
Писать такие команды в Excel 2010 несложно, достаточно кликнуть по строке «Начать запись», а дальше производить те действия, которые ранее выполнялись пользователем, и которые он желал бы осуществлять автоматически. Завершив выполнение действий, нажимается кнопка «Завершить». Теперь созданная подпрограмма будет отображаться в списке доступных, кликнув по ней, запустится процесс, идентичный тому, что был выполнен пользователем вручную.
Достаточно создать только первую макрокоманду в Excel 2010, как пользователь поймёт, что ничего сложного в этом нет, а также ощутит заметные преимущества, которыми станет сопровождаться его работа. Благодаря этому появляется желание писать новые подпрограммы и совершенствовать процесс выполнения производственных задач.
Итак, макрокоманды в табличных редакторах 2003, 2007 и 2010 способны восприниматься большинством пользователей в качестве лучших помощников, позволяющих рутинную работу автоматизировать и повысить её результативность.
Создать макрос в Excel с помощью макрорекордера
Для начала проясним, что собой представляет макрорекордер и при чём тут макрос.
Макрорекордер – это вшитая в Excel небольшая программка, которая интерпретирует любое действие пользователя в кодах языка программирования VBA и записывает в программный модуль команды, которые получились в процессе работы. То есть, если мы при включенном макрорекордере, создадим нужный нам ежедневный отчёт, то макрорекордер всё запишет в своих командах пошагово и как итог создаст макрос, который будет создавать ежедневный отчёт автоматически.
Этот способ очень полезен тем, кто не владеет навыками и знаниями работы в языковой среде VBA. Но такая легкость в исполнении и записи макроса имеет свои минусы, как и плюсы:
- Записать макрорекордер может только то, что может пощупать, а значит записывать действия он может только в том случае, когда используются кнопки, иконки, команды меню и всё в этом духе, такие варианты как сортировка по цвету для него недоступна;
- В случае, когда в период записи была допущена ошибка, она также запишется. Но можно кнопкой отмены последнего действия, стереть последнюю команду которую вы неправильно записали на VBA;
- Запись в макрорекордере проводится только в границах окна MS Excel и в случае, когда вы закроете программу или включите другую, запись будет остановлена и перестанет выполняться.
Для включения макрорекордера на запись необходимо произвести следующие действия:
- в версии Excel от 2007 и к более новым вам нужно на вкладке «Разработчик» нажать кнопочку «Запись макроса»>;>
- в версиях Excel от 2003 и к более старым (они еще очень часто используются) вам нужно в меню «Сервис» выбрать пункт «Макрос» и нажать кнопку «Начать запись».
Следующим шагом в работе с макрорекордером станет настройка его параметров для дальнейшей записи макроса, это можно произвести в окне «Запись макроса», где:
- поле «Имя макроса» — можете прописать понятное вам имя на любом языке, но должно начинаться с буквы и не содержать в себе знаком препинания и пробелы;
- поле «Сочетание клавиш» — будет вами использоваться, в дальнейшем, для быстрого старта вашего макроса. В случае, когда вам нужно будет прописать новое сочетание горячих клавиш, то эта возможность будет доступна в меню «Сервис» — «Макрос» — «Макросы» — «Выполнить» или же на вкладке «Разработчик» нажав кнопочку «Макросы»>;
-
поле «Сохранить в…» — вы можете задать то место, куда будет сохранен (но не послан) текст макроса, а это 3 варианта:
- «Эта книга» — макрос будет записан в модуль текущей книги и сможет быть выполнен только в случае, когда данная книга Excel будет открыта;
- «Новая книга» — макрос будет сохранен в тот шаблон, на основе которого в Excel создается пустая новая книга, а это значит, что макрос станет доступен во всех книгах, которые будут создаваться на этом компьютере с этого момента;
- «Личная книга макросов» — является специальной книгой макросов Excel, которая называется «Personal.xls» и используется как специальное хранилище-библиотека макросов. При старте макросы из книги «Personal.xls» загружаются в память и могут быть запущены в любой книге в любой момент.
- поле «Описание» — здесь вы можете описать, что и как должен делать макрос, для чего он создавался и какие функции несет, это чисто информативное поле, что называется на память.
После того как вы запустили и записали свой макрос, выполнив все нужные действия, запись можно прекратить командой «Остановить запись» и ваш макрос с помощью макрорекордера будет создан.
Рекомендации по использованию макросов
Есть несколько рекомендаций, позволяющих значительно увеличить эффективность использования макросов в электронных таблицах:
- Перед тем, как записывать макрос с помощью рекордера, следует заранее продумать все свои действия, поскольку автоматизироваться будут все действия (в том числе, и ошибочные).
- Не стоит торопиться, поскольку паузы при записи макросов не учитываются. Вполне можно начать продумывать по ходу какие-то действия. А все записанные операции будут обработаны в один момент.
- Обязательно необходимо научиться использовать режим отладки макроса. Если возникают какие-то ошибки, он поможет обнаружить, в чем причина неполадки. На первых порах без ошибок не обойтись, потому что в реальной программе будет все не так идеально, как может показаться на первый взгляд.
- Перед использованием макросов, сделанных другими людьми, нужно настроить антивирусную программу на их обнаружение. Как правило, эта опция установлена по умолчанию.
- Если загружаются документы из сомнительных источников, следует выбрать опцию «Отключить макросы» при их открытии. И не рекомендуется менять настройки, которые выставлены по умолчанию в настройках безопасности Excel.
Как включать и отключать макросы в Excel
При помощи макросов в Эксель задаются специальные команды, благодаря которым можно автоматизировать часть задач и, тем самым, существенно уменьшить временные затраты на выполнение работы. Однако, макросы обладают уязвимостью к хакерским атакам и потенциально опасны. Следует помнить о том, что они несут в себе определенную угрозу, и этим могут воспользоваться злоумышленники. Решение о необходимости их применения нужно принимать, оценивая каждый конкретный случай.
К примеру, если пользователь не уверен в безопасности открываемого документа, от макросов целесообразнее будет отказаться, так как файл может нести в себе вирусный код
Разработчики программы принимают во внимание этот факт и дают пользователю возможность выбора. Именно поэтому в Экселе заложена функция настройки макросов, а точнее, их активности
Запись макроса
При записи макроса все необходимые действия записываются средством записи макроса. Такими действиями может быть ввод текста или чисел, выбор ячеек или команд на ленте или в меню, форматирование, выделение ячеек, строк или столбцов, а также выделение ячеек путем перетаскивания указателя мыши. Команды для записи, создания и удаления макросов доступны на вкладке ленты Разработчик.
Если вкладка Разработчик недоступна, выполните перечисленные ниже действия, чтобы открыть ее.
Выберите > Параметры Excel > & панель инструментов ленты.
В разделе Настройка лентывыберите Основные вкладки , а затем — разработчик.
Нажмите кнопку сохранить , а затем закройте настройки Excel.
На вкладке Разработчик нажмите кнопку Запись макроса.
Примечание: Чтобы создать макрос из VBE, щелкните Visual Basic. В окне кода модуля введите код макроса.
В поле Имя макроса введите имя макроса.
Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не должно содержаться пробелов; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса..
В списке Сохранить в выберите вариант эта книга.
В поле Сочетание клавиш введите прописную или строчную букву, которую хотите использовать.
Примечание: Выбранное сочетание клавиш заменяет все совпадающие стандартные сочетания клавиш Excel на то время, пока открыта книга, содержащая соответствующий макрос.
Введите описание макроса в поле Описание и нажмите кнопку ОК.
Завершите запись макроса.
На вкладке Разработчик щелкните Остановить запись.
Создание макроса – практический пример
Для примера возьмём самый обычный файл CSV. Это простая таблица 10х20, заполненная числами от 0 до 100 с заголовками для столбцов и строк. Наша задача превратить этот набор данных в презентабельно отформатированную таблицу и сформировать итоги в каждой строке.
Как уже было сказано, макрос – это код, написанный на языке программирования VBA. Но в Excel Вы можете создать программу, не написав и строчки кода, что мы и сделаем прямо сейчас.
Чтобы создать макрос, откройте View (Вид) > Macros (Макросы) > Record Macro (Запись макроса…)
Дайте своему макросу имя (без пробелов) и нажмите ОК.
Начиная с этого момента, ВСЕ Ваши действия с документом записываются: изменения ячеек, пролистывание таблицы, даже изменение размера окна.
Excel сигнализирует о том, что включен режим записи макроса в двух местах. Во-первых, в меню Macros (Макросы) – вместо строки Record Macro (Запись макроса…) появилась строка Stop Recording (Остановить запись).
Во-вторых, в нижнем левом углу окна Excel. Иконка Стоп (маленький квадратик) указывает на то, что включен режим записи макроса. Нажатие на неё остановит запись. И наоборот, когда режим записи не включен, в этом месте находится иконка для включения записи макроса. Нажатие на неё даст тот же результат, что и включение записи через меню.
Теперь, когда режим записи макроса включен, давайте займёмся нашей задачей. Первым делом, добавим заголовки для итоговых данных.
Далее, введите в ячейки формулы в соответствии с названиями заголовков (даны варианты формул для англоязычной и русифицированной версии Excel, адреса ячеек – всегда латинские буквы и цифры):
- =SUM(B2:K2) или =СУММ(B2:K2)
- =AVERAGE(B2:K2) или =СРЗНАЧ(B2:K2)
- =MIN(B2:K2) или =МИН(B2:K2)
- =MAX(B2:K2) или =МАКС(B2:K2)
- =MEDIAN(B2:K2) или =МЕДИАНА(B2:K2)
Теперь выделите ячейки с формулами и скопируйте их во все строки нашей таблицы, потянув за маркер автозаполнения.
После выполнения этого действия в каждой строке должны появиться соответствующие итоговые значения.
Далее, мы подведем итоги для всей таблицы, для этого делаем ещё несколько математических действий:
Соответственно:
- =SUM(L2:L21) или =СУММ(L2:L21)
- =AVERAGE(B2:K21) или =СРЗНАЧ(B2:K21) – для расчёта этого значения необходимо взять именно исходные данные таблицы. Если взять среднее значение из средних по отдельным строкам, то результат будет другим.
- =MIN(N2:N21) или =МИН(N2:N21)
- =MAX(O2:O21) или =МАКС(O2:O21)
- =MEDIAN(B2:K21) или =МЕДИАНА(B2:K21) – считаем, используя исходные данные таблицы, по причине указанной выше.
Теперь, когда с вычислениями закончили, займёмся форматированием. Для начала для всех ячеек зададим одинаковый формат отображения данных. Выделите все ячейки на листе, для этого воспользуйтесь комбинацией клавиш Ctrl+A, либо щелкните по иконке Выделить все, которая находится на пересечении заголовков строк и столбцов. Затем нажмите Comma Style (Формат с разделителями) на вкладке Home (Главная).
Далее, изменим внешний вид заголовков столбцов и строк:
- Жирное начертание шрифта.
- Выравнивание по центру.
- Заливка цветом.
И, наконец, настроим формат итоговых значений.
Вот так это должно выглядеть в итоге:
Если Вас все устраивает, остановите запись макроса.
Поздравляем! Вы только что самостоятельно записали свой первый макрос в Excel.
Чтобы использовать созданный макрос, нам нужно сохранить документ Excel в формате, который поддерживает макросы. Для начала необходимо удалить все данные из созданной нами таблицы, т.е. сделать из неё пустой шаблон. Дело в том, что в дальнейшем, работая с этим шаблоном, мы будем импортировать в него самые свежие и актуальные данные.
Чтобы очистить все ячейки от данных, щёлкните правой кнопкой мыши по иконке Выделить все, которая находится на пересечении заголовков строк и столбцов, и из контекстного меню выберите пункт Delete (Удалить).
Теперь наш лист полностью очищен от всех данных, при этом макрос остался записан. Нам нужно сохранить книгу, как шаблон Excel с поддержкой макросов, который имеет расширение XLTM.
Важный момент! Если Вы сохраните файл с расширением XLTX, то макрос в нём работать не будет. Кстати, можно сохранить книгу как шаблон Excel 97-2003, который имеет формат XLT, он тоже поддерживает макросы.
Когда шаблон сохранён, можно спокойно закрыть Excel.
Безопасность макросов в современных версиях Excel (2007 и более новых)
Чтобы запустить макрос в современных версиях Excel, файл должен быть сохранён как Книга Excel с поддержкой макросов. Открывая такой файл, по его расширению xlsm Excel понимает, что в данной рабочей книге содержатся макросы (в отличие от файла со стандартным расширением xlsx).
Поэтому, чтобы иметь возможность запускать созданный в обычной рабочей книге Excel макрос всегда и везде, нужно сохранить её с расширением xlsm. Для этого на вкладке Файл (File) нажмите Сохранить как (Save as) и в поле Тип файла (Save as type) выберите Книга Excel с поддержкой макросов (Excel Macro-Enabled Workbook).
Отличие в типе файлов ясно указывает на то, что рабочая книга содержит макросы, и это уже становится первым важным шагом к соблюдению мер безопасности. Помимо этого, в Excel существует несколько режимов безопасности макросов, выбрать один их которых можно в меню параметров приложения. Вот эти режимы:
-
Отключить все макросы без уведомления (Disable all macros without notification)
Запрет на выполнение любых макросов. При открытии книги Excel не уведомляет о том, что эта книга содержит макросы, поэтому пользователь может не понять причину, по которой книга Excel не работает так, как должна.
-
Отключить все макросы с уведомлением (Disable all macros with notification)
Запрет на выполнение макросов. Однако, если в рабочей книге есть макрос, появится предупреждение о том, что макрос присутствует, но отключен.
-
Отключить все макросы без цифровых подписей (Disable all macros except digitally signed macros)
Разрешено выполнение макросов только из доверенных источников. Все прочие макросы выполняться не будут. При открытии книги Excel не уведомляет о том, что эта книга содержит макросы, поэтому пользователь может не понять причину, по которой книга Excel не работает так, как должна.
-
Включить все макросы (Enable all macros)
Разрешено выполнение всех макросов. При открытии книги Excel не появляется уведомление о том, что в ней содержатся макросы. Соответственно пользователь может не знать, что какой-либо макрос выполняется, пока открыт файл.
Вариант Отключить все макросы с уведомлением — позволяет при открытии файла сделать выбор: разрешить запуск макросов или отключить их. При этом вверху листа появляется жёлтая полоса с уведомлением и кнопкой, как показано на рисунке ниже:
Чтобы разрешить выполнение макросов нужно просто кликнуть по кнопке Включить содержимое (Enable Content).
Как работать с макросами в Excel
5 простых советов, которые помогут в создании макросов без программирования. Воспользуйтесь этими простыми советами, которые позволяют быстро и просто создавать качественные макропрограммы автоматически:
1 Правильные имена в макросах.
Присваивайте макросам короткие, но содержательные имена. Когда вы войдете вкус, со временем вам придется создавать много макросов. При выборе в диалоговом окне их легче найти с короткими и содержательными названиями. Система VBA предоставляет вам возможность указать описание к имени. Обязательно используйте ее.
Имя макроса обязательно должно начинаться с букв и не может содержать пробелы, символы или знаки препинания. После первого символа, вы можете использовать больше букв, цифр или нижнее подчеркивание, но максимальная длина имени составляет 80 символов.
2 Используйте относительные (не абсолютные) адреса ячеек
Абсолютный адрес ячейки – это точное местонахождение курсора, когда информация о его размещении записывается в макро-адреса с жесткой привязкой к конкретной ячейке в момент записи. Абсолютные адреса ограничивают возможности макроса, если будут добавляться / удаляться данные на листе Excel или список данных будет становиться больше. Относительные средства не привязывают курсор к конкретному адресу ячейки.
По умолчанию в Excel включен режим «Абсолют», но вы можете изменить его, включив кнопку «Относительные ссылки» расположенную ниже под кнопкой «Запись макроса» на панели инструментов вкладки «Разработчик»:
3 Всегда начинайте запись с курсором в A1
Абсолютный отсчет ячеек, всегда ведется с исходного положения (адрес ячейки А1) – до адреса курсора с вашими данными. Если вы сохранили ваш макрос в книге личных макросов (рекомендуется так и делать), то вы можете использовать свою программу на других листах с аналогичными данными. Независимо от того, где ваш курсор позиционируется, когда вы начинаете запись макроса! Даже если он уже находится в ячейке A1, ваш первый макрос лучше записывать после нажатия клавиш должны быть Ctrl + Home.
Пример: Представьте себе, что каждый месяц вы получаете десятки таблиц из всех филиалов. От вас требуется организовать данные и рассчитать показатели, чтобы произвести еще один ежемесячный отчет. Вы можете записать макрос для выполнения всех этих функций, в том числе открытие и соединение всех листов в одну комбинированную таблицу.
4 Всегда перемещаться с клавиш направления в момент записи макроса
Используйте кнопки со стрелками для управления курсором (Ctrl + Up, и т.п.). Позиционируйте курсор, так чтобы вы могли добавить, изменить или удалить данные внутри таблицы по мере необходимости.
Использование мыши для навигации является более сложным и не так надежным в момент записи. Когда дело доходит до макросов, использовать мышь лучше только для вызова меню.
5 Создавайте макросы для конкретных небольших задач
Держите ваши макросы для небольших специфичных задач. Чем больше программный код в макросе, тем медленнее он работает, особенно если это требуется для выполнения многих функций или рассчитать много формул в большой электронной таблице.
Если вы запустите каждый процесс отдельно, вы можете быстро просмотреть результаты для проверки точности их выполнения.
Если нельзя разбить длинный макрос на короткие приложения, а требуется проверить его функциональность пошагово («отладкой»). Нажмите клавишу F8 каждый раз, когда вы хотите перейти к следующему шагу выполнения задачи. Процесс выполнения программы останавливается, когда он видит ошибку. Вы можете исправить ошибку, которую легко найти с помощью «отладки» или записать по-новому.