#Руководства
- 23 май 2022
-
0
Как с помощью макросов автоматизировать рутинные задачи в Excel? Какие команды они выполняют? Как создать макрос новичку? Разбираемся на примере.
Иллюстрация: Meery Mary для Skillbox Media
Рассказывает просто о сложных вещах из мира бизнеса и управления. До редактуры — пять лет в банке и три — в оценке имущества. Разбирается в Excel, финансах и корпоративной жизни.
Макрос (или макрокоманда) в Excel — алгоритм действий в программе, который объединён в одну команду. С помощью макроса можно выполнить несколько шагов в Excel, нажав на одну кнопку в меню или на сочетание клавиш.
Обычно макросы используют для автоматизации рутинной работы — вместо того чтобы выполнять десяток повторяющихся действий, пользователь записывает одну команду и затем запускает её, когда нужно совершить эти действия снова.
Например, если нужно добавить название компании в несколько десятков документов и отформатировать его вид под корпоративный дизайн, можно делать это в каждом документе отдельно, а можно записать ход действий при создании первого документа в макрос — и затем применить его ко всем остальным. Второй вариант будет гораздо проще и быстрее.
В статье разберёмся:
- как работают макросы и как с их помощью избавиться от рутины в Excel;
- какие способы создания макросов существуют и как подготовиться к их записи;
- как записать и запустить макрос начинающим пользователям — на примере со скриншотами.
Общий принцип работы макросов такой:
- Пользователь записывает последовательность действий, которые нужно выполнить в Excel, — о том, как это сделать, поговорим ниже.
- Excel обрабатывает эти действия и создаёт для них одну общую команду. Получается макрос.
- Пользователь запускает этот макрос, когда ему нужно выполнить эту же последовательность действий ещё раз. При записи макроса можно задать комбинацию клавиш или создать новую кнопку на главной панели Excel — если нажать на них, макрос запустится автоматически.
Макросы могут выполнять любые действия, которые в них запишет пользователь. Вот некоторые команды, которые они умеют делать в Excel:
- Автоматизировать повторяющиеся процедуры.
Например, если пользователю нужно каждый месяц собирать отчёты из нескольких файлов в один, а порядок действий каждый раз один и тот же, можно записать макрос и запускать его ежемесячно.
- Объединять работу нескольких программ Microsoft Office.
Например, с помощью одного макроса можно создать таблицу в Excel, вставить и сохранить её в документе Word и затем отправить в письме по Outlook.
- Искать ячейки с данными и переносить их в другие файлы.
Этот макрос пригодится, когда нужно найти информацию в нескольких объёмных документах. Макрос самостоятельно отыщет её и принесёт в заданный файл за несколько секунд.
- Форматировать таблицы и заполнять их текстом.
Например, если нужно привести несколько таблиц к одному виду и дополнить их новыми данными, можно записать макрос при форматировании первой таблицы и потом применить его ко всем остальным.
- Создавать шаблоны для ввода данных.
Команда подойдёт, когда, например, нужно создать анкету для сбора данных от сотрудников. С помощью макроса можно сформировать такой шаблон и разослать его по корпоративной почте.
- Создавать новые функции Excel.
Если пользователю понадобятся дополнительные функции, которых ещё нет в Excel, он сможет записать их самостоятельно. Все базовые функции Excel — это тоже макросы.
Все перечисленные команды, а также любые другие команды пользователя можно комбинировать друг с другом и на их основе создавать макросы под свои потребности.
В Excel и других программах Microsoft Office макросы создаются в виде кода на языке программирования VBA (Visual Basic for Applications). Этот язык разработан в Microsoft специально для программ компании — он представляет собой упрощённую версию языка Visual Basic. Но это не значит, что для записи макроса нужно уметь кодить.
Есть два способа создания макроса в Excel:
- Написать макрос вручную.
Это способ для продвинутых пользователей. Предполагается, что они откроют окно Visual Basic в Еxcel и самостоятельно напишут последовательность действий для макроса в виде кода.
- Записать макрос с помощью кнопки меню Excel.
Способ подойдёт новичкам. В этом варианте Excel запишет программный код вместо пользователя. Нужно нажать кнопку записи и выполнить все действия, которые планируется включить в макрос, и после этого остановить запись — Excel переведёт каждое действие и выдаст алгоритм на языке VBA.
Разберёмся на примере, как создать макрос с помощью второго способа.
Допустим, специальный сервис автосалона выгрузил отчёт по продажам за три месяца первого квартала в формате таблиц Excel. Эти таблицы содержат всю необходимую информацию, но при этом никак не отформатированы: колонки слиплись друг с другом и не видны полностью, шапка таблицы не выделена и сливается с другими строками, часть данных не отображается.
Скриншот: Skillbox Media
Пользоваться таким отчётом неудобно — нужно сделать его наглядным. Запишем макрос при форматировании таблицы с продажами за январь и затем применим его к двум другим таблицам.
Готовимся к записи макроса
Кнопки для работы с макросами в Excel находятся во вкладке «Разработчик». Эта вкладка по умолчанию скрыта, поэтому для начала разблокируем её.
В операционной системе Windows это делается так: переходим во вкладку «Файл» и выбираем пункты «Параметры» → «Настройка ленты». В открывшемся окне в разделе «Основные вкладки» находим пункт «Разработчик», отмечаем его галочкой и нажимаем кнопку «ОК» → в основном меню Excel появляется новая вкладка «Разработчик».
В операционной системе macOS это нужно делать по-другому. В самом верхнем меню нажимаем на вкладку «Excel» и выбираем пункт «Параметры…».
Скриншот: Skillbox Media
В появившемся окне нажимаем кнопку «Лента и панель».
Скриншот: Skillbox Media
Затем в правой панели «Настроить ленту» ищем пункт «Разработчик» и отмечаем его галочкой. Нажимаем «Сохранить».
Скриншот: Skillbox Media
Готово — вкладка «Разработчик» появилась на основной панели Excel.
Скриншот: Skillbox Media
Чтобы Excel смог сохранить и в дальнейшем использовать макрос, нужно пересохранить документ в формате, который поддерживает макросы. Это делается через команду «Сохранить как» на главной панели. В появившемся меню нужно выбрать формат «Книга Excel с поддержкой макросов».
Скриншот: Skillbox Media
Перед началом записи макроса важно знать об особенностях его работы:
- Макрос записывает все действия пользователя.
После старта записи макрос начнёт регистрировать все клики мышки и все нажатия клавиш. Поэтому перед записью последовательности лучше хорошо отработать её, чтобы не добавлять лишних действий и не удлинять код. Если требуется записать длинную последовательность задач — лучше разбить её на несколько коротких и записать несколько макросов.
- Работу макроса нельзя отменить.
Все действия, которые выполняет запущенный макрос, остаются в файле навсегда. Поэтому перед тем, как запускать макрос в первый раз, лучше создать копию всего файла. Если что-то пойдёт не так, можно будет просто закрыть его и переписать макрос в созданной копии.
- Макрос выполняет свой алгоритм только для записанного диапазона таблиц.
Если при записи макроса пользователь выбирал диапазон таблицы, то и при запуске макроса в другом месте он выполнит свой алгоритм только в рамках этого диапазона. Если добавить новую строку, макрос к ней применяться не будет. Поэтому при записи макроса можно сразу выбирать большее количество строк — как это сделать, показываем ниже.
Для начала записи макроса перейдём на вкладку «Разработчик» и нажмём кнопку «Записать макрос».
Скриншот: Skillbox Media
Появляется окно для заполнения параметров макроса. Нужно заполнить поля: «Имя макроса», «Сохранить в», «Сочетание клавиш», «Описание».
Скриншот: Skillbox Media
«Имя макроса» — здесь нужно придумать и ввести название для макроса. Лучше сделать его логически понятным, чтобы в дальнейшем можно было быстро его найти.
Первым символом в названии обязательно должна быть буква. Другие символы могут быть буквами или цифрами. Важно не использовать пробелы в названии — их можно заменить символом подчёркивания.
«Сохранить в» — здесь нужно выбрать книгу, в которую макрос сохранится после записи.
Если выбрать параметр «Эта книга», макрос будет доступен при работе только в этом файле Excel. Чтобы макрос был доступен всегда, нужно выбрать параметр «Личная книга макросов» — Excel создаст личную книгу макросов и сохранит новый макрос в неё.
«Сочетание клавиш» — здесь к уже выбранным двум клавишам (Ctrl + Shift в системе Windows и Option + Cmd в системе macOS) нужно добавить третью клавишу. Это должна быть строчная или прописная буква, которую ещё не используют в других быстрых командах компьютера или программы Excel.
В дальнейшем при нажатии этих трёх клавиш записанный макрос будет запускаться автоматически.
«Описание» — необязательное поле, но лучше его заполнять. Например, можно ввести туда последовательность действий, которые планируется записать в этом макросе. Так не придётся вспоминать, какие именно команды выполнит этот макрос, если нужно будет запустить его позже. Плюс будет проще ориентироваться среди других макросов.
В нашем случае с форматированием таблицы заполним поля записи макроса следующим образом и нажмём «ОК».
Скриншот: Skillbox Media
После этого начнётся запись макроса — в нижнем левом углу окна Excel появится значок записи.
Скриншот: Skillbox Media
Пока идёт запись, форматируем таблицу с продажами за январь: меняем ширину всех столбцов, данные во всех ячейках располагаем по центру, выделяем шапку таблицы цветом и жирным шрифтом, рисуем границы.
Важно: в нашем случае у таблиц продаж за январь, февраль и март одинаковое количество столбцов, но разное количество строк. Чтобы в случае со второй и третьей таблицей макрос сработал корректно, при форматировании выделим диапазон так, чтобы в него попали не только строки самой таблицы, но и строки ниже неё. Для этого нужно выделить столбцы в строке с их буквенным обозначением A–G, как на рисунке ниже.
Скриншот: Skillbox Media
Если выбрать диапазон только в рамках первой таблицы, то после запуска макроса в таблице с большим количеством строк она отформатируется только частично.
Скриншот: Skillbox Media
После всех манипуляций с оформлением таблица примет такой вид:
Скриншот: Skillbox Media
Проверяем, все ли действия с таблицей мы выполнили, и останавливаем запись макроса. Сделать это можно двумя способами:
- Нажать на кнопку записи в нижнем левом углу.
- Перейти во вкладку «Разработчик» и нажать кнопку «Остановить запись».
Скриншот: Skillbox Media
Готово — мы создали макрос для форматирования таблиц в границах столбцов A–G. Теперь его можно применить к другим таблицам.
Запускаем макрос
Перейдём в лист со второй таблицей «Февраль_2022». В первоначальном виде она такая же нечитаемая, как и первая таблица до форматирования.
Скриншот: Skillbox Media
Отформатируем её с помощью записанного макроса. Запустить макрос можно двумя способами:
- Нажать комбинацию клавиш, которую выбрали при заполнении параметров макроса — в нашем случае Option + Cmd + Ф.
- Перейти во вкладку «Разработчик» и нажать кнопку «Макросы».
Скриншот: Skillbox Media
Появляется окно — там выбираем макрос, который нужно запустить. В нашем случае он один — «Форматирование_таблицы». Под ним отображается описание того, какие действия он включает. Нажимаем «Выполнить».
Скриншот: Skillbox Media
Готово — вторая таблица с помощью макроса форматируется так же, как и первая.
Скриншот: Skillbox Media
То же самое можно сделать и на третьем листе для таблицы продаж за март. Более того, этот же макрос можно будет запустить и в следующем квартале, когда сервис автосалона выгрузит таблицы с новыми данными.
Научитесь: Excel + Google Таблицы с нуля до PRO
Узнать больше
Многих пользователей Microsoft Office интересует вопрос, как использовать макросы в Excel. Однако проблема в том, что этих же пользователей пугает само слово «макрос», ведь не все понимают, что это такое, и очень тесно связывают макросы с программированием. На самом деле, так и есть, макросы действительно связаны с программированием, но начать их использовать можно, не программируя ни строчки. Это возможно благодаря встроенным инструментам таблицы Excel, но об этом чуть ниже в статье.
Макрос — это набор инструкций, который помогает автоматизировать рутинные задачи при работе с редакторами разных видов. Макросы присутствуют в средах разработки и помогают программистам, также присутствуют в Word и оптимизируют работу с текстом. Но наиболее часто макросы используются в Excel. Это связано с тем, что при работе с таблицами есть очень много простых объемных и рутинных задач, которые можно автоматизировать, чтобы не тратить на них время. За автоматизацию этих задач как раз и отвечают макросы.
Как использовать макросы в Excel
Макросы нужны в тех случаях, когда вы часто выполняете одни и те же действия в Excel. По сути, макросы — это перечень из команд, которые вы указываете в таблице, а она их выполняет автоматически или по вашему требованию. Макросы существовали давно и используются во многих программах, но широкое распространение получили только благодаря компании Майкрософт и ее «офисным пакетам». Поэтому сегодня макросы пишутся на языке программирования Visual Basic, который также является продуктом компании Microsoft.
Как пользоваться макросами в Excel
Особенность макросов в MS Office состоит в том, что их выполнение не зависит от операционной системы или мощности компьютера. Все макросы выполняются лишь в пределах программы, для которой они написаны, поэтому, если на компьютере удалось запустить Excel, значит, в Excel можно будет запустить макрос.
Отчужденность от внешних программ рождает еще одну особенность макросов, а именно: они выполняются только в той программе, для которой написаны. То есть макросы, написанные для Excel, не будут работать в Word или Access, хотя все эти программы являются частью «офисного пакета» и в них поддерживаются макросы и язык Visual Basic. «Общим» может быть лишь тот макрос, который никак не затрагивает особенность отдельной программы и использует набор функций, которые поддерживаются всеми программами «офисного пакета».
Макросы можно использовать для разных задач в Excel, например:
удалять или добавлять столбцы и строки;
получать какую-то информацию из базы данных и проводить с ней различные манипуляции;
проводить расчеты и вводить полученные результаты в новую таблицу;
заполнять столбцы и строки, используя разные источники информации;
и др.
В общем, можно сказать так: любую работу в Excel можно автоматизировать с помощью макросов, даже если в процессе работы нужно обращаться к внешним приложениям. От сложности задач, которые нужно автоматизировать, будет зависеть вариант создания макросов.
Макросы в Excel можно создать двумя способами:
Используя знания языка программирования Visual Basic. Макросы в Excel пишутся на этом языке. Именно это и отпугивает большинство обычных пользователей от создания собственных макросов, ведь не каждый пользователь таблиц хочет изучать язык программирования для совершенствования работы с таблицами. Это идеальный способ создания макросов, однако он нужен только при создании сложных инструкций для Excel для автоматизации сложных рабочих моментов. Более простые макросы можно создавать вторым способом, описанным чуть ниже.
Используя возможности самой программы. Excel оборудован небольшой программой — макрорекордером. Эта программа нужна для записи несложных макросов. Суть ее работы заключается в том, чтобы переводить действия пользователя в язык программирования Visual Basic. Для пользователя это означает, что ему не нужно знать данный язык программирования. Все, что нужно сделать, — это запустить макрорекордер и нажать на пункт «Записать макрос», а потом нужно выполнять те действия в таблице, которые необходимо автоматизировать. Макрорекордер запишет действия пользователя и «переведет» их в Visual Basic, чтобы создать из них макрос. Пользователю останется лишь использовать записанный макрос. Для автоматизации сложных задач такой способ не рекомендуется, потому что чем сложнее задача, тем больше риск возникновения ошибок.
Запись макросов с помощью макрорекордера имеет несколько особенностей:
Макрорекордер записывает все действия, в том числе и ошибочные, поэтому перед записью макроса нужно четко продумать все свои действия заранее, чтобы не допускать ошибок.
Не нужно никуда спешить. Паузы в работе при записи не учитываются, поэтому при записи макроса работайте в комфортном темпе, чтобы не допускать ошибок.
Помимо записи собственных макросов, нужно еще научиться их отладке. Отладка макроса также встроена в 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 для ее отправки по электронной почте.
Чтобы записать макрос, следуйте инструкциям ниже.
-
На вкладке Разработчик в группе Код нажмите кнопку Запись макроса.
-ИЛИ-
Нажмите ALT+T+M+R.
-
В поле Имя макроса введите название макроса. Сделайте имя понятным, чтобы можно было быстро найти нужный макрос.
Примечание: Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не должно содержаться пробелов; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса..
-
Чтобы назначить сочетание клавиш для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву. Рекомендуется использовать сочетания клавиш с CTRL+SHIFT, так как они будут заменять собой совпадающие с ними стандартные сочетания клавиш в Excel, пока открыта книга, содержащая макрос. Например, если назначить сочетание клавиш CTRL+Z (Отменить), вы не сможете использовать его для функции «Отменить» в данном экземпляре Excel.
-
В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.
Как правило, макрос сохраняется в расположении Эта книга, но если вы хотите, чтобы макрос был доступен при использовании Excel, выберите Личная книга макроса . При выборе личнойкниги макроса Excel создает скрытую личную книгу макроса (Personal.xlsб), если она еще не существует, и сохраняет макрос в этой книге.
-
В поле Описание при необходимости введите краткое описание действий макроса.
Хотя поле «Описание» является необязательным, рекомендуется его заполнить. Кроме того, желательно ввести понятное описание, которое будет полезно вам и всем, кто запускает макрос. Если у вас много макросов, описания помогут быстро определить, для чего они нужны.
-
Чтобы начать запись макроса, нажмите кнопку ОК.
-
Выполните действия, которые нужно записать.
-
На вкладке Разработчик в группе Код нажмите кнопку Остановить запись .
-ИЛИ-
Нажмите ALT+T+M+R.
Работа с макросами, записанными в Excel
На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. Кроме того, можно нажать клавиши ALT+F8. При этом откроется диалоговое окно Макрос.
Внимание: Макросы нельзя отменить. Прежде чем впервые запускать записанный макрос, сохраните книгу или создайте ее копию, чтобы предотвратить внесение нежелательных изменений. Если вас не устраивают результаты выполнения макроса, вы можете закрыть книгу, не сохраняя ее.
Ниже приведены дополнительные сведения о работе с макросами в Excel.
Задача |
Описание |
Изменение параметров безопасности макросов в Excel |
Сведения о параметрах безопасности макросов и их значении. |
Запуск макроса |
Макросы можно запускать различными способами, например с помощью сочетания клавиш, графического объекта, панели быстрого доступа, кнопки или даже при открытии книги. |
Изменение макроса |
С помощью редактора Visual Basic можно изменять макросы, присоединенные к книге. |
Копирование модуля макроса в другую книгу |
Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic. |
Назначение макроса объекту, фигуре или графическому элементу |
|
Назначение макроса кнопке |
Вы можете назначить макрос значку и добавить его на панель быстрого доступа или ленту. |
Назначение макроса для элемента управления на листе |
Вы можете назначать макросы формам и элементам ActiveX на листе. |
Включение и отключение макросов в файлах Office |
Узнайте, как включать и отключать макросы в файлах Office. |
Открытие редактора Visual Basic |
Нажмите клавиши ALT+F11. |
Поиск справки по использованию редактора Visual Basic |
Узнайте, как найти справку по элементам Visual Basic. |
Работа с записанным кодом в редакторе Visual Basic (VBE)
С помощью редактора Visual Basic (VBE) вы можете добавлять в записанный код собственные переменные, управляющие структуры и другие элементы, которые не поддерживает средство записи макросов. Так как средство записи макросов фиксирует почти каждый шаг, выполняемый во время записи, может также потребоваться удалить ненужный код. Просмотр записанного кода — отличный способ научиться программировать на VBA или отточить свои навыки.
Пример изменения записанного кода можно найти в статье Начало работы с VBA в Excel.
Запись макроса
Перед записью макросов полезно знать следующее:
-
Макрос, записанный для работы с диапазоном Excel, будет выполняться только для ячеек этого диапазона. Поэтому если вы добавите в диапазон новую строку, макрос не будет применяться к ней.
-
Если вам нужно записать длинную последовательность задач, советуем вместо этого использовать несколько более мелких макросов.
-
В макросе могут содержаться и задачи, не относящиеся к Excel. Процесс макроса может охватывать прочие приложения Office и другие программы, которые поддерживают Visual Basic для приложений (VBA). Например, вы можете записать макрос, который сначала обновляет таблицу в Excel, а затем открывает Outlook для ее отправки по электронной почте.
Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее.
-
Перейдите в Excel > параметры…> ленты & панель инструментов.
-
В категории Настроить ленту в списке Основные вкладки установите флажок Разработчик, а затем нажмите кнопку Сохранить.
Чтобы записать макрос, следуйте инструкциям ниже.
-
На вкладке Разработчик нажмите кнопку Запись макроса.
-
В поле Имя макроса введите название макроса. Сделайте имя понятным, чтобы можно было быстро найти нужный макрос.
Примечание: Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не должно содержаться пробелов; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса..
-
В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.
Как правило, макрос сохраняется в расположении Эта книга, но если вы хотите, чтобы макрос был доступен при использовании Excel, выберите Личная книга макроса. При выборе личнойкниги макроса Excel создает скрытую личную книгу макроса (PERSONAL.XLSB), если она еще не существует, и сохраняет макрос в этой книге. Книги в этой папке открываются автоматически при Excel, и любой код, сохраненный в личной книге макроса, будет указан в диалоговом окну Макрос, которое объясняется в следующем разделе.
-
Чтобы назначить сочетание клавиш для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву. Рекомендуется использовать сочетания клавиш, которые еще не назначены другим командам, так как они будут переопределять совпадающие с ними стандартные сочетания клавиш в Excel, пока открыта книга, содержащая макрос.
-
В поле Описание при необходимости введите краткое описание действий макроса.
Хотя поле «Описание» является необязательным, рекомендуется его заполнить. Полезно ввести содержательное описание со всеми сведениями, которые могут быть полезны вам или другим пользователям, которые будут запускать макрос. Если у вас много макросов, описания помогут быстро определить, для чего они нужны.
-
Чтобы начать запись макроса, нажмите кнопку ОК.
-
Выполните действия, которые нужно записать.
-
На вкладке Разработчик щелкните Остановить запись.
Работа с макросами, записанными в Excel
На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. При этом откроется диалоговое окно Макрос.
Примечание: Макросы нельзя отменить. Прежде чем впервые запускать записанный макрос, сохраните книгу или создайте ее копию, чтобы предотвратить внесение нежелательных изменений. Если вас не устраивают результаты выполнения макроса, вы можете закрыть книгу, не сохраняя ее.
Ниже приведены дополнительные сведения о работе с макросами в Excel.
Задача |
Описание |
Включение и отключение макросов |
Узнайте, как включать и отключать макросы в Excel для Mac. |
Копирование модуля макроса в другую книгу |
Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic. |
Назначение макроса объекту, фигуре или графическому элементу |
|
Назначение макроса кнопке |
Вы можете назначить макрос значку и добавить его на панель быстрого доступа или ленту. |
Назначение макроса для элемента управления на листе |
Вы можете назначать макросы формам и элементам ActiveX на листе. |
Открытие редактора Visual Basic |
На вкладке Разработчик щелкните Visual Basic или выберите Сервис > Макрос > Редактор Visual Basic. |
Поиск справки по использованию редактора Visual Basic |
Узнайте, как найти справку по элементам Visual Basic. |
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Многие люди боятся использовать макросы в Excel, потому что считают их довольно сложными для понимания. Все потому, что они связаны с программированием. Но на практике все оказывается значительно проще, чем может показаться на первый взгляд. В программировании важно научиться строить алгоритмы. И если человек умеет кодить хотя бы на одном языке, ему значительно проще усвоить все остальные.
Мы приведем некоторые примеры макросов Excel, которые станут верными помощниками в выполнении наиболее частых задач.
Содержание
- Понятие макроса
- Когда какой тип записи макросов использовать?
- Пример использования макросов №1
- Пример 2
- Пример 3
- Пример 4
- Пример 5
- Пример 6
- Рекомендации по использованию макросов
- Выводы
Понятие макроса
Термин «Макрос» слышало множество людей. Нередко при запуске таблицы появляется предупреждение: “Этот документ использует макросы, способные навредить данному компьютеру, поэтому они отключены с целью защиты от вредоносных действий”.
Макрос – действенный способ автоматизировать самые частые действия, которые нужно выполнять в электронных таблицах. Макросы – это разновидность программирования. Разработка этих подпрограмм осуществляется с помощью языка VBA. Впрочем, некоторые виды макросов не требуют навыков программирования. Ведь существует еще такое понятие, как макрорекордер. Достаточно его включить и совершить некоторые действия, как далее они будут повторяться по нажатию одной кнопки.
Макросы могут быть реально опасными. Поскольку при их написании используется язык программирования, с его помощью можно создать настоящий вирус, который способен повредить информацию, а также собирать данные для злоумышленников (особенно опасно, если в таблице есть банковские данные, пароли и так далее).
Также макрос может запустить реальную троянскую программу на компьютере. Поэтому, чтобы не допустить вредоносных действий со стороны стороннего макроса, не стоит запускать макросы из сторонних источников, которым не доверяют.
Значительно проще объяснить, зачем нужны макросы, на реальном примере. Например, необходимо каждый день удалять из электронной таблицы несколько столбцов, а потом добавлять новые строки. Это невероятно утомительное занятие, отнимающее много времени. Если же воспользоваться макросами, есть реальная возможность значительно его сэкономить.
Макросы можно запускать по нажатию определенной комбинации клавиш. Например, если нажать Ctrl+J, можно запустить подпрограмму.
Интересный факт: известная программа бухгалтерского учета 1C изначально очень напоминала Excel, но потом ее функционал расширился до текущего.
Если же нужно давать компьютеру сложные инструкции, можно воспользоваться редактором Visual Basic, примеры кода в котором мы и рассмотрим немного позже.
Когда какой тип записи макросов использовать?
Если необходимо автоматизировать простейшие действия, достаточно использовать встроенный инструмент для записи макросов. То есть, если не приходится прописывать никаких условий, переменных и других подобных вещей. Просто обычная последовательность действий.
Если же необходимо программировать сложные действия, то тогда придется пользоваться встроенной средой VBA. Например, если необходимо записать в массив все элементы какого-то диапазона значений, определить его длительность, и при условии, что количество элементов массива не превышает определенного числа, выдавать какое-то сообщение. Здесь стандартного инструмента для записи макросов окажется недостаточно, необходимо изучать язык программирования и записывать команды в специальной среде. А интерпретатор в дальнейшем будет выполнять написанный код.
Пример использования макросов №1
Сперва этот пример кода использовался для демонстрации комментариев кода, написанного на VBA. Но поскольку он включает и иные возможности языка, он может применяться для демонстрации следующих функций:
- Объявление переменных.
- Указание ссылок на ячейки Excel.
- Применение цикла типа For.
- Применение условного оператора.
- Отображение оповещения.
‘ Подпрограмма для поиска ячеек с адресами A1-A100 текущего активного листа
‘ и поиска ячеек, в которых содержится требуемая строка
Sub Find_String(sFindText As String)
Dim i As Integer ‘ Целочисленная переменная, которая используется в цикле типа «For»
Dim iRowNumber As Integer ‘ Целочисленная переменная, предназначенная для сохранения результата
iRowNumber = 0
‘ Цикл через ячейки A1-A100 до тех пор, пока не будет найдена строка ‘sFindText’
For i = 1 To 100
If Cells(i, 1).Value = sFindText Then
‘ Совпадение обнаружено для заданной строки
‘ Сохранение текущего номера строки и выход из цикла
iRowNumber = i
Exit For
End If
Next i
‘ Всплывающее сообщение, информирующее пользователя о найденной строке и ее номере
If iRowNumber = 0 Then
MsgBox «String » & sFindText & » not found»
Else
MsgBox «String » & sFindText & » found in cell A» & iRowNumber
End If
End Sub
Пример 2
Эта процедура перечисляет все значения числовой последовательности Фибоначчи, вплоть до 1000. В этом примере приводятся следующие возможности макросов Excel:
- Объявление переменных.
- Цикл Do While.
- Ссылки на ячейки текущего листа Excel.
- Условный оператор.
‘ Подпрограмма для перечисления всех значений последовательности Fibonacci для всех значений ниже тысячи
Sub Fibonacci()
Dim i As Integer ‘ счетчик для позиции в серии значений
Dim iFib As Integer ‘ сохраняет текущее значение в серии
Dim iFib_Next As Integer ‘ сохраняет следующее значение в серии
Dim iStep As Integer ‘ хранит размер следующего шага
‘ Инициализация переменных variables i и iFib_Next
i = 1
iFib_Next = 0
‘ Цикл Do While, который исполняется до тех пор, пока номер
‘ числа в последовательности Фибоначчи меньше 1000.
Do While iFib_Next < 1000
If i = 1 Then
‘ Специальный случай для первой записи в серии
iStep = 1
iFib = 0
Else
‘ Сохраняется следующий размер шага, перед перезаписью
‘ текущей записи в серии
iStep = iFib
iFib = iFib_Next
End If
‘ Печать текущего значения последовательности Фибоначчи для столбца А
‘ текущего листа
Cells(i, 1).Value = iFib
‘ Вычисление следующего значения последовательности и увеличение
‘ маркера позиции на 1
iFib_Next = iFib + iStep
i = i + 1
Loop
End Sub
Пример 3
Следующий пример подпрограммы читает значения с ячейки в колонке A активного листа, пока не найдет пустую ячейку. Вся полученная информация сохраняется в массиве. Это простой пример макросов в электронных таблицах, который показывает:
- Как объявлять переменные.
- Работу динамического массива.
- Цикл Do Until.
- Ссылки на ячейки в текущем листе Excel.
- Встроенную функцию Ubound, которая предназначена для определения размера массива.
‘ Подпрограмма, которая хранит значения колонки А текущего листа
‘ в массиве
Sub GetCellValues()
Dim iRow As Integer ‘ сохраняется текущий номер строки
Dim dCellValues() As Double ‘ массив, в котором хранятся значения ячеек
iRow = 1
ReDim dCellValues(1 To 10)
‘ Цикл Do Until, который извлекает значение каждой ячейки в столбце А
‘ активного листа до тех пор, пока ячейка не окажется пустой
Do Until IsEmpty(Cells(iRow, 1))
‘ Проверка, достаточно ли большой массив dCellValues
‘ Если нет, используется ReDim, чтобы увеличить размер массива на 10 элементов.
If UBound(dCellValues) < iRow Then
ReDim Preserve dCellValues(1 To iRow + 9)
End If
‘ Сохраняется текущая ячейка в массиве CellValues
dCellValues(iRow) = Cells(iRow, 1).Value
iRow = iRow + 1
Loop
End Sub
Пример 4
Следующая процедура «Sub» читает содержимое ячеек из колонки А другого листа, имеющего название «Sheet2» и с этими значениями осуществляет арифметические операции. Результат вычислений пишется в колонке А текущего листа.
Этот пример показывает:
- Как объявлять переменные.
- Объекты Excel.
- Цикл Do Until.
- Доступ к листам электронных таблиц и диапазонам ячеек с текущей книги.
‘ Подпрограмма, запускающая цикл через значения в колонке А текущего листа
‘ «Sheet2», perform arithmetic operations on each value, and write the
‘ result into Column A of the current Active Worksheet («Sheet1»)
Sub Transfer_ColA()
Dim i As Integer
Dim Col As Range
Dim dVal As Double
‘ Установить переменную Col в колонку А листа 2
Set Col = Sheets(«Sheet2»).Columns(«A»)
i = 1
‘ Прохождение цикла через каждую ячейку колонки ‘Col’ до тех пор, пока
‘ не будет обнаружена пустая ячейка
Do Until IsEmpty(Col.Cells(i))
‘ Применение арифметических операций к значению текущей ячейки
dVal = Col.Cells(i).Value * 3 — 1
‘ Команда ниже копирует результат в колонку А
‘ текущего активного листа — без уточнения названия активного листа
Cells(i, 1) = dVal
i = i + 1
Loop
End Sub
Пример 5
Этот пример макроса приводит пример кода VBA, связанного с событием. Каждый раз, когда человек выделяет ячейку или диапазон значений, связанное с макросом событие активируется.
‘ Код для отображения диалогового окна ячейки B1 текущего листа в случае, если она выбрана
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
‘ Проверка, выбрана ли ячейка B1
If Target.Count = 1 And Target.Row = 1 And Target.Column = 2 Then
‘ При выборе ячейки B1 показать диалоговое окно
MsgBox «You have selected cell B1»
End If
End Sub
Пример 6
Следующая подпрограмма демонстрирует, как обрабатывать ошибки с помощью операторов OnError и Resume. Также в этом коде описывается, как открывать и читать данные с файла.
‘ Подпрограмма, для для установки определенных значений
‘ в ячейках A1 и B1 документа «Data.xls» на диске C:
Sub Set_Values(Val1 As Double, Val2 As Double)
Dim DataWorkbook As Workbook
On Error GoTo ErrorHandling
‘ Открытие документа с данными
Set DataWorkbook = Workbooks.Open(«C:Documents and SettingsData»)
‘ Выбрать переменные Val1 and Val2 с данных в книге Excel
Val1 = Sheets(«Sheet1»).Cells(1, 1)
Val2 = Sheets(«Sheet1»).Cells(1, 2)
DataWorkbook.Close
Exit Sub
ErrorHandling:
‘ Если файл не найден, предложить пользователю найти правильную директорию
‘ после чего продолжить выполнение подпрограммы
MsgBox «Data Workbook not found;» & _
«Please add the workbook to C:Documents and Settings and click OK»
Resume
End Sub
После детального ознакомления с этими примерами будет значительно легче применять свои навыки на практике.
Рекомендации по использованию макросов
Есть несколько рекомендаций, позволяющих значительно увеличить эффективность использования макросов в электронных таблицах:
- Перед тем, как записывать макрос с помощью рекордера, следует заранее продумать все свои действия, поскольку автоматизироваться будут все действия (в том числе, и ошибочные).
- Не стоит торопиться, поскольку паузы при записи макросов не учитываются. Вполне можно начать продумывать по ходу какие-то действия. А все записанные операции будут обработаны в один момент.
- Обязательно необходимо научиться использовать режим отладки макроса. Если возникают какие-то ошибки, он поможет обнаружить, в чем причина неполадки. На первых порах без ошибок не обойтись, потому что в реальной программе будет все не так идеально, как может показаться на первый взгляд.
- Перед использованием макросов, сделанных другими людьми, нужно настроить антивирусную программу на их обнаружение. Как правило, эта опция установлена по умолчанию.
- Если загружаются документы из сомнительных источников, следует выбрать опцию «Отключить макросы» при их открытии. И не рекомендуется менять настройки, которые выставлены по умолчанию в настройках безопасности Excel.
Выводы
Таким образом, макросы – это эффективный инструмент автоматизации рабочих процессов в Excel. Он позволяет автоматизировать даже самые сложные последовательности действий. Если необходимо сделать простую программку, то достаточно воспользоваться встроенной функцией для записи макросов. Для более сложных необходимо освоить язык VBA, который является простым для изучения и очень гибким.
Если используются сторонние макросы, обязательно нужно побеспокоиться о безопасности их использования.
Оцените качество статьи. Нам важно ваше мнение:
Как автоматизировать рутинные задачи в Excel с помощью макросов
- Смотрите также
- уменьшить ширину кода. вы сохранили ваш
- «Параметры». В появившемся
- (Trusted Locations). except digitally signed
- CellValue As Integer(Разработчик).
чтобы автоматизировать задачиНазначение макроса кнопкеСохранить в. совпадающие с ними ввод текста или Excel пишет программный по иконке И наоборот, когдаЧто такое Макрос? Данная настройка редактора макрос в книге окне «Параметры Excel»На вкладке macros)Разрешено выполнение макросов CellValue = ActiveCell.ValueВ следующем примере Вы
в Microsoft Office.Вы можете назначить макросвыберите книгу, вВ поле стандартные сочетания клавиш чисел, выбор ячеек код вместо Вас.Выделить все режим записи не
Что такое Макрос?
Создание макроса – практический распространяется на все личных макросов (рекомендуется открываем группу «НастройкаФайл только из доверенных Select Case CellValue увидите, как использовать В своих примерах значку и добавить которой вы хотитеНазначить макроса в Excel, пока или команд наЧтобы увидеть этот программный, которая находится на включен, в этом пример листы, но в так и делать), ленты». Обратите внимание(File) нажмите источников. Все прочие Case 60 To
цикл я использую Excel его на панель сохранить макрос.выберите макрос, который открыта книга, содержащая ленте или в
- код, нужно в
- пересечении заголовков строк месте находится иконкаВыполнение макроса в Excel
- границах одной рабочей то вы можете на правую колонкуПараметры
- макросы выполняться не
- 200 MsgBox «TheFOR 2010, но с
Создание макроса – практический пример
быстрого доступа илиКак правило, макросы сохраняются вы хотите назначить. макрос. Например, если меню, форматирование ячеек, меню и столбцов, и для включения записиЗаглянем под капот: Как книги. использовать свою программу настроек под аналогичным(Options). будут. При открытии
person is old». Цикл таким же успехом ленту. вНазначение макроса кнопке назначить сочетание клавиш строк или столбцовMacros из контекстного меню
макроса. Нажатие на работает макрос?Выберите инструмент: «Insert»-«Module» чтобы на других листах названием «Настройка ленты».В открывшемся диалоговом окне книги Excel не
Case 30 ToFOR Вы можете использоватьНазначение макроса для элементатой же книге
Вы можете назначить макросCTRL+Z и даже импорт(Макросы) на вкладке выберите пункт неё даст тот
Добавим ещё один шаг создать новый стандартный с аналогичными данными. В ней следует выберите уведомляет о том, 59 MsgBox «Theпозволяет нам выполнить Excel 2007. управления на листе, но если вам значку и добавить(Отменить), вы не
данных из внешнегоViewDelete же результат, что к нашей задаче… модуль для макросов. Независимо от того, отметить галочкой опциюЦентр управления безопасностью что эта книга person is adult» повторение цикла сДля начала откройте вкладкуВы можете назначать макросы нужно, чтобы данный его на панель сможете использовать его источника, такого как(Вид) кликнуть
(Удалить). и включение записиExcel располагает мощнейшей, но В появившемся окне где ваш курсор «Разработчик» как показано
(Trust Center) и содержит макросы, поэтому Case 18 To разными значениями. ДавайтеView формам и элементам макрос был всегда быстрого доступа или для функции «Отменить»
- Microsoft Access. VisualView MacrosТеперь наш лист полностью
- через меню. в то же модуля под текстом
- позиционируется, когда вы ниже на рисунке: нажмите кнопку
- пользователь может не 29 MsgBox «The посмотрим, как можно
- (Вид) на Ленте. ActiveX на листе. доступен при работе
ленту. в данном экземпляре Basic для приложений(Макросы) и в очищен от всехТеперь, когда режим записи
время очень редко Option Explicit введите начинаете запись макроса!Теперь нам доступна на
Параметры центра управления безопасностью понять причину, по person is young» заполнить числами от В выпадающем списке
Открытие редактора Visual Basic
- в Excel, выберитеНазначение макроса для элемента Excel.
- (VBA) является частью открывшемся диалоговом окне данных, при этом макроса включен, давайте используемой, возможностью создавать следующий код макроса: Даже если он ленте новая закладка(Trust Center Settings). которой книга Excel Case 0 To
- 1MacrosНа вкладке
- вариант Личная книга управления на листеВ списке
- языка программирования Visual нажать макрос остался записан. займёмся нашей задачей. автоматически выполняющиеся последовательностиSub MyMakros() уже находится в
«Разработчик» со всемиВ меню слева нажмите не работает так, 17 MsgBox «Theдо(Макросы) нажмите кнопкуРазработчик макросов. Если выВы можете назначать макросыСохранить в Basic. Он доступенEdit Нам нужно сохранить Первым делом, добавим действий с помощьюDim polzovatel As ячейке A1, ваш своими инструментами дляНадёжные расположения как должна. person is a5
Record Macroщелкните выберете этот параметр,
- формам и элементам
- выберите книгу, в
- в большинстве приложений
(Изменить). книгу, как шаблон
заголовки для итоговых макросов. Макрос –
String первый макрос лучше
автоматизации работы в(Trusted Locations).Включить все макросы child» Case Else
ячейки(Запись макроса).Visual Basic Excel создаст скрытую ActiveX на листе. которой вы хотите Office. Хотя VBAОткроется окно Excel с поддержкой данных. идеальный выход, еслиDim data_segodnya As записывать после нажатия Excel и созданияЕсли нужно сохранить книгу(Enable all macros)Разрешено MsgBox «Unknown age»
A1:A5Откроется диалоговое окноили выберите личную книгу макросовВключение и отключение макросов сохранить макрос. позволяет автоматизировать процессыVisual Basic for Applications макросов, который имеетДалее, введите в ячейки Вы имеете дело Date
клавиш должны быть макросов. Excel в другом выполнение всех макросов. End Select End.Record MacroСервис Personal.xlsb (если она в файлах OfficeКак правило, макросы сохраняются
в приложениях Office, в котором мы расширение формулы в соответствии с однотипной задачей,polzovatel = Application.UserName Ctrl + Home.Макросы – это внутренние расположении и по-прежнему При открытии книги SubДля этого на вкладке(Запись Макроса).
> еще не существует)
Выполнение макроса в Excel
Узнайте, как включать и в расположении и между ними, увидим программный кодXLTM с названиями заголовков которая повторяется множество
- data_segodnya = Now
- Пример: Представьте себе, что приложения, которые берут
разрешать выполнение макросов, Excel не появляетсяЧтобы протестировать этот пример,DeveloperЗадайте имя макросу (неМакрос и сохранит макрос отключать макросы вЭта книга вам не нужно записанного нами макроса.. (даны варианты формул раз. Например, обработкаMsgBox «Макрос запустил
каждый месяц вы на себя всю то можно добавить уведомление о том, Вы должны выбрать(Разработчик) нажмите допускаются пробелы и> в нее. Книги файлах Office., но если вы уметь программировать или Да, Вы правильноВажный момент! для англоязычной и данных или форматирование пользователь: » & получаете десятки таблиц рутинную работу, облегчая выбранную папку в что в ней
ячейку со значениемVisual Basic специальные символы), клавишуРедактор Visual Basic из этой папкиОткрытие редактора Visual Basic хотите, чтобы макрос
знать язык VBA, поняли, здесь этотЕсли Вы сохраните русифицированной версии Excel, документов по стандартизированному polzovatel & vbNewLine
из всех филиалов. жизнь пользователю. Каждый список надёжных расположений. содержатся макросы. Соответственно и запустить макрос.. Дважды кликните по быстрого вызова, а. автоматически открываются при
Нажмите клавиши был всегда доступен так как все код можно изменить файл с расширением адреса ячеек – шаблону. При этом & data_segodnya От вас требуется
пользователь может создать Это делается так: пользователь может не Если значение выбранной объекту из списка также, где быПоиск справки по использованию каждом запуске Excel,ALT+F11 при работе в нужные действия выполнит и даже создатьXLTX всегда латинские буквы Вам не требуетсяEnd Sub организовать данные и
Заглянем под капот: Как работает макрос?
макрос без знанияВ разделе знать, что какой-либо ячейки, к примеру,Microsoft Excel Objects Вы хотели сохранить редактора Visual Basic а макросы, сохраненные. Excel, выберите пункт средство записи макросов. новый макрос. Те, то макрос в и цифры):
знание языков программирования.Нажмите на кнопку в рассчитать показатели, чтобы языков программирования. ДляНадёжные расположения макрос выполняется, пока равно, в котором должен свой макрос. ПриУзнайте, как найти справку в таких книгах,Поиск справки по использованию Личная книга макросов.
Важно знать, что при действия, которые мы нём работать не=SUM(B2:K2)Вам уже любопытно, что редакторе «Run Macro» произвести еще один этого существует макрорекодер,(Trusted Locations) нажмите открыт файл.44 быть сохранён макрос. желании, Вы можете по элементам Visual указываются в окне редактора Visual Basic Если выбрать этот записи макроса регистрируются совершали с таблицей будет. Кстати, можноили
Добавим ещё один шаг к нашей задаче…
такое макрос, и или клавишу F5 ежемесячный отчет. Вы который запускается с кнопкуВариант, то будет показано Введите вот такой добавить описание. Basic. «Макрос» (см. следующийУзнайте, как найти справку вариант, Excel создаст почти все ваши в этом уроке, сохранить книгу как=СУММ(B2:K2)
- как он работает? на клавиатуре. В можете записать макрос помощью кнопки «ЗаписьДобавить новое расположение
- Отключить все макросы с вот такое сообщение: код:С этого момента макрос
- Возможности Excel не ограничиваются раздел). по элементам Visual скрытую личную книгу действия. Поэтому если вполне можно записать шаблон Excel 97-2003,=AVERAGE(B2:K2)
- Тогда смелей вперёд появившемся окне «Macros»
- для выполнения всех макроса».
- (Add new location). уведомлениемМакросы
Sub Macro1 () записывает действия. Например, набором встроенных функций.Чтобы назначить сочетание клавиш Basic. макросов Personal.xlsb (если
вы допустите ошибку, с помощью автоматической который имеет форматили – далее мы нажмите на кнопку этих функций, вВ этом режиме всеВыберите папку, которую нужно– позволяет при
– это отличный For n =
Вы можете ввести
При помощи написания
для запуска макроса,
office-guru.ru
Автоматизация задач с помощью средства записи макросов — Excel
С помощью редактора Visual она еще не например нажмете не записи макроса вXLT=СРЗНАЧ(B2:K2) шаг за шагом «Run», чтобы посмотреть том числе открытие действия пользователя макрорекодер объявить надёжным расположением открытии файла сделать способ автоматизировать задачи 1 To 5 слово « макросов Вы можете в поле Basic (VBE) вы существует) и сохранит ту кнопку, средство Excel. Но более
, он тоже поддерживает=MIN(B2:K2) проделаем весь процесс результат работы макроса. и соединение всех в Excel записывает, и нажмите выбор: разрешить запуск в Excel. Эта Cells(n, 1) =Hello создавать собственные функцииСочетание клавиш можете добавлять в макрос в ней.
записи макросов зарегистрирует
сложные макросы, с макросы.или создания макроса вместеПримечание. Если в главном листов в одну переводя на языкОК макросов или отключить статья показывает лишь n Next n» в ячейку для выполнения нестандартныхвведите любую строчную записанный код собственныеВ поле это действие. В тонко настроенной последовательностьюКогда шаблон сохранён, можно=МИН(B2:K2) с Вами. меню отсутствует закладка комбинированную таблицу. программирования VBA-код в. их. При этом немногие примеры того, End SubA1 задач в Excel. или прописную букву.
переменные, управляющие структурыОписание таком случае можно и логикой действий спокойно закрыть Excel.=MAX(B2:K2)Макрос в Microsoft Office «РАЗРАБОТЧИК», тогда ееИспользуйте кнопки со стрелками автоматическом режиме. ПослеПредупреждение: вверху листа появляется что можно сделатьСохраните файл. Чтобы выполнить.Например, самостоятельно написанный макрос Рекомендуется использовать сочетания и другие элементы,при необходимости введите
снова записать всю требуют программирования вручную.Прежде чем раскрыть всеили (да, этот функционал необходимо активировать в для управления курсором завершения записи мыНе рекомендуется добавлять
Запись макроса
жёлтая полоса с при помощи макросов.
-
макрос, перейдитеТеперь снова нажмите иконку можно привязать к клавиш, которые еще которые не поддерживает краткое описание действий последовательность или изменитьПредставьте, что наш исходный возможности созданного Вами
-
=МАКС(B2:K2) работает одинаково во настройках: «ФАЙЛ»-«Параметры»-«Настроить ленту». (Ctrl + Up, получаем готовую программу,
-
в список надёжных уведомлением и кнопкой,Урок подготовлен для ВасViewMacros иконке и вывести не назначены другим средство записи макросов. макроса. код VBA. Поэтому файл с данными макроса, считаю правильным=MEDIAN(B2:K2) многих приложениях пакета В правом списке и т.п.). Позиционируйте
которая сама выполняет расположений большие разделы
-
как показано на командой сайта office-guru.ru>(Макросы) и в на Ленту меню. командам, так как Так как средство
Хотя поле «Описание» является
перед записью процессаdata.csv обратить внимание наили Microsoft Office) – «Основные вкладки:» активируйте курсор, так чтобы те действия, которые жёсткого диска, например,
-
рисунке ниже:Источник: https://www.ablebits.com/office-addins-blog/2012/05/03/tutorial-excel-macros/Macros раскрывшемся меню выберите Либо Вы можете они будут переопределять записи макросов фиксирует
необязательным, рекомендуется его следует хорошо проработатьсоздаётся автоматически каким-то пару важных моментов,=МЕДИАНА(B2:K2) это программный код галочкой опцию «Разработчик» вы могли добавить, выполнял пользователь при целиком папкуЧтобы разрешить выполнение макросовПеревел: Антон Андронов>Stop Recording создать пользовательскую функцию совпадающие с ними почти каждый шаг,
-
заполнить. Кроме того, его. Чем точнее процессом и сохраняется касающихся макросов вТеперь выделите ячейки с на языке программирования и нажмите на изменить или удалить записи.Мои документы нужно просто кликнутьАвтор: Антон АндроновView Macros(Остановить запись). (UDF) и использовать стандартные сочетания клавиш выполняемый во время желательно ввести понятное вы запишете последовательность, на диске всегда целом: формулами и скопируйтеVisual Basic for Applications кнопку ОК. данные внутри таблицы
-
Как записать готовый макрос(My Documents), так по кнопкеБезопасность макросов Excel –(Вид > Макросы
Доступ к записанному макросу ее точно так в Excel, пока записи, может также описание, которое будет тем более эффективно в одном иМакрос может нанести вред. их во все(VBA), сохранённый внутри по мере необходимости. в Excel? Очень как при этомВключить содержимое это защита от
-
> Макросы), выберите можно получить с же, как и открыта книга, содержащая потребоваться удалить ненужный
полезно вам и будет работать макрос. том же месте.Ещё раз прочти предыдущий строки нашей таблицы, документа. Чтобы былоМакросы позволяют автоматизировать процессыИспользование мыши для навигации просто: значительно возрастает риск(Enable Content). вирусов, которые могут
-
из списка название помощью команды остальные встроенные функции макрос.
-
код. Просмотр записанного всем, кто запускает
-
Макросы и средства VBA Например, пункт. потянув за маркер понятнее, документ Microsoft работы с документами является более сложным
На вкладке «Разработчик» нажимаем
выполнения макроса, полученногоВот как можно просматривать проникнуть в компьютер нужного макроса иView Macros Excel.В поле кода — отличный макрос. Если у
Работа с макросами, записанными в Excel
находятся на вкладкеC:Datadata.csvVBA-код обладает очень большими автозаполнения. Office можно сравнить и не только… и не так кнопку «Запись макроса». из ненадёжного источника. или изменять параметры вместе с макросами. нажмите(Макросы), которая находится
Макрос — это компьютерныйОписание способ научиться программировать вас много макросов,Разработчик– путь к возможностями. В частности,После выполнения этого действия со страницей HTML, Они могут практически надежным в моментВ появившимся диалоговом окне
В Microsoft Office 2003 безопасности макросов в Безопасность макросов значительно
Run
на вкладке
код, написанный дляпри необходимости введите |
на VBA или описания помогут быстро, которая по умолчанию |
файлу с обновляемыми |
он может выполнять в каждой строке тогда макрос – одновременно выполнить тысячи записи. Когда дело заполняем параметры макроса. существует 4 уровня |
Excel 2007, 2010 |
изменилась со времени(Выполнить).View Excel на языке |
краткое описание действий отточить свои навыки. |
определить, для чего скрыта, поэтому сначала данными. Процесс открытия операции с файлами должны появиться соответствующие это аналог Javascript. инструментов за одну доходит до макросов, |
И нажимаем «ОК». безопасности макросов, управлять |
|
операцию (даже по |
использовать мышь лучшеПосле завершения нажимаем на которыми можно вОткройте главное меню Excel, Excel 2003, поэтому |
« меню |
for Applications (VBA).Хотя это необязательная в можно найти в |
Чтобы начать запись макроса, Дополнительные сведения см. |
импорта данных из документа. Например, макросДалее, мы подведем итоги |
умеет делать с |
одному клику мышкой). только для вызова кнопку «Остановить запись», |
меню Excel. К для этого кликните |
в рамках даннойHello WorldMacros |
Работа с записанным кодом в редакторе Visual Basic (VBE)
Базовые понятия языка поле Описание, рекомендуется статье Начало работы нажмите кнопку в статье Отображение него тоже можно может удалять или для всей таблицы, данными в формате Таким образом расширяются меню. после чего макрос ним относятся: по большой круглой темы особенности старых» в окне сообщений(Макросы). Откроется диалоговое программирования VBA рассматриваются введите один. Полезно
с VBA вОК вкладки «Разработчик». записать в макрос: изменять любые файлы
Запись макроса
для этого делаем HTML, находящимися на
-
возможности работы сДержите ваши макросы для будет автоматически сохранен.Высокая / Очень высокая кнопке и новых версий Windows. окно на нашем сайте
-
введите понятное описание Excel..Перед записью макросов полезноОткройте файл шаблона, в
-
в папке ещё несколько математических web-странице, очень похоже программой. небольших специфичных задач.Для выполнения или редактированияЭти два уровня разрешаютOffice Excel будут рассмотреныSub MacroName() MsgBoxMacro в Учебнике по сведениями, которые могутПеред записью макросов полезноВыполните действия, которые нужно знать следующее:
котором мы сохранилиМои документы действий: на то, чтоЧитайте также: Как работать Чем больше программный
-
записанного макроса нажимаем запуск макросов тольков левом верхнем раздельно: («Hello World!») End(Макрос), в котором VBA. Однако прежде
-
быть полезны для знать следующее: записать.Макрос, записанный для работы макрос —. По этой причинеСоответственно: макрос может делать с макросами в код в макросе,
на кнопку «Макросы» из надёжных источников.
-
углу. Далее нажмитеБезопасность макросов в современных Sub Вы сможете выбрать чем приступить к
-
вас или другихМакрос, записанный для работыНа вкладке с диапазоном Excel,FormatData запускайте и разрешайте=SUM(L2:L21)
с данными в Excel 2010 без тем медленнее он (или комбинацию клавиш Все прочие макросыПараметры Excel версиях Excel (2007В следующем примере мы нужный. Дважды кликните написанию кода VBA, пользователей, которые будут с диапазоном Excel,Разработчик будет выполняться только. выполнение макросов толькоили
-
документе Microsoft Office. программирования кода работает, особенно если ALT+F8). Появится окно не будут запущены.
(Excel Options). и более новых) создаём сообщение с по имени макроса, рекомендуем познакомиться с выполняться макрос. При будет выполняться тольков группе для ячеек этогоСоздайте новый макрос с из источников, которым=СУММ(L2:L21)Макросы способны выполнить практическиС помощью макросов пользователь это требуется для со списком записанных При открытии книгиВ появившемся диалоговом окнеБезопасность макросов в Excel выбором чтобы выполнить программу. уроками, в которых создании много макросы, для ячеек этогоКод
-
диапазона. Поэтому если именем Вы доверяете.=AVERAGE(B2:K21) любые действия в может сам создать выполнения многих функций макросов и кнопками Excel не уведомляет выберите 2003YesКроме этого, Вы можете рассматривается безопасность макросов описание помогут вам диапазона. Поэтому если
-
нажмите кнопку вы добавите вLoadDataЧтобы запустить наш макрос,или
документе, которые Вы свой инструмент, которого или рассчитать много для управления ими. о том, чтоЦентр управления безопасностьюЧтобы запустить макрос в(Да) или связать макрос с Excel и редактор быстро определять, какие вы добавите вОстановить запись диапазон новую строку,.
-
форматирующий данные, откройте=СРЗНАЧ(B2:K21) только можете пожелать. ему недостает в
-
формул в большойС помощью макропрограмм можно
-
эта книга содержит(Trust Center) и современных версиях Excel,No кнопкой. Для этого:
Работа с макросами, записанными в Excel
Visual Basic. макрос по исполнителям, диапазон новую строку,. макрос не будетВ процессе записи макроса файл шаблона, который— для расчёта Вот некоторые из арсенале программы Excel.
электронной таблице. увеличить производительность труда макросы, поэтому пользователь нажмите кнопку файл должен быть(Нет). Если выбратьНа вкладкеВ Excel предусмотрена встроенная в противном случае макрос не будет-ИЛИ- применяться к ней.
LoadData мы создали в этого значения необходимо
них (очень малая
Например, когда нужно
Если вы запустите каждый |
пользователя в десятки может не понятьПараметры центра управления безопасностью |
сохранён как Книга вариант |
File защита от вирусов, может потребоваться угадать. применяться к ней.НажмитеЕсли вам нужно записатьсделайте импорт данных |
первой части этого взять именно исходные |
часть): автоматически выделить каждую процесс отдельно, вы раз. Но чтобы причину, по которой(Trust Center Settings). Excel с поддержкойYes |
(Файл) нажмите которые могут проникнуть |
|
макросов. Открывая такой |
(Да), то значениеOptions в компьютер через нажмите кнопку длинную последовательность задач, |
+ советуем вместо этого |
data.csv Вас стандартные настройки взять среднее значение |
Выполнять различные операции с |
кликом. Или нужно результаты для проверки макросов на все работает так, какПараметры макросов файл, по его ячейки будет удалено.(Параметры) > макросы. Если хотитеОК советуем вместо этого |
T использовать несколько более |
– как мы безопасности, то при из средних по |
support.office.com
Самоучитель по работе с макросами в Excel
числовыми и текстовыми одновременно создать сразу точности их выполнения. 100% следует соблюдать должна.(Macro Settings) выберите расширению
Sub MacroName() DimQuick Access Toolbar запустить в книге. использовать несколько более+ мелких макросов. это делали в открытии файла сверху отдельным строкам, то данными.
определенное количество копийЕсли нельзя разбить длинный простые правила, которыеСредняя нужный параметр иxlsm Answer As String(Панель быстрого доступа). Excel макрос, убедитесь,Выполните действия, которые нужно мелких макросов.MВ макросе могут содержаться предыдущей части урока. над таблицей появится результат будет другим.Использовать внешние источники данных
Настройка разрешения для использования макросов в Excel
определенного рабочего листа. макрос на короткие существенно влияют наЕсли в книге присутствуют нажмитеExcel понимает, что Answer = MsgBox(«AreВ поле что параметры безопасности
записать.В макросе могут содержаться+ и задачи, не
Редактор Visual Basic
Когда импорт будет завершён, предупреждение о том,=MIN(N2:N21) (файлы баз данных, Список потребностей пользователей приложения, а требуется их качество в макросы, то приОК в данной рабочей you sure youChoose commands from настроены правильно.На вкладке и задачи, не
R относящиеся к Excel. остановите запись макроса. что запуск макросов
Запись макросов
или текстовые документы и в автоматизации процессов проверить его функциональность момент записи и открытии книги появится. книге содержатся макросы want to delete
(Выбрать команды из)Кликните эту ссылку, чтобыРазработчик относящиеся к Excel.
Учебник Excel VBA
. Процесс макроса можетУдалите все данные из отключен, и кнопка,=МИН(N2:N21) т.д.)
работы можно продолжать пошагово («отладкой»). Нажмите эффективность при выполнении.
окно уведомления сНа вкладке
(в отличие от
the cell values
выберите
office-guru.ru
Руководство и примеры работы с макросами в Excel
- узнать больше ощелкните
- Процесс макроса может
- На вкладке
- охватывать прочие приложения
ячеек. чтобы включить их=MAX(O2:O21)Создавать новый документ. до бесконечности. клавишу F8 каждый вопросом, следует лиФайл файла со стандартным ?», vbQuestion +All Commands параметрах безопасности макросовОстановить запись охватывать прочие приложенияРазработчик Office и другиеСохраните файл, как шаблон выполнение. Так какилиПроделывать все вышеперечисленные действияЕсли бы не было
Создаем макрос при помощи команды «Запись макроса»
- раз, когда вы5 простых советов, которые эти макросы запускать.(File) нажмите расширением vbYesNo, «Delete cell»)(Все команды). в Excel. Office и другиещелкните
- программы, которые поддерживают Excel с поддержкой шаблон мы сделали=МАКС(O2:O21) в любой их возможности создавать макросы хотите перейти к помогут в созданииНизкая
- Параметрыxlsx If Answer =Найдите командуВ Excel есть встроенныйНа вкладке программы, которые поддерживаютМакросы
- Visual Basic для макросов (расширение XLTM). самостоятельно и себе=MEDIAN(B2:K21) комбинации. во всех программах,
следующему шагу выполнения макросов без программирования.Все макросы выполняются. При(Options).). vbYes Then ActiveCell.ClearContentsOption Button редактор Visual Basic,Разработчик Visual Basic для, чтобы просмотреть макросы, приложений (VBA). Например,Таким образом, запустив этот мы доверяем, тоилиДля примера возьмём самый входящих в пакет задачи. Процесс выполнения
Воспользуйтесь этими простыми открытии книги ExcelВ открывшемся диалоговом окне
- Поэтому, чтобы иметь возможность End If End(Кнопка), нам нужна который хранит кодщелкните приложений (VBA). Например, связанные с книгой.
- вы можете записать шаблон, Вы получаете нажимаем кнопку=МЕДИАНА(B2:K21) обычный файл MS Office. То
- программы останавливается, когда советами, которые позволяют не появляется уведомление выберите запускать созданный в Sub та, что относится макроса и взаимодействуетМакросы вы можете записать Кроме того, можно макрос, который сначала доступ к двумEnable Content
- — считаем, используяCSV множество операций в он видит ошибку. быстро и просто о том, что
- Центр управления безопасностью
обычной рабочей книгеДавайте проверим этот код. к разделу с книгой Excel., чтобы просмотреть макросы, макрос, который сначала нажать клавиши обновляет таблицу в макросам – один(Включить содержимое). исходные данные таблицы,. Это простая таблица процессе рутинной работы Вы можете исправить создавать качественные макропрограммы в ней содержатся(Trust Center) и
Excel макрос всегда Выделите ячейку иForm Control Редактор Visual Basic связанные с книгой. обновляет таблицу вALT+F8 Excel, а затем загружает данные, другойСледующим шагом, мы импортируем по причине указанной 10х20, заполненная числами пользователям приходилось бы ошибку, которую легко автоматически: макросы. Соответственно пользователь нажмите кнопку и везде, нужно запустите макрос. Вам(Элементы управления формы). выделяет ошибки в При этом откроется Excel, а затем. При этом откроется открывает Outlook для их форматирует. последний обновлённый набор выше.
Цикл FOR
от 0 до выполнять вручную (выделять найти с помощьюПрисваивайте макросам короткие, но может не знать,Параметры центра управления безопасностью сохранить её с будет показано вот Выделите ее и синтаксисе языка программирования диалоговое окно открывает Outlook для диалоговое окно ее отправки поЕсли есть желание заняться данных из файлаТеперь, когда с вычислениями
100 с заголовками через одну строку «отладки» или записать содержательные имена. Когда что какой-либо макрос(Trust Center Settings). расширением такое сообщение: нажмите и предоставляет инструментыМакрос
ее отправки поМакрос электронной почте. программированием, Вы можетеCSV закончили, займёмся форматированием.
для столбцов и кликая по каждому по-новому. вы войдете вкус, выполняется, пока открытВ разделеxlsmЕсли Вы нажмётеAdd отладки для отслеживания. электронной почте..Чтобы записать макрос, следуйте
объединить действия этих(на основе такого Для начала для строк. Наша задача второму заголовку мышкой
Каждый пользователь сталкивался с со временем вам файл.
Параметры макро. Для этого наYes(Добавить). Затем нажмите работы и обнаруженияПримечание:Макросы и средства VBAВнимание: инструкциям ниже. двух макросов в файла мы создавали
всех ячеек зададим превратить этот набор или копировать вставлять тем, что иногда придется создавать многоЕсли хотите запустить макроссов вкладке(Да), значение вОК ошибок в коде, Макросы нельзя отменить. Прежде
находятся на вкладке Макросы нельзя отменить. ПреждеНа вкладке один – просто наш макрос).
одинаковый формат отображения данных в презентабельно по одному листу). в Excel не макросов. При выборе в Excel 2003,(Macro Settings) выберитеФайл
Конструкция IF
выделенной ячейке будет, чтобы закрыть параметры помогая таким образом чем впервые запускатьРазработчик чем впервые запускатьРазработчик скопировав код изПри выполнении импорта данных данных. Выделите все отформатированную таблицу и Ручная работа в найти подходящих инструментов, в диалоговом окне
то безопасность макросов нужный параметр и(File) нажмите удалено. А если Excel. разработчику при написании записанный макрос, сохраните, которая по умолчанию записанный макрос, сохранитев группеLoadData из CSV-файла, возможно,
ячейки на листе, сформировать итоги в лучшем случаи приводить которые бы соответствовали их легче найти
должна быть выбрана нажмитеСохранить как
NoВыберите команду, только что
Конструкция CASE
кода. книгу или создайте скрыта, поэтому сначала книгу или создайтеКодв начало кода Excel попросит Вас для этого воспользуйтесь каждой строке. к потере огромного потребностям. При всем
с короткими иНизкаяОК(Save as) и(Нет) – значение добавленную на ПанельКликните эту ссылку, чтобы ее копию, чтобы нужно включить ее. ее копию, чтобынажмите кнопкуFormatData настроить некоторые параметры комбинацией клавишКак уже было сказано, количества времени, а изобилии возможностей Excel содержательными названиями. Система(Low) или.
в поле сохранится. быстрого доступа, и узнать больше о предотвратить внесение нежелательныхВыберите предотвратить внесение нежелательныхЗапись макроса. для правильной передачи
Заключение
Ctrl+A макрос – это в худшем – иногда нельзя автоматизировать VBA предоставляет вамСредняяЗамечание:Тип файла
В Microsoft Excel Вы начертите контур кнопки
редакторе Visual Basic
изменений. Если вас
Excel
office-guru.ru
Безопасность макросов Excel
изменений. Если вас.Урок подготовлен для Вас данных в таблицу., либо щелкните по код, написанный на ведет к ошибкам решения некоторых задач, возможность указать описание(Medium).Потребуется перезапустить Excel,(Save as type) также можете использовать на рабочем листе
- в Excel не устраивают результаты>
- не устраивают результаты-ИЛИ-
Безопасность макросов в современных версиях Excel (2007 и более новых)
командой сайта office-guru.ruКогда импорт будет закончен, иконке языке программирования VBA. или даже потере ведь совершенству нет к имени. ОбязательноЧтобы открыть и настроить чтобы новые настройки выберите конструкцию Excel.Инструментарий Excel для записи выполнения макроса, выПараметры выполнения макроса, выНажмите
Источник: http://www.howtogeek.com/162975/geek-school-learn-how-to-use-excel-macros-to-automate-tedious-tasks/ зайдите в менюВыделить все Но в Excel ценных данных. предела. Идеальное решение используйте ее. параметры безопасности макросов безопасности макросов вступилиКнига Excel с поддержкойIFНазначьте макрос объекту. макросов – это можете закрыть книгу,> можете закрыть книгу,ALTПеревел: Антон АндроновMacros, которая находится на Вы можете создать
Возможность создавать макросы и – это предоставлениеИмя макроса обязательно должно в Excel 2003, в силу. макросов. В этом кодеПримечание: отличный способ эффективно не сохраняя ее.Лента и панель не сохраняя ее.+Автор: Антон Андронов(Макросы) на вкладке
- пересечении заголовков строк программу, не написав автоматизировать рабочие процессы возможности пользователю самому начинаться с букв нужно:Excel 2007, 2010 и(Excel Macro-Enabled Workbook). мы будем раскрашиватьЕсли у вас выполнять простые повторяющиесяНиже приведены дополнительные сведения.Ниже приведены дополнительные сведенияT
- Примечание:View и столбцов. Затем и строчки кода, бережет вашу работу создавать свои специфические и не можетОткрыть меню 2013 позволяет объявитьОтличие в типе файлов
- ячейки в зависимости включена вкладка задачи. Также его о работе сВ категории о работе с+ Мы стараемся как можно(Вид) и выберите нажмите что мы и от лишних потерь инструменты. Для этого содержать пробелы, символыСервис выбранные папки на ясно указывает на от их значения.
- Developer можно использовать, как макросами в Excel.Настроить ленту макросами в Excel.M оперативнее обеспечивать вас командуComma Style сделаем прямо сейчас. времени и возникновения были созданы макросы.
или знаки препинания.> жёстком диске компьютера то, что рабочая Если значение в(Разработчик), то получить вспомогательное средство приЗадачав спискеЗадача+ актуальными справочными материаламиView Macros
(Формат с разделителями)Чтобы создать макрос, откройте ошибок. Далее рассмотрим,Код макроса Excel написанный После первого символа,
Где найти параметры безопасности макросов в Excel
Макрос как надёжные расположения. книга содержит макросы, ячейке больше доступ к элементам
Excel 2007
- написании более сложныхОписаниеОсновные вкладкиОписаниеR на вашем языке.(Макросы). на вкладкеView
- как создать макрос, на языке Visual вы можете использовать> При открытии файлов, и это уже20
- управления формы можно макросов.Включение и отключение макросовустановите флажокИзменение параметров безопасности макросов. Эта страница переведена
Excel 2010 или 2013
- В открывшемся диалоговом окнеHome(Вид) > который безошибочно и Basic for Application
- больше букв, цифрБезопасность хранящихся в таких становится первым важным, то шрифт станет с нее. ДляКликните эту ссылку, чтобы
- Узнайте, как включать иРазработчик в ExcelВ поле автоматически, поэтому ее мы увидим строку(Главная).Macros
автоматически выполнить рутинную (VBA), а его или нижнее подчеркивание,(Tools > Macro расположениях, Excel не
Надёжные расположения в современных версиях Excel (2007 и более новые)
шагом к соблюдению красным, иначе – этого перейдите на узнать больше о отключать макросы в, а затем нажмитеСведения о параметрах безопасностиИмя макроса текст может содержать с именем нашегоДалее, изменим внешний вид(Макросы) > работу в один выполняет инструмент приложения, но максимальная длина > Security): выполняет стандартную проверку мер безопасности. Помимо синим.
вкладку записи макросов в Excel для Mac. кнопку макросов и ихвведите название макроса. неточности и грамматические
Excel 2007
- макроса заголовков столбцов иRecord Macro клик мышкой. Так к которому он имени составляет 80Установить нужный уровень безопасности безопасности макросов. Другими этого, в Excel
- Sub MacroName() DimDeveloper ExcelСоздание, выполнение, изменение илиСохранить значении. Сделайте имя понятным,
- ошибки. Для насFormatData строк:
Excel 2010 или 2013
- (Запись макроса…) же рассмотрим в присоединен. Большинство этих символов. и нажать
- словами, если поместить существует несколько режимов CellValue As Integer(Разработчик), нажмите наДля тех, кто только удаление макроса .
- Запуск макроса чтобы можно было важно, чтобы эта
. Выберите его иЖирное начертание шрифта.Дайте своему макросу имя каких местах рабочей инструментов не доступноАбсолютный адрес ячейки –ОК файл Excel в
- безопасности макросов, выбрать CellValue = ActiveCell.Value иконку начинает осваивать языкЧтобы сэкономить время наЧтобы записать макрос, следуйте
- Макросы можно запускать различными быстро найти нужный статья была вам нажмитеВыравнивание по центру.
(без пробелов) и книги Excel можно на уровне окна это точное местонахождение. папку, которая объявлена один их которых If CellValue >Insert программирования Excel VBA, выполнении часто повторяющихся инструкциям ниже.
Безопасность макросов в Excel 2003
способами, например с макрос. полезна. Просим васRunЗаливка цветом. нажмите
- создавать и хранить программы Excel. Как курсора, когда информацияЧтобы новые настройки безопасности надёжной, то при можно в меню 20 Then With(Вставить) и из предлагаем небольшой вводный задач, можно записатьНа вкладке помощью сочетания клавиш,Примечание: уделить пару секунд(Выполнить).И, наконец, настроим формат
- ОК макросы. Как их написать макрос. о его размещении макросов вступили в открытии этого файла параметров приложения. Вот
- Selection.Font .Color = раскрывающегося меню выберите курс по Visual соответствующую последовательность действийРазработчик графического объекта, панели Первым символом имени макроса и сообщить, помоглаКогда макрос начнёт работать, итоговых значений..
запустить и выполнить,Теперь продемонстрируем на примере записывается в макро-адреса силу, потребуется перезапустить все макросы, записанные эти режимы: -16776961 End With нужный элемент.
Basic for Applications. в виде макроса.нажмите кнопку быстрого доступа, кнопки
- должна быть буква. ли она вам, Вы увидите, какВот так это должноНачиная с этого момента, а также как информацию о том, с жесткой привязкой
- Excel. в нём, будутОтключить все макросы без Else With Selection.Font
Не знаете, как отобразитьКликните эту ссылку, чтобы Узнайте, как создаватьЗапись макроса
или даже при Последующие символы могут
с помощью кнопок
табличный курсор прыгает
выглядеть в итоге:
office-guru.ru
Как работать с макросами в Excel 2010 без программирования кода
ВСЕ Ваши действия их максимально оптимизировать как писать, редактировать к конкретной ячейкеУрок подготовлен для Вас запущены независимо от уведомления .ThemeColor = xlThemeColorLight2 вкладку перейти к учебнику и выполнять макросы.
. открытии книги. быть буквами, цифрами внизу страницы. Для с ячейки наЕсли Вас все устраивает, с документом записываются:
под свои потребности. и выполнять код в момент записи. командой сайта office-guru.ru состояния параметров безопасности.(Disable all macros .TintAndShade = 0Developer Excel VBAКопирование модуля макроса вВ полеИзменение макроса или знаками подчеркивания. удобства также приводим ячейку. Через несколько
остановите запись макроса. изменения ячеек, пролистываниеExcel предоставляет большой и макроса. Абсолютные адреса ограничиваютИсточник: http://www.excelfunctions.net/Excel-Macro-Security.htmlMicrosoft по умолчанию присваивает
Применение VBA и макросов в Microsoft Excel
without notification)Запрет на End With End(Разработчик)? Excel 2007:Урок подготовлен для Вас другую книгуИмя макросаС помощью редактора Visual В имени макроса ссылку на оригинал секунд с даннымиПоздравляем! Вы только что таблицы, даже изменение
изобильный арсенал инструментовЧтобы написать макрос: возможности макроса, еслиПеревел: Антон Андронов некоторым расположениям статус выполнение любых макросов. If End Sub жмем на кнопку командой сайта office-guru.ruЕсли книга содержит макросвведите название макроса. Basic можно изменять
не должно содержаться (на английском языке). будут проделаны те
- самостоятельно записали свой размера окна.
- для хранения иОткройте рабочую книгу Excel, будут добавляться /
- Автор: Антон Андронов надёжных, их список При открытии книгиДля проверки этого кода
- OfficeИсточник: http://www.excelfunctions.net/Writing-Excel-Macros.html VBA, который нужно Сделайте имя понятным, макросы, присоединенные к пробелов; в качествеДля автоматизации повторяющихся задач, же операции, что
первый макрос вExcel сигнализирует о том, обработки огромного количества в которой необходимо удаляться данные наМакросы позволяют существенно расширить хранится в разделе Excel не уведомляет выберем ячейку со>Перевел: Антон Андронов использовать где-либо еще,
чтобы можно было
Как работать с макросами в Excel
книге. разделителей слов следует вы можете записать и при записи Excel. что включен режим информации с данными. использовать макрос: «РАЗРАБОТЧИК»-«Код»-«Visual
1 Правильные имена в макросах.
листе Excel или возможности в программе параметров безопасности Excel. о том, что значениемExcel OptionsАвтор: Антон Андронов этот модуль можно быстро найти нужныйКопирование модуля макроса в использовать знаки подчеркивания. макрос с средство макроса. Когда всёЧтобы использовать созданный макрос,
записи макроса в Хотя для самой Basic». Или нажмите список данных будет Excel. Они автоматизируют Открыть список надёжных эта книга содержитбольше 20(Параметры Excel) >Создаём макрос при помощи скопировать в другую макрос.
2 Используйте относительные (не абсолютные) адреса ячеек
другую книгу Если используется имя записи макросов в будет готово, таблица нам нужно сохранить двух местах. Во-первых, универсальной аналитической программы комбинацию горячих клавиш становиться больше. Относительные рабочие процессы и расположений можно так: макросы, поэтому пользователь:Popular команды Запись макроса книгу с помощьюПримечание:Если книга содержит макрос
макроса, являющееся ссылкой Microsoft Excel. Представьте должна выглядеть так документ Excel в в меню Excel – хранение ALT+F11. средства не привязывают берут большую часть
3 Всегда начинайте запись с курсором в A1
Откройте главное меню Excel, может не понятьКогда Вы запустите макрос,(Основные) и ставимЦикл FOR редактора Microsoft Visual Первым символом имени макроса VBA, который нужно на ячейку, может имеют даты в же, как и формате, который поддерживаетMacros данных само поПеред началом работы в курсор к конкретному рутинной работы пользователя для этого кликните причину, по которой цвет шрифта изменится галочку напротив опцииКонструкция IF Basic. должна быть буква. использовать где-либо еще,
появиться сообщение об форматах случайных и оригинал, который мы макросы. Для начала(Макросы) – вместо себе менее интересно, редакторе следует сделать адресу ячейки. на себя. Просто по большой круглой книга Excel не на красный:Show Developer tab inКонструкция CASEНазначение макроса объекту, фигуре Последующие символы могут
4 Всегда перемещаться с клавиш направления в момент записи макроса
этот модуль можно ошибке, указывающее на вы хотите применить форматировали вручную, только необходимо удалить все строки чем возможность их простую настройку. ВыберитеПо умолчанию в Excel
нужно научится пользоваться кнопке работает так, какПри выполнении второго условия the RibbonМногие люди думают, что или графическому элементу быть буквами, цифрами скопировать в другую
5 Создавайте макросы для конкретных небольших задач
недопустимое имя макроса.. ко всем адресам с другими данными данные из созданнойRecord Macro обрабатывать, структурировать и инструмент в редакторе включен режим «Абсолют», макросами и производительностьOffice должна.
шрифт станет синим:(Показывать вкладку «Разработчик» макросы в ExcelНа листе щелкните правой или знаками подчеркивания.
книгу с помощьюЧтобы назначить сочетание клавиш единый формат. Макрос в ячейках. нами таблицы, т.е.(Запись макроса…) появилась анализировать с презентацией Visual Basic: «Tools»-«Options». но вы можете труда возрастет вв левом верхнемОтключить все макросы сВы также можете использовать на ленте). Excel – это очень кнопкой мыши объект, В имени макроса
exceltable.com
Как написать макрос в Excel на языке программирования VBA
редактора Microsoft Visual для запуска макроса, сделать это заКак уже не раз сделать из неё строка в отчетах. Для И на вкладке изменить его, включив десятки раз! углу. Далее нажмите уведомлением конструкцию 2010: жмем по трудно, но это рисунка, фигуры или
Написание макросов в Excel
не должно содержаться Basic. в поле вас. Запись макроса, упоминалось, макрос — пустой шаблон. ДелоStop Recording этих целей служит «Editor» активируйте опцию кнопку «Относительные ссылки»Вам даже не нужно
Параметры Excel(Disable all macrosCase вкладке не так. В
элемент, к которому
- пробелов; в качествеНазначение макроса объекту, фигуреСочетание клавиш применив нужный формат это программный код в том, что
- (Остановить запись). сильнейший аналитических инструмент «Require Variable Declaration». расположенную ниже под быть программистом и(Excel Options). with notification)Запрет на, чтобы связать выполнениеFile этой статье Вы нужно назначить существующий разделителей слов следует или графическому элементувведите любую строчную и затем воспроизводить на языке программирования в дальнейшем, работаяВо-вторых, в нижнем левом по обработке данных Это позволит реализовать кнопкой «Запись макроса» знать язык программированияВ появившемся диалоговом окне
- выполнение макросов. Однако, действия с появлением(Файл) > найдёте несколько интересных макрос и выберите использовать знаки подчеркивания.На листе щелкните правой
или прописную букву.
макроса при необходимости.Visual Basic for Applications
с этим шаблоном, углу окна Excel.
такой как «Сводные
автоматическое заполнение инструкций
на панели инструментов «VBA» чтобы создавать выберите если в рабочей
определённого значения в - Options и простых примеров, команду Если используется имя кнопкой мыши объект, Рекомендуется использовать сочетанияWindows MacOS (VBA). Когда Вы
мы будем импортировать Иконка таблицы». Но и Options Explicit в вкладки «Разработчик»: свои макро-программы сЦентр управления безопасностью книге есть макрос, ячейке. В следующем(Параметры) >
как можно автоматизировать
Возможности макросов в Excel
Назначить макрос макроса, являющееся ссылкой рисунка, фигуры или клавиш сПри записи макроса все включаете режим записи в него самыеСтоп его можно еще начале каждого новоАбсолютный отсчет ячеек, всегда
помощью инструмента записи(Trust Center) и появится предупреждение о примере отображается сообщение,
Customize Ribbon Ваши повседневные задачи. на ячейку, может элемент, к которомуCTRL необходимые действия записываются макроса, Excel фактически свежие и актуальные(маленький квадратик) указывает более усовершенствовать с созданного кода. А ведется с исходного макросов. нажмите кнопку том, что макрос
содержание которого зависит(Настройка ленты) и в Excel. МакросВ поле появиться сообщение об нужно назначить существующий+ в виде кода записывает каждое сделанное данные. на то, что помощью макросов. И в поле ввода положения (адрес ячейкиСначала надо включить панельПараметры центра управления безопасностью присутствует, но отключен. от указанного возраста в правом списке – это программаНазначить макроса ошибке, указывающее на
макрос и выберитеSHIFT Visual Basic для Вами действие вЧтобы очистить все ячейки включен режим записи тогда возможности сводных «Tab Width:» укажите А1) – до разработчика. Для этого(Trust Center Settings).Отключить все макросы без человека. включаем вкладку на Visual Basic,выберите макрос, который недопустимое имя макроса.. команду, так как они приложений (VBA). Такими
виде инструкций на от данных, щёлкните макроса. Нажатие на таблиц не знают значение 2 вместо адреса курсора с в меню «Файл»В меню слева нажмите цифровых подписейSub MacroName() DimDeveloper созданная для того, вы хотите назначить.В спискеНазначить макрос будут заменять собой действиями может быть языке VBA. По-простому, правой кнопкой мыши неё остановит запись. границ. 4-х. Это позволит вашими данными. Если открываем группу опцийНадёжные расположения
exceltable.com
(Disable all macros
Экономисты в повседневной работе сталкиваются с рутинной работой: с определенной периодичностью им приходится выполнять одну и ту же последовательность действий для получения определенного отчета, например. Частично автоматизировать такую работу можно с помощью макросов. Причем для написания несложных команд достаточно знать только азы программирования.
Как записать самый простой макрос?
Для начала запишем самый легкий макрос — зададим в ячейке А1 формат вида 12 345:
- Открываем новую книгу, в ячейке А1 набираем шестизначное число 123456. Сейчас оно выдается без разделителей разрядов. Запишем макрос, который ставит эти разделители.
- Заходим на панели инструментов в закладку Вид*, находим кнопку Макросы, жмем Запись макроса. В появившемся окне задаем имя макроса и книгу, в которой хотим этот макрос сохранить.
Важно
Запустить макросы можно только из открытых книг, поэтому если вы планируете использовать записанные вами макросы довольно часто, стоит использовать специальную книгу макросов, которая автоматически открывается вместе с запуском сеанса Excel.
Если вы все-таки хотите хранить макросы в отдельном файле, эту книгу нужно сохранить, выбрав тип файла Книга Excel с поддержкой макросов. В противном случае после закрытия книги макросы будут стерты.
- Выбираем Сохранить в… — Личная книга макросов и нажимаем Ок (рис. 1).
Рис. 1. Запись макроса в личную книгу макросов
- Записываем в макрос действия, которые хотим выполнить: вызываем контекстное меню Формат ячеек (можно воспользоваться комбинацией клавиш Сtrl+1) и задаем нужный нам формат числа: на закладке Число идем в блок (все форматы) и выбираем там формат вида # ##0.
К сведению
Этот формат можно задать и в блоке Числовой, но чуть позже вам станет ясно, почему мы воспользовались блоком Все форматы.
- На закладке Вид — Макросы выбираем пункт Остановить запись.
Второй, более быстрый способ остановить запись макроса — нажать на появившийся в левом нижнем углу синий квадратик (рис. 2.).
Мы рекомендуем
Всегда обращайте внимание на этот квадратик: если он появился на панели, значит, сейчас идет запись всех ваших действий в макрос. Не забывайте вовремя останавливать запись макроса, чтобы потом его не пришлось переделывать.
Проверяем, что макрос записан и работоспособен:
- в ячейку А2 вбиваем любое шестизначное число;
- запускаем макрос одним из двух способов: на закладке Вид — Макросы выбираем пункт Макросы или нажимаем комбинацию клавиш Alt+F8, находим в списке наш макрос и нажимаем кнопку Выполнить.
Рис. 2. Форматирование числа и остановка записи макроса
Итак, вы записали свой первый макрос! Примите поздравления. Теперь давайте познакомимся с личной книгой макросов и синтаксисом написания команд для макроса.
Личная книга макросов
По умолчанию Excel не отображает личную книгу макросов. Чтобы убедиться, что она открыта, выбираем на вкладке Вид кнопку Отобразить — в появившемся окне должна быть книга под именем PERSONAL.
Мы убедились, что книга открыта, но отображать ее не будем, чтобы потом по ошибке не закрыть ее. По сути, в этой книге нас интересует так называемый Исходный текст — блок, в котором записываются макросы. Чтобы увидеть это окно, нажмите клавиши Alt+F11 или кликните правой кнопкой мыши на ярлыке любого листа Excel и выберите в контекстном меню Исходный текст. Откроется окно VBA-кодирования в Excel (рис. 3). Оно состоит из двух блоков:
1. В левой части экрана окно Project – VBAProject — это проводник, в котором отображаются все открытые в данный момент книги Excel (даже если вы их не видите, как, например, книгу Personal). Работа с этим блоком аналогична работе в обычном проводнике — двойной клик по наименованию книги раскрывает ее содержимое. Нас интересует блок Modules — Module1. Кликаем левой кнопкой мыши дважды по этому объекту.
2. В правой части экрана откроется блок записи и редактирования макросов. Здесь уже автоматически записался Макрос1. Рассмотрим на его примере основную канву макроса.
Рис. 3. Окно VBA-кодирования в Excel
Синтаксис макроса
Макросы — это команды, написанные на языке VBA (Visual Basic for Applications). И синтаксис кода макроса не отличается от записи кода в Visual Basic.
Любой макрос имеет следующий вид:
Sub Имя_Макроса_Без_Пробелов()
‘ комментарии к макросу — они нужны для вас, VBA не воспринимает такие строки как команды
команды, написанные на языке VBA
End Sub
3 обязательных блока макроса:
1. Начало макроса. Всегда начинается с команды Sub. Далее идет имя макроса — оно может быть на русском языке, но не должно содержать пробелы и специальные символы.
В конце имени макроса всегда ставятся скобки () — они нужны, когда вы создаете свою функцию, в них указываются аргументы функции, но об этом сейчас речь не пойдет.
2. Блок команд. В нашем примере он состоит из одной строки: Selection.NumberFormat = «#,##0»
Каждая команда должна начинаться с новой строки. Если текст команды очень длинный и не помещается на экране, его можно разбить на несколько строк, заканчивая строку символом нижнего подчеркивания _ (далее в примере мы это увидим).
3. Конец макроса. Всегда обозначается как End Sub.
Есть и один необязательный блок — это комментарии, которые вы можете оставлять в любом месте внутри кода макроса, поставив перед началом комментариев знак апострофа ‘. Например, вы можете описать, что именно делает тот или иной макрос.
Обратите внимание!
Если вы хотите разместить комментарии в несколько строк, каждую новую строку надо начинать с апострофа.
Теперь запишем более сложный макрос и научимся понимать текст его кода.
Например, информационная система выдает отчет «Бюджет на месяц» без выделения групповых значений цветом или шрифтом.
Нам необходимо:
- выделить групповые строки полужирным шрифтом;
- отформатировать на печать — расположить отчет по центру листа, задать масштаб 75 %, вывести в колонтитулы название отчета (рис. 4).
Рис. 4. Изменения после написания макроса
Запишем алгоритм форматирования отчета в макрос.
Нажимаем кнопку записи макроса и выполняем следующие действия:
- Даем макросу имя Форматирование_БДР, в блоке описания записываем, что будет делать этот макрос (например, Выделяет жирным курсивом итоги, форматирует на печать). Жмем Ок.
- Выделяем столбцы А:С, ставим автофильтр — на закладке Данные находим кнопку Фильтр.
- По столбцу КОД задаем условие не содержит точку: Текстовые фильтры — Не содержит и в поле текста ставим символ точки без пробелов (рис. 5).
Рис. 5. Использование автофильтра по столбцу «КОД»
- Выделяем отфильтрованный диапазон и задаем ему полужирный шрифт.
- Снимаем автофильтр (повторное нажатие на закладке Данные кнопки Фильтр).
- Заходим в меню форматирования на печать (Кнопка Файл/Office — Печать — Предварительный просмотр — Параметры страницы) и задаем там три параметра:
1) на вкладке Страница задаем масштаб 75 %;
2) на вкладке Поля отмечаем пункт Горизонтально в блоке Центрировать на странице;
3) на вкладке Колонтитулы создаем верхний колонтитул с текстом Бюджет на январь.
- Выходим из параметров страницы.
- Заканчиваем запись макроса.
- Нажимаем Alt+F11 и смотрим, что получилось (см. рис. 4).
Код этого макроса уже гораздо длиннее и непонятнее, но легко читаем для знающих английский язык и азы программирования в VBA.
Правила написания команд в VBA
Любая команда макроса состоит из двух блоков, разделенных точкой:
Объект.Действие с объектом или свойство объекта
Объектами в Excel являются, например:
- книга: WorkBook, ActiveWorkbook;
- лист, листы: WorkSheet, ActiveSheet, Sheets;
- ячейка: Cells(1,1) — в скобках указываются номера строки (Row) и столбца (Column) ячейки на листе;
- диапазон ячеек (может быть и одна ячейка): Range(«А1:С5»), Range(«А1»);
- строки (Rows);
- столбцы (Columns);
- выделение (Selection) — выделенный в данный момент диапазон (это может быть как несколько смежных ячеек, так и смежные строки или столбцы).
Примеры действий с объектами:
- ActiveWorkbook.Save — сохранить рабочую книгу (та, которая была активна в момент вызова пользователем макроса);
- Sheets(«Лист3»).Name = «Отчет» — переименовать «Лист3» в «Отчет»;
- Sheets(«Отчет»).Activate — перейти на лист с названием «Отчет»;
- Range(«А1»).Copy — скопировать в буфер обмена данные из ячейки А1;
- Rows(«13:13»).Delete Shift:=xlUp — удалить строку 13 со сдвигом вверх.
Примеры свойств объектов:
- ActiveCell.FormulaR1C1 = «БДР» — в выделенной (активной) ячейке записан текст «БДР»;
- ActiveCell.Row < 65 — номер ряда активной ячейки меньше 65.
Помнить все названия объектов, команд и свойств для написания несложных макросов не обязательно. Вы всегда можете сначала записать ваши стандартные действия с отчетами в Excel, а потом отформатировать код макроса, убрав из него лишние действия или заменив некоторые заданные параметры (например, длину диапазона) на переменные (которые в дальнейшем макрос будет запрашивать у пользователя или рассчитывать самостоятельно).
Но об этом мы расскажем далее, а сейчас обратимся к коду нашего первого макроса, состоящего из одной строки:
Selection.NumberFormat = «#,##0»
Суть его в следующем: к объекту Выделенный диапазон (у нас одна ячейка, но это может быть и весь столбец/строка или диапазон смежных ячеек) применяется свойство Числовой формат вида # ##0 (если помните, именно этот формат мы выбрали в списке).
Код макроса Форматирование_БДР и расшифровка строк кода представлены в таблице.
Строка кода |
Расшифровка |
Sub Форматирование_БДР() |
Начало макроса, имя макроса |
‘ |
Пустая строка комментариев (ставится автоматически при записи макроса) |
‘ Форматирование_БДР Макрос |
Автоматически добавленный комментарий при записи макроса — может быть удален без потери работоспособности макроса |
‘ Выделяем жирным курсивом итоги, форматируем на печать |
Автоматически добавленный комментарий при записи макроса из поля Описание |
Пустая строка — не влияет на суть исполнения макроса, но их полезно добавлять для разделения блоков команд внутри кода |
|
Columns(«A:C»).Select |
Выделить (Select) объект Столбцы (Columns) А:С |
Selection.AutoFilter |
Применить автофильтр (AutoFilter) для выделенного диапазона (Selection) |
ActiveSheet.Range(«$A$1:$C$34″).AutoFilter Field:=1, Criteria1:=»<>*.*», _ |
Задать критерий отбора «не содержит точку» |
Operator:=xlAnd |
Продолжение команды из предыдущей строки. Обратите внимание: предыдущая строка закончилась символом нижнего подчеркивания _, значит, текст команды не уместился на одну строку и окончание команды перенесено на следующую |
Range(«A1:C34»).Select |
Выделить (Select) объект Диапазон (Range) А1:С34. Обратите внимание: какой бы длины ни был ваш следующий отчет, для которого вы будете применять этот макрос, выделится всегда только диапазон до 34 строки! Как сделать этот диапазон любой длины — обсудим немного позже |
Selection.Font.Bold = True |
Для выделенного диапазона (Объект Selection) установить свойство «полужирный шрифт» (Font.Bold = True). Если нужно отменить какое-то свойство, пишем False |
Selection.AutoFilter |
Снять автофильтр (при записи макроса это было повторное нажатие кнопки Фильтр на закладке Данные) |
With ActiveSheet.PageSetup |
Начало процедуры With (используется, если далее перечисляются свойства или действия с одним и тем же объектом для компактности записи кода). Для объекта ActiveSheet (Текущий лист) применить следующие параметры свойства PageSetup (Параметры печати): |
.PrintTitleRows = «» |
Печатать на каждой странице сквозные строки — пусто (то есть данное свойство не задано пользователем) |
.PrintTitleColumns = «» |
Печатать на каждой странице сквозные столбцы — пусто |
End With |
Окончание процедуры With |
ActiveSheet.PageSetup.PrintArea = «» |
Заданная область печати — пусто (то есть пользователь не ограничил область печати, следовательно, на экран будет выведено все, что есть на листе) |
With ActiveSheet.PageSetup |
Начало процедуры With Для объекта Текущий лист применить следующие параметры печати (цветом выделены те, которые мы изменили по сравнению со стандартными): |
.LeftHeader = «» |
Левый верхний колонтитул — пусто |
.CenterHeader = «Бюджет на январь» |
Центральный верхний колонтитул — задан текст пользователем |
.RightHeader = «» |
Правый верхний колонтитул — пусто |
.LeftFooter = «» |
Левый нижний колонтитул — пусто |
.CenterFooter = «» |
Центральный нижний колонтитул — пусто |
.RightFooter = «» |
Правый нижний колонтитул — пусто |
.LeftMargin = Application.InchesToPoints(0.708661417322835) |
Размеры левого поля |
.RightMargin = Application.InchesToPoints(0.708661417322835) |
Размеры правого поля |
.TopMargin = Application.InchesToPoints(0.748031496062992) |
Размеры верхнего поля |
.BottomMargin = Application.InchesToPoints(0.748031496062992) |
Размеры нижнего поля |
.HeaderMargin = Application.InchesToPoints(0.31496062992126) |
Размеры верхнего колонтитула |
.FooterMargin = Application.InchesToPoints(0.31496062992126) |
Размеры нижнего колонтитула |
.PrintHeadings = False |
Не печатать заголовки строк и столбцов (False — пользователь не отметил этот пункт) |
.PrintGridlines = False |
Не печатать сетку |
.PrintComments = xlPrintNoComments |
Не печатать примечания |
.PrintQuality = 600 |
Качество печати — 600 точек на дюйм |
.CenterHorizontally = True |
Центрировать на странице горизонтально (True — пользователь отметил этот пункт) |
.CenterVertically = False |
Не центрировать по вертикали |
.Orientation = xlPortrait |
Ориентация страницы — книжная |
.Draft = False |
Пользователь не отметил пункт Черновая в блоке Печать |
.PaperSize = xlPaperA4 |
Размер бумаги А4 |
.FirstPageNumber = xlAutomatic |
Номер первой страницы — автоматически |
.Order = xlDownThenOver |
Последовательность вывода страниц: вниз, потом вправо (пункт в блоке Печать) |
.BlackAndWhite = False |
Пользователь не отметил пункт Черно-белая в блоке Печать |
.Zoom = 75 |
Масштаб 75 % |
.PrintErrors = xlPrintErrorsDisplayed |
Пункт в блоке Печать – Ошибки ячеек — Как на экране |
.OddAndEvenPagesHeaderFooter = False |
Пользователь не задавал разные колонтитулы для четных и нечетных страниц (флажок в блоке Колонтитулы) |
.DifferentFirstPageHeaderFooter = False |
Пользователь не задавал отдельный колонтитул для первой страницы (флажок в блоке Колонтитулы) |
.ScaleWithDocHeaderFooter = True |
Флажок в блоке Колонтитулы – Изменять вместе с масштабом страницы отмечен пользователем |
.AlignMarginsHeaderFooter = True |
Флажок в блоке Колонтитулы – Выровнять относительно полей страницы отмечен пользователем |
.EvenPage.LeftHeader.Text = «» |
Текст колонтитулов для четных и первой страниц не задан |
.EvenPage.CenterHeader.Text = «» |
|
.EvenPage.RightHeader.Text = «» |
|
.EvenPage.LeftFooter.Text = «» |
|
.EvenPage.CenterFooter.Text = «» |
|
.EvenPage.RightFooter.Text = «» |
|
.FirstPage.LeftHeader.Text = «» |
|
.FirstPage.CenterHeader.Text = «» |
|
.FirstPage.RightHeader.Text = «» |
|
.FirstPage.LeftFooter.Text = «» |
|
.FirstPage.CenterFooter.Text = «» |
|
.FirstPage.RightFooter.Text = «» |
|
End With |
Окончание процедуры With |
End Sub |
Окончание кода макроса |
Редактирование макроса
Как видите, код макроса легко читаем и понятен. Кроме того, нам не надо нагромождать его лишними строками: так как в параметрах печати мы меняли только три пункта, остальные строки можем удалить (они будут установлены по умолчанию). Удалим ненужные строки, поставим комментарии и в итоге получим вот такой элегантный код:
Sub Форматирование_БДР()
‘ Макрос выделяет жирным курсивом итоги, форматирует отчет на печать
‘——————
‘ Выделяем столбцы и ставим фильтр по столбцу КОД
Columns(«A:C»).Select
Selection.AutoFilter
ActiveSheet.Range(«$A$1:$C$34″).AutoFilter Field:=1, Criteria1:=»<>*.*», _
Operator:=xlAnd
‘ Выделяем отфильтрованный диапазон полужирным шрифтом, снимаем фильтр
Range(«A1:C34»).Select
Selection.Font.Bold = True
Selection.AutoFilter
‘ Форматируем на печать: верхний колонтитул, центрирование по горизонтали, масштаб 75 %
With ActiveSheet.PageSetup
.CenterHeader = «Бюджет на январь»
.CenterHorizontally = True
.Zoom = 75
End With
End Sub
Ввод в код макроса функций и процедур
Теперь усложним код макроса, задав ему два параметра:
1. Название месяца отчета запрашиваем у пользователя.
2. Последняя строка отчета БДР (в случае если она плавающая) рассчитывается в коде макроса.
Функция InputBox
Чтобы запросить у пользователя месяц отчета, воспользуемся функцией Inputbox, которая выводит диалоговое окно, в котором пользователь может самостоятельно задать значение переменной, используемой в коде. Синтаксис функции InputBox:
Zapros = InputBox(«Текст запроса», <«Текст в шапке окна»>, <Значение по умолчанию>,…)
где Zapros — введенная вами переменная (имя придумываете вы сами), а в скобках через запятую перечисляются аргументы функции.
Обратите внимание: первый аргумент является обязательным, то есть любое диалоговое окно должно сопровождаться пояснительным текстом, чего вы ждете от пользователя. Следующие аргументы обязательными не являются и их можно не указывать. То есть если вы хотите задать значение по умолчанию, но не хотите писать текст в шапке диалогового окна, разделите первый и третий аргументы двумя запятыми, как это будет сделано в нашем примере (см. далее).
Для удобства присвойте полученное значение функции InputBox какой-нибудь введенной вами переменной, особенно если в коде макроса вы будете несколько раз использовать значение этой функции.
Важно
Имена вводимых переменных не должны совпадать с уже занятыми VBA словами под название объектов, свойств или функций!
В нашем примере присвоим результат вызова функции InputBox переменной Mes.
Например, нельзя завести свою переменную Range, Cells или Month — компилятор VBA предупредит вас, что делать этого нельзя, и не запустит макрос, пока вы не устраните ошибку (рис. 6).
Рис. 6. Пример ошибки при заведении переменной
Не забывайте любой текст в коде брать в кавычки! В противном случае компилятор VBA будет воспринимать этот текст как команды и выдавать ошибку, так как не сможет их обработать.
Итак, приступим к редактированию кода макроса. Добавим в самое начало кода макроса строки:
‘ Запрашиваем у пользователя месяц отчета
Mes = InputBox(«Введите название месяца отчета», , «Январь»)
Теперь при запуске макроса будет выводиться диалоговое окно, в котором пользователь самостоятельно сможет указать, за какой месяц этот отчет (рис. 7).
Рис. 7. Диалоговое окно для указания месяца
С помощью функции InputBox можно запросить у пользователя и длину отчета. Но мы научим Excel высчитывать ее самостоятельно. Для этого нам потребуется процедура While.
Процедура While
Используется в коде, если надо сделать одинаковые действия несколько раз подряд до тех пор, пока выполняется какое-либо условие. Синтаксис процедуры While:
Do While <условие, которое должно быть верным для выполнения процедуры>
<список команд>
Loop
Условие может состоять из одного выражения или содержать несколько, перечисленных через оператор AND (то есть оба условия должны быть выполнены) или OR (достаточно выполнения только одного из перечисленных условий). Также условие обязательно должно содержать переменную-счетчик (это может быть номер строки или столбца ячейки, значения которой вы проверяете).
В список команд обязательно должна входить команда наращивания переменной-счетчика, иначе процедура зациклится (так как она постоянно будет сравнивать одно и то же значение) и макрос придется прерывать принудительно.
Если макрос ушел в цикл, прервите его с помощью комбинации клавиш Ctrl+Break и либо прекратите макрос (кнопка End), либо зайдите в код макроса и исправьте ошибку (кнопка Debug). Чтобы макрос не уходил в цикл, рекомендуется включить в блок условий «защиту от дурака». Например, добавляем в условие проверку, чтобы значение счетчика не превышало определенной, заведомо достаточной для нас величины.
Рассмотрим применение процедуры While для поиска конца отчета БДР.
Как видно на рис. 4, последняя строка отчета имеет код «500». Напишем процедуру, которая будет проверять значения в ячейках столбца «А» и остановит свои действия, когда найдет ячейку с кодом «500».
Обратите внимание!
Excel иногда воспринимает числа как текст, поэтому включим два условия проверки значения ячейки и добавим «защиту от дурака» на случай, если в форме отчета случайно затрется код последней строки.
Помним, что все текстовые значения надо брать в кавычки. Числа записываем без кавычек:
‘ Ищем последнюю строку отчета
Dim Row_End As Integer ‘ Вводим переменную «счетчик номера строки»
Row_End = 1 ‘ Присваиваем ей номер 1
‘ Начинаем процедуру поиска последней строки отчета по коду «500»
Do While Cells(Row_End, 1).Value <> «500» And Cells(Row_End, 1).Value <> 500 And Row_End < 100
‘ До тех пор, пока код не равен 500 и номер строки меньше 100, выполняем наращивание счетчика
Row_End = Row_End +1
Loop
Таким образом, процедура While нам нужна только для наращивания счетчика — никаких дополнительных действий она не производит. Запомните этот прием — он часто нужен в кодировании.
Теперь заменим в изначальном коде макроса номер последней ячейки (34) на переменную Row_End. Число 34 было частью текста А1:С34, а теперь нам надо часть текста заменить на переменную. Делается это с помощью символа амперсанд &:
«текст» & переменная & «текст».
В нашем случае ссылка на диапазон А1:С34 будет записана так: А1:С & Row_End.
Кроме того, вспоминаем, что и название отчета Бюджет на январь у нас тоже теперь содержит параметр и будет записываться так: Бюджет на & Mes.
Не забывайте оставлять пробелы в кавычках перед переменной-словом, иначе текст сольется.
Еще раз взглянем на получившийся код макроса:
Sub Форматирование_БДР()
‘ Макрос выделяет жирным курсивом итоги, форматирует отчет на печать
‘ ——————
‘ Запрашиваем у пользователя месяц отчета
Mes = InputBox(«Введите название месяца отчета», , «Январь»)
‘ Ищем последнюю строку отчета
Dim Row_End As Integer ‘ Вводим переменную «счетчик номера строки»
Row_End = 1 ‘ Присваиваем ей номер 1
‘ Начинаем процедуру поиска последней строки отчета по коду «500»
‘ Критичным значением для «защиты от дурака» принимаем номер строки 100
Do While Cells(Row_End, 1).Value <> «500» And Cells(Row_End, 1).Value <> 500 And Row_End < 100
‘ До тех пор, пока код не равен 500 и номер строки меньше 100, выполняем наращивание счетчика
Row_End = Row_End +1
Loop
‘ Выделяем столбцы и ставим фильтр на КОД
Columns(«A:C»).Select
Selection.AutoFilter
ActiveSheet.Range(«$A$1:$C$» & Row_End).AutoFilter Field:=1, Criteria1:=»<>*.*», _
Operator:=xlAnd
‘ Выделяем отфильтрованный диапазон полужирным шрифтом, снимаем фильтр
Range(«A1:C» & Row_End).Select
Selection.Font.Bold = True
Selection.AutoFilter
‘ Форматируем на печать: верхний колонтитул, центрирование по горизонтали, масштаб 75 %
With ActiveSheet.PageSetup
.CenterHeader = «Бюджет на » & Mes
.CenterHorizontally = True
.Zoom = 75
End With
End Sub
Теперь макрос стал более универсальным. Добавим в него еще одну «защиту от дурака».
Если нам принципиально, правильно ли макрос нашел последнюю строку отчета, после окончания процедуры While (строка Loop) можно добавить блок проверки значения Row_End и запроса у пользователя подтверждения на продолжение макроса.
Для этого изучим функцию MsgBox, процедуру IF и команду Exit Sub.
Функция MsgBox
MsgBox — еще один способ общения с пользователем: сообщения ему какой-то информации по ходу выполнения макроса или запрос у него подтверждения по дальнейшим действиям макроса путем нажатия на кнопки вида Yes, No, Ок, Cancel.
Она имеет два вида записи:
1. Мы просто сообщаем пользователю какую-то информацию. В этом случае аргументы функции перечисляются сразу же за функцией, без использования скобок:
MsgBox «Текст сообщения», <Вид кнопок>, <«Текст в шапке окна»>,…
На экране отобразится диалоговое окно, и после нажатия пользователем кнопки Ок продолжится выполнение макроса (рис. 8).
Рис. 8. Первый вид записи функции MsgBox
Как и в случае с функцией InputBox, обязательным здесь является только первый аргумент — Текст сообщения. Остальные можно даже не указывать, сократив вид записи функции до вида:
2. Нам важно, что ответил пользователь, мы записываем его ответ в значение какой-то переменной (рис. 9). В этом случае аргументы функции заключаются в скобки, а перед функцией обязательно должна стоять переменная, в которую мы записываем, на какую кнопку нажал пользователь:
YesNo = MsgBox(«Текст сообщения», <Вид кнопок>, <«Текст в шапке окна»>,…)
Рис. 9. Второй вид записи функции MsgBox
Варианты вида кнопок:
- vbOKOnly — только кнопка ОК;
- vbOKCanсel — кнопки ОК и Cancel;
- vbYesNo — кнопки Yes и No;
- vbYesNoCancel — кнопки Yes, No и Cancel.
Соответственно в зависимости от нажатой кнопки значения функции MsgBox могут быть vbOK, vbCancel, vbYes или vbNo.
Процедура If
С помощью данной процедуры можно разбить команды кода на две ветки в зависимости от выполнения заданного условия. Синтаксис процедуры If:
If <условие, которое должно быть верным> Then
<список команд при выполнении указанного условия>
else
<список команд при невыполнении указанного условия>
End If
Обязательным к заполнению является только условие. Список команд в обоих блоках заполнять не обязательно. В зависимости от ваших задач вы можете заполнить оба блока или только один из них. Условие может состоять из одного выражения или содержать несколько выражений, перечисленных через оператор AND (то есть оба условия должны быть выполнены) или оператор OR (достаточно выполнения только одного из перечисленных условий).
Команда Exit Sub
Прекращает выполнение макроса. Обычно ее используют в ветках процедуры If при проверке допустимости дальнейшего исполнения макроса. Обратите внимание: ни одно действие после команды Exit Sub выполнено не будет. Поэтому если вы хотите сообщить пользователю о принудительном прекращении процедуры, команду MsgBox нужно расположить выше команды Exit Sub.
Итак, объединим новые знания в код «защиты от дурака» и запишем его после строки Loop:
‘ Проверяем, дошла ли процедура While до «критичной» строки 100
‘ и спрашиваем подтверждение о продолжении выполнения макроса
If Row_End = 100 Then
YesNo = MsgBox(«Поиск последней строки отчета дошел до 100, продолжаем?», vbYesNo)
If YesNo = vbNo Then ‘ Если нажата кнопка «No», то…
MsgBox «Процедура прервана пользователем» ‘ 1. выдаем сообщение для пользователя,
Exit Sub ‘ 2. останавливаем макрос
End If
End If
В нашем коде прошло вложение одной процедуры If в другую:
- сначала мы проверили, дошел ли счетчик Row_End до значения 100;
- если дошел, мы спрашиваем у пользователя, продолжать ли нам выполнение макроса;
- если пользователь ответил «нет», останавливаем макрос.
В обеих процедурах If мы опустили второй блок (else): если Row_End не достиг значения 100 или пользователь ответил «да», макрос просто покинет процедуру If и продолжит выполнять команды, написанные ниже.
Каждая процедура If должна заканчиваться командой End If. Если количество строк с командой If не будет соответствовать количеству строк с командой End If, компилятор VBA сообщит об ошибке и вам придется искать, где вы потеряли конец процедуры If.
Поэтому рекомендуется сразу писать обе строки, а потом уже наполнять процедуру командами.
Также для удобства визуального восприятия кода макроса рекомендуется каждую вложенную процедуру начинать с отступа, чтобы визуально было понятно, где заканчивается вложенная процедура и продолжается список команд процедуры верхнего уровня.
Подведем итоги
Мы с вами научились:
- записывать макросы через команду Вид Макросы Запись макроса;
- редактировать автоматически записанный макрос, удалять из него лишние команды;
- унифицировать код макроса, вводя в него переменные, которые макрос запрашивает у пользователя или рассчитывает самостоятельно,
а также изучили функции InputBox и MsgBox, процедуры While и If, команду Exit Sub.
В следующем номере рассмотрим процедуру FOR, запишем макрос суммирования результирующих статей БДР, научимся тестировать макросы и выносить кнопки вызова макроса на панель быстрого доступа.
Статья опубликована в журнале «Справочник экономиста» № 4, 2016.
ШКОЛА ПРОГРАММИРОВАНИЯ
Сообщение об ошибке
Для чего нужны макросы в Excel?
Многие из Вас наверняка слышали термин «Макрос». Иногда при запуске некоторых документов Word, а чаще Excel, Вам выскакивало предупреждение: «Данный документ содержит макросы, которые могут нанести вред Вашему компьютеру. С целью безопасности макросы были отключены» и т.д. И многих это предупреждение пугает, хотя большая доля правды в этом предупреждении все ж присутствует. Но, это относится к документам, попавшим к Вам из неизвестных источников, а именно из сети, по почте и т.д. Чем же так опасен макрос и для чего они тогда нужны, если их использование небезопасно? Рассмотрим далее, а пока дадим определение макросу.
Что такое «Макрос»?
Макрос это программа, которая содержит набор инструкций выполняющих какие либо действия, как автоматически, так и по требованию пользователя, т.е. выполняются явно и неявно. Макрос от сокращенного «макрокоманда». Широкое распространение данное понятие получило благодаря корпорации Microsoft, которая реализовала возможность написания макросов в своих продуктах, а именно всеми любимый и известный Office(Word, Excel, Access и т.д.). Используемый язык в макросах — Visual Basic, так же продукт Microsoft, но с некоторыми ограничениями.
Как работают макросы?
Благодаря внедрению в MS Office языка Visual Basic, Microsoft удалось значительно расширить функционал своих продуктов. Макрокоманды, записанные пользователями или написанные программистами, способны автоматизировать большинство процессов и значительно сократить время на обработку данных. Тем самым, оптимизировать рабочее время сотрудников. Для выполнения макрокоманд необходима своя программная среда, в которой эти команды способны работать. Такой средой являются, например Excel, Word, Access. При написании сложных макросов, их запуск и выполнение, как правило, ограничивается рабочей станцией (ПК) на которой он был написан. Сложные, имеется ввиду, подключение дополнительных компонентов и объектов, которые попросту могут отсутствовать на другом ПК. Происходит это потому, что программный код не переводится в исполняемый машинный код и вдобавок к которому прикладываются необходимые модули и библиотеки, а выполняется через интерпретатор. Но, есть и преимущества в таком подходе, а именно, возможность произвести отладку сразу, «на месте», при возникновении каких либо ошибок, просмотреть код и дополнить его новыми инструкциями, расширив функционал макроса. Как правило, макросы написанные для Excel, не работают в Word или Access, только если не используется базовый набор процедур и функций, которые не затрагивают объекты приложения.
Как макросы помогают в работе?
При работе с большими объемами данных, которые необходимо тем, или иным образом обрабатывать, а так же при выполнении однообразных действий по обработке информации в таблицах (например, формирование сводных таблиц определенного формата), макросы незаменимы. Пример: Вам ежедневно необходимо получать данные из БД, производить с этими данными некоторые расчеты, затем из результатов свести сводную таблицу. На все у Вас уходит, допустим, 2 часа. Разработав и внедрив такой макрос, который будет все эти действия производить самостоятельно, у Вас время сократиться до пары минут, а точнее секунд т.к. остальное уйдет на открытие и получение данных. А если еще к расчетам «вручную» добавить допущенные механические ошибки, которые обязательно бываю, и которые в лучшем случае Вы обнаружите и будете искать, то это еще добавит время к тем двум часам. Макрос же при грамотной разработке и хорошо протестированный, позволяет избежать таких ошибок.
Это один из многих вариантов применения. Другой пример, на личном опыте. При работе с ежедневными накопительными данными, мне приходилось заполнять поле «Контрагент» (КА) соответствующим именем, имеющимся в базе. Название КА должно обязательно быть идентичным. Создание списка очень неудобно т.к. список состоит не из одной сотни КА. Я написал макрос, который запускается на исполнение, при нажатии в соответствующей колонке, правой кнопкой мыши. Открывается форма, со списком КА в которой также имеется «горячий поиск» в списке т.е. достаточно начать вводить сочетание символов содержащихся в названии и список тут же отфильтрует и оставит подходящих, далее остается выбрать из двух трех КА нужного. На все про все, не больше 5 сек. Вот как вариант. И примеров можно приводить кучу, в зависимости от специфики работы.
В чем заключается опасность макросов?
Как я уже говорил выше, макросы могут быть как полезны, так и опасны. Все зависит от того с какой целью и кем он был написан. В чем заключается опасность? Так как в написании макросов используется язык Visual Basic, то располагая всем его функционалом, злоумышленник способен написать на этом языке вирус – «макровирус». Макровирус способен повредить все данные, способен работать как программа шпион и т.д. Время жизни такого вируса — пока запущено приложение(Excel, Word и т.д.). После внедрения такого вируса, в дальнейшем, его запуск будет осуществляться в скрытом от пользователя режиме. Макросы так же способны выступать в роли посредника для внедрения более серьезных угроз всей системе. Например, активировав макрос, произойдет копирование или генерирование троянской программы, которая работает под управлением операционной системы, с последующим ее запуском. А это уже угроза работе всей системе.
Варианты защиты от таких макросов:
- Повысить уровень безопасности Excel (способ не удобен т.к. и полезные макросы не будут работать);
- Не открывать файлы из неизвестных источников и не игнорировать предупреждения безопасности при открытии таких файлов;
- Если установлена операционная система Windows 7, не допускать запуск приложений с подписью «неизвестный источник».
На этом я завершаю вводную статью по макросам. В дальнейшем, я расскажу и покажу способы записи макросов в Excel. Постараюсь подбирать интересные и полезные примеры, а так же рассмотрим, каким потенциалом обладает Excel, если посмотреть на него глазами программиста.
P. S. Используя смекалку и фантазию на VBA можно написать простейшие и интересные игры. Если Вас заинтересовал такой вариант применения, то можете ознакомиться с играми, написанными для Excel (игры в Excel).
Что такое макрос в Excel и для чего он предназначен?
Доброго времени, друзья. В сегодняшнем выпуске расскажу об интереснейшей функции в самом ходовом офисном пакете программ от Microsoft Office. Тем, кто постоянно работает с таблицами Excel, знает сколько рутинных операций приходится иногда делать с содержимым. Если документов много — приходится одни и те же действия повторять многократно. От выделения мышкой и копирования до более сложных — таких как вычисления, заполнение, очистка отдельных граф, создание таблиц, макетов и так далее.
Чтобы не повторять одни и те же действия каждый раз можно автоматизировать процесс и сэкономить время. Вы записываете свои действия (выделение ячеек документа, копирование, форматирование, ввод формул) в макрокоманду. Команда эта помещается в виде кнопки на панель инструментов. При нажатии кнопки все ваши записанные ранее действия выполняются автоматически. Это и есть «макрос».
Лично для меня знакомство с макросами в свое время превратилось в изучение программирования. Дело в том, что Microsoft Office является еще и легкой и понятной средой для этого. В нем есть свой встроенный язык — Visual Basic for Application или сокращенно VBA. И когда записываете макросы, Вы вы как бы становитесь программистом. При этом не обязательно на первых этапах знать язык. Программный код можно посмотреть уже потом, в редакторе и изучать. Как смотреть — об этом так же расскажу.
VBA позволяет создавать для себя мощные инструменты при работе с табличными документами для решения многих задач в виде отдельных окон, кнопок, списков, флажков — все визуально. А опытные программисты знают, что макросы можно использовать для того чтобы не набирать команды руками, а достать уже готовый код из только что записанного макроса. Но обо всем по порядку. Тем, кто после прочтения статьи заинтересуется и захочет изучать язык VBA самостоятельно в помощь книга. А сейчас разберемся подробно, что за «макросы», как их включать.
Что означает макросы и как с ними работать?
Итак, макрос — это некий программный код, который описывает ПОСЛЕДОВАТЕЛЬНОСТЬ ваших действий в документе. Записывается даже перемещение вашего курсора по ячейкам, нажатие клавиш. Сначала Вы записываете макрос. Когда понадобится, Вы в Excel запускаете этот код на выполнение и все записанные ранее действия выполняются автоматически. Например, у Вас есть одна и та же таблица, макет которой Вы каждую неделю создаете по новый, меняете оформление, или очищаете графы. Вы нажимаете кнопку, и вот, то на что вы тратили 5-10 минут заняло у вас всего одну секунду.
Для начала нужно настроить Excel для работы с макросами. Это просто. На примере Office 2007 покажу как . В более поздних редакциях делается все почти аналогично. Сначала заходим в «Параметры»:
Сначала настроим «Ленту»; нужно включить «Режим разработчика»:
Если Вы собираетесь серьезно работать с макросами — нужно включить еще одну настройку. Здесь же переходим в «Центр управления безопасностью» и настраиваем «Параметры центра управления безопасностью»:
Нужно отключить все ограничения на запуск макросов. Это позволит Вам не только работать со своими макросами но и запускать уже готовые кем — то созданные.
Так же нужно доверять доступ к объектной модели проектов VBA. Ведь в Интернете или у коллег можно найти много готовых и интересных проектов VBA написанных для Excel, Word и пользоваться.
Что такое макрос в Excel 2007?
Мы пока что научимся записывать несложные макросы. Сделать это очень просто. В «Ленте» у нас теперь появились соответствующие значки «Разработчик»:
В этом режиме нам будут доступны и остальные функции — «режим конструктора». Можно самостоятельно создавать окна, кнопки. А в редакторе Visual Basic можно редактировать созданные макросы. Итак, покажу, как все это работает. При нажатии кнопки «Запись макроса» сначала нужно будет заполнить его наименование(без пробелов), горячие клавиши вызова (не обязательно) и место где он будет сохранен:
В зависимости от поставленной задачи Вы можете сохранять макросы в отдельном документе либо в «личной книге». В первом случае он записывается в пределах документа и будет выполняться только в документе. Во втором случае его можно вызвать перед созданием документа. Лучше продемонстрировать наглядно, для чего бывают нужны макросы. Задача: мне нужно создать: документ Excel, в документе создать таблицу определенного формата и вычислениями внутри. Смотрим видео, что получилось:
Вы сами увидели, что процесс создания одной простенькой демо — таблицы занимает от пяти и более минут. А макрокомандой мы таблицу создали за 2 секунды. А если речь идет о сложных проектах? Ответ очевиден, создав один раз процедуру, вы сэкономите время и увеличите производительность своей работы.
После окончания записи при закрытии Excel программа обязательно попросит сохранить изменения в «Личной книге» макросов. Не забываем согласиться; в противном случае записанный макрос пропадет и всё придется делать заново.
Важно! «Личная книга» макросов хранится в папке пользователя по пути C:Users%Пользователь компьютера%AppDataRoamingMicrosoftExcelXLSTART. Этой книгой можно делится с другими или удалять, если что то не получилось.
Наш макрос теперь доступен по кнопке «Макросы», оттуда его можно запускать.
Что значит макрос в Excel 2016 и для чего он предназначен?
Процесс записи макросов не отличается от ранних версий; еще в одном простом примере расскажу о другом способе вызова макрокоманд. Создание макросов позволит Вам познакомится с навыками программирования и кто знает, может это интересное дело Вас увлечёт.
Представим, что у нас есть довольно громоздкая таблица, которую каждый раз приходится очищать от данных предыдущего отчета. Задача: сделать в документе кнопку, при нажатии на которую автоматически очищаются нужные ячейки. Начнем.
Для начала не забудем сделать настройки MSoffice 2016. Так же идем в «Параметры», но далее идем в «Настроить ленту»
После «Разработчик» станет видимым на «Ленте». Переходим туда. Наша личная книга макросов по прежнему на месте, откроем ее:
Запустим наш предыдущий макрос, любуемся, как программа сама создает и заполняет таблицу. В нашем примере есть две графы «Количество» и «Цена», содержимое которых приходится очищать. Мы автоматизируем процесс.
Как включить макросы в Excel 2016 видео
Можно вызывать макросы на исполнение, так как это мы уже делали в прошлом примере. Это не наглядно и иногда не очень удобно. Поэтому мы сделаем иначе — создадим в документе кнопку, с помощью которой будем очищать содержимое.
Начинается программирование , из меню «Разработчик» вставляем кнопку в любое место нашего документа. Курсор измениться на перекрестье, затем рисуем кнопку в нужном месте:
Нашей кнопке будет автоматически назначен макрос. Имя макроса, комбинацию клавиш, ставим произвольное, сохраняем в «Этой книге». Это означает, что работать кнопка будет только в этом документе.
Далее, программа предложит способ создания макроса. Если Вы уже продвинутый VBA- програмиист, можно руками написать код, нажав «Создать». Но мы сегодня будем использовать уже знакомый нам способ — запись наших действий:
Запись начата! Мы собираемся очистить выбранные графы от содержимого, поэтому одновременно выделим нужные диапазоны в графах «Количество» и «Цена». Для этого сначала выделим графу «Количество», затем зажимаем клавишу Ctrl и не отпуская ее выделяем нужные ячейки в графе «Цена», после отпускаем клавишу:
Использование нажатой клавиши Ctrl при выделении помогает выделять столбцы и области различных диапазонов ячеек одновременно. Не пренебрегайте этим в случае с большими таблицами.
Теперь, когда нужный диапазон ячеек выбран, нажимаем на клавиатуре клавишу Del и этим удаляем содержимое ячеек. Останавливаем запись макроса:
Как и любой объект с кнопкой можно производить различные действия — копировать, удалять, форматировать, назначать им макросы. Мы пока что изменим наименование. Чтобы добраться до свойств кнопки нужно по ней щелкнуть правой кнопкой мыши:
Я изменил текст на «Очистить». Цвет, размер текста шрифт в кнопках так же можно менять по вкусу. Заглянем для этого в «Формат объекта»:
Там все примерно так, как при форматировании ячейки. А изменять размеры самой кнопки и ее местоположение можно растягивая ее за края или перетаскивать:
Ну и на последок давайте заглянем в редактор VBA и посмотрим, как выглядит написанный нами программный код нашего макроса. Для этого идем в наши «Макросы» , выбираем нужный и жмем «Войти» или «Изменить»:
Другой способ — можно щелкнуть правой кнопкой мыши по кнопке и выбрать «Назначить макрос»; результат будет аналогичный. Открылся редактор VBA, в котором можно делать много чего интересного и полезного. Мы пока смотрим, что мы там напрограммировали:
Простой и понятный пример кода; после комментариев (выделенных зеленым) идет сам код «Выбрать диапазон ячеек сначала один, затем другой, затем удаляем содержимое». Закрыть редактор можно как обычное окошко — нажав на крестик. Надеюсь, что такое макросы — Вы разобрались. Заодно узнали, как можно стать программистом. Удачи в освоении программы!
Автоматизация задач с помощью средства записи макросов — 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.
Назначение макроса объекту, фигуре или графическому элементу
На листе щелкните правой кнопкой мыши объект, рисунок, фигуру или элемент, которому нужно назначить существующий макрос, а затем выберите команду назначить макрос.
В поле Назначить макроса выберите макрос, который вы хотите назначить.
Вы можете назначить макрос значку и добавить его на панель быстрого доступа или ленту.
Вы можете назначать макросы формам и элементам 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.
Что такое макрос и где его искать?
Tips_Macro_Basic_Video.xls (63,5 KiB, 3 070 скачиваний)
Наверное, многие слышали это слово «макрос«, но не все имеют точное представление что это, если заглянули на эту страничку.
Макрос — это макрокоманда(так звучит в правильном переводе с англ.языка), содержащая последовательность действий, записанных пользователем. Запись производится с помощью встроенного в пакет Microsoft Office языка программирования — Visual Basic for Application ( VBA ).
Зачем же нужны макросы? А нужны они для того, чтобы избавить Вас от рутинного выполнения одних и тех же действий. Например, Вам каждый день приходиться удалять из ежедневных отчетов по несколько столбцов и добавлять новые строки для шапки и т.п. Скучно и утомительно. Вы просто можете записать один раз все эти действия макрорекордером, а в дальнейшем только вызывать записанный макрос и он все сделает за Вас. Что немаловажно, для использования макрорекордера и записи макроса не надо обладать никакими навыками программирования.
В этой статье:
ПОДГОТОВКА К ЗАПИСИ МАКРОСА
Прежде чем начать работать с макросами необходимо разрешить их выполнение, т.к. по умолчанию они отключены. Для этого необходимо сделать следующее:
- Excel 2003:
Сервис-Безопасность-Уровень макросов «Низкий» - Excel 2007:
Кнопка Офис—Параметры Excel (Excel Options) —Центр управления безопасностью (Trust Centr) —Параметры центра управления безопасностью (Trust Centr Settings) —Параметры макросов (Macro Settings) —Разрешить все макросы (Enable All Macros) - Excel 2010:
Файл (File) —Параметры (Options) —Центр управления безопасностью (Trust Centr) —Параметры центра управления безопасностью (Trust Centr Settings) —Параметры макросов (Macro Settings) —Разрешить все макросы (Enable All Macros)
После изменения параметров безопасности макросов необходимо перезапустить приложение Excel: закрыть его полностью и открыть заново. Только после этого изменения вступят в силу.
Прежде чем начать записывать макрос необходимо помнить следующее:
- Макрорекордер записывает АБСОЛЮТНО ВСЕ ваши действия – ошибки, прокручивание экрана, переключение между листами, выделение ячеек и т.д. Поэтому перед записью своих действий необходимо сначала тщательно продумать все свои действия, чтобы в дальнейшем записать только то, что действительно необходимо записать и в дальнейшем воспроизвести. Это сократит как сам код, так и время его выполнения
- Макрорекордер записывает действия выполненные только в пределах Microsoft Excel. Если вы переключитесь в другое приложение – действия в этой программе записаны не будут. Если закроете Excel – запись прекратится
- Макрорекордер может записать только те действия, которые можно проделать вручную(те, которые доступны для выполнения из меню и с панелей)
- Если во время кода вы совершили ошибочное действие и нажали кнопку отмены(Ctrl+Z) – отмененное действие не будет записано в макрос, как будто вы его просто не делали
ЗАПИСЬ МАКРОСА
Для пользователей Excel 2003 запись макроса возможна через меню:
Сервис —Макрос —Начать Запись
Для пользователей Excel 2007-2010 и старше:
ПАРАМЕТРЫ ЗАПИСИ МАКРОСА
Перед записью можно задать имя записываемому макросу и назначить сочетание клавиш, при нажатии которых этот макрос будет запускаться. После нажатия кнопки для начала записи макроса появится окно:
Имя макроса – не должно содержать пробелов, запятых, двоеточий и т.п. Допустимы символы кириллицы, латиницы, цифры и нижнее подчеркивание (я рекомендую давать макросам имена, содержащие только буквы латиницы). Имя макроса всегда должно начинаться с буквы и не должно совпадать со встроенным именем Excel или именем другого объекта в книге (например, не должно носить имя Workbook, Cells или ЭтаКнига). Лучше давать макросу сразу понятное имя, отражающее примерную суть того, что он делает.
Сочетание клавиш – можно назначить вызов макроса сочетанием клавиш. Доступно назначение любой цифры или буквы в сочетании с Ctrl.
Сохранить в – выбираете место хранения записываемого макроса. Доступны варианты:
- Эта книга (This Workbook) – макрос будет записан в той же книге, из которой была запущена запись. Записанный макрос будет доступен из приложения только если книга открыта
- Новая книга (New Workbook) – будет создана новая книга, в которой записан макроса. Записанный макрос будет доступен из приложения только если книга открыта
- Личная книга макросов (Personal Macro Workbook) – самый интересный вариант. Если его выбрать, то макрос будет сохранен в отдельной книге PERSONAL.XLS (для Excel 2007 и выше — PERSONAL.XLSB). Макросы, записанные в эту книгу доступны из всех открытых книг Excel и эта книга подключается автоматически при запуске самого Excel. Т.е. однажды записав где-то макрос в эту книгу – он теперь будет доступен из любой книги независимо от того, открыта ли книга, из которой был записан макрос или нет. Изначально эта книга отсутствует и создается в момент первого обращения к ней (т.е. как только вы первый раз выбрали Сохранить в личную книгу макросов)
ВОСПРОИЗВЕДЕНИЕ МАКРОСА
После записи макроса запустить его можно разными способами:
- ПРИ ПОМОЩИ СОЧЕТАНИЯ КЛАВИШ: Alt+F8
Этот способ универсальный и его можно использовать из любой версии Excel. Достаточно нажать сочетание клавиш Alt+F8 и выбрать нужный макрос из списка: - ВЫЗОВ ИЗ МЕНЮ:
Excel 2007-2010 и старше: вкладка Разработчик (Developer) → Макросы (Macros)
Excel 2003: Сервис→ Макрос→ Макросы - НАЖАТИЕМ СОБСТВЕННОЙ КНОПКИ НА ЛИСТЕ:
Можно разместить на листе собственную кнопку, по нажатии которой будет запускаться записанный макрос. Подробно этот процесс я описал в статье: Как создать кнопку для вызова макроса на листе - ПРИ ПОМОЩИ НАЗНАЧЕННЫХ МАКРОСУ ГОРЯЧИХ КЛАВИШ:
Если вы перед записью назначили макросу сочетание клавиш, то вы также можете вызвать этот макрос и нажатием данного сочетания. Горячие клавиши макросу можно назначить и после записи: Alt+F8→ Выделяем нужный макрос→ Параметры (Options) . - ПРИ НАСТУПЛЕНИИ ОПРЕДЕЛЕННОГО СОБЫТИЯ В ЛИСТЕ ИЛИ КНИГЕ:
Прежде чем пробовать использовать этот метод рекомендуется изучить статью Что такое модуль? Какие бывают модули? Для этого сначала необходимо вставить код макроса в тело событийной процедуры (подробнее про событийные процедуры). Например, если выбрать процедуру листа Change, то в лист автоматически будет вставлена пустая процедура:
Private Sub Worksheet_Change(ByVal Target As Range) End Sub
Как автоматизировать рутинные задачи в Excel с помощью макросов
Excel располагает мощнейшей, но в то же время очень редко используемой, возможностью создавать автоматически выполняющиеся последовательности действий с помощью макросов. Макрос – идеальный выход, если Вы имеете дело с однотипной задачей, которая повторяется множество раз. Например, обработка данных или форматирование документов по стандартизированному шаблону. При этом Вам не требуется знание языков программирования.
Вам уже любопытно, что такое макрос, и как он работает? Тогда смелей вперёд – далее мы шаг за шагом проделаем весь процесс создания макроса вместе с Вами.
Что такое Макрос?
Макрос в Microsoft Office (да, этот функционал работает одинаково во многих приложениях пакета Microsoft Office) – это программный код на языке программирования Visual Basic for Applications (VBA), сохранённый внутри документа. Чтобы было понятнее, документ Microsoft Office можно сравнить со страницей HTML, тогда макрос – это аналог Javascript. То, что Javascript умеет делать с данными в формате HTML, находящимися на web-странице, очень похоже на то, что макрос может делать с данными в документе Microsoft Office.
Макросы способны выполнить практически любые действия в документе, которые Вы только можете пожелать. Вот некоторые из них (очень малая часть):
- Применять стили и форматирование.
- Выполнять различные операции с числовыми и текстовыми данными.
- Использовать внешние источники данных (файлы баз данных, текстовые документы и т.д.)
- Создавать новый документ.
- Проделывать все вышеперечисленные действия в любой их комбинации.
Создание макроса – практический пример
Для примера возьмём самый обычный файл 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
Прежде чем раскрыть все возможности созданного Вами макроса, считаю правильным обратить внимание на пару важных моментов, касающихся макросов в целом:
- Макрос может нанести вред.
- Ещё раз прочти предыдущий пункт.
VBA-код обладает очень большими возможностями. В частности, он может выполнять операции с файлами за пределами текущего документа. Например, макрос может удалять или изменять любые файлы в папке Мои документы. По этой причине запускайте и разрешайте выполнение макросов только из источников, которым Вы доверяете.
Чтобы запустить наш макрос, форматирующий данные, откройте файл шаблона, который мы создали в первой части этого урока. Если у Вас стандартные настройки безопасности, то при открытии файла сверху над таблицей появится предупреждение о том, что запуск макросов отключен, и кнопка, чтобы включить их выполнение. Так как шаблон мы сделали самостоятельно и себе мы доверяем, то нажимаем кнопку Enable Content (Включить содержимое).
Следующим шагом, мы импортируем последний обновлённый набор данных из файла CSV (на основе такого файла мы создавали наш макрос).
При выполнении импорта данных из CSV-файла, возможно, Excel попросит Вас настроить некоторые параметры для правильной передачи данных в таблицу.
Когда импорт будет закончен, зайдите в меню Macros (Макросы) на вкладке View (Вид) и выберите команду View Macros (Макросы).
В открывшемся диалоговом окне мы увидим строку с именем нашего макроса FormatData. Выберите его и нажмите Run (Выполнить).
Когда макрос начнёт работать, Вы увидите, как табличный курсор прыгает с ячейки на ячейку. Через несколько секунд с данными будут проделаны те же операции, что и при записи макроса. Когда всё будет готово, таблица должна выглядеть так же, как и оригинал, который мы форматировали вручную, только с другими данными в ячейках.
Заглянем под капот: Как работает макрос?
Как уже не раз упоминалось, макрос – это программный код на языке программирования Visual Basic for Applications (VBA). Когда Вы включаете режим записи макроса, Excel фактически записывает каждое сделанное Вами действие в виде инструкций на языке VBA. По-простому, Excel пишет программный код вместо Вас.
Чтобы увидеть этот программный код, нужно в меню Macros (Макросы) на вкладке View (Вид) кликнуть View Macros (Макросы) и в открывшемся диалоговом окне нажать Edit (Изменить).
Откроется окно Visual Basic for Applications, в котором мы увидим программный код записанного нами макроса. Да, Вы правильно поняли, здесь этот код можно изменить и даже создать новый макрос. Те действия, которые мы совершали с таблицей в этом уроке, вполне можно записать с помощью автоматической записи макроса в Excel. Но более сложные макросы, с тонко настроенной последовательностью и логикой действий требуют программирования вручную.
Добавим ещё один шаг к нашей задаче…
Представьте, что наш исходный файл с данными data.csv создаётся автоматически каким-то процессом и сохраняется на диске всегда в одном и том же месте. Например, C:Datadata.csv – путь к файлу с обновляемыми данными. Процесс открытия этого файла и импорта данных из него тоже можно записать в макрос:
- Откройте файл шаблона, в котором мы сохранили макрос – FormatData.
- Создайте новый макрос с именем LoadData.
- В процессе записи макроса LoadData сделайте импорт данных из файла data.csv – как мы это делали в предыдущей части урока.
- Когда импорт будет завершён, остановите запись макроса.
- Удалите все данные из ячеек.
- Сохраните файл, как шаблон Excel с поддержкой макросов (расширение XLTM).
Таким образом, запустив этот шаблон, Вы получаете доступ к двум макросам – один загружает данные, другой их форматирует.
Если есть желание заняться программированием, Вы можете объединить действия этих двух макросов в один – просто скопировав код из LoadData в начало кода FormatData.
Download Article
Download Article
This wikiHow teaches you how to enable, create, run, and save macros in Microsoft Excel. Macros are miniature programs which allow you to perform complex tasks, such as calculating formulas or creating charts, within Excel. Macros can save significant amounts of time when applied to repetitive tasks, and thanks to Excel’s «Record Macro» feature, you don’t have to know anything about programming in order to create a macro.
Things You Should Know
- Macros make it easy to automatic tasks in Microsoft Excel.
- To create macros yourself, you’ll need to enable macros in the Developer menu of Excel.
- Saving a macro-enabled spreadsheet is a little different than saving a spreadsheet without macros.
-
1
Open Excel. Double-click the Excel app icon, which resembles a white «X» on a green box, then click Blank workbook.
- If you have a specific file which you want to open in Excel, double-click that file to open it instead.
-
2
Click File. It’s in the upper-left side of the Excel window.
- On a Mac, click Excel in the upper-left corner of the screen to prompt a drop-down menu.
Advertisement
-
3
Click Options. You’ll find this on the left side of the Excel window.
- On a Mac, you’ll click Preferences… in the drop-down menu.
-
4
Click Customize Ribbon. It’s on the left side of the Excel Options window.[1]
- On a Mac, click instead Ribbon & Toolbar in the Preferences window.
-
5
Check the «Developer» box. This box is near the bottom of the «Main Tabs» list of options.
-
6
Click OK. It’s at the bottom of the window. You can now use macros in Excel.
- On a Mac, you’ll click Save here instead.
Advertisement
-
1
Enter any necessary data. If you opened a blank workbook, enter any data which you want to use before proceeding.
- You can also close Excel and open a specific Excel file by double-clicking it.
-
2
Click the Developer tab. It’s at the top of the Excel window. Doing so opens a toolbar here.
-
3
Click Record Macro. It’s in the toolbar. A pop-up window will appear.
-
4
Enter a name for the macro. In the «Macro name» text box, type in the name for your macro. This will help you identify the macro later.
-
5
Create a shortcut key combination if you like. Press the ⇧ Shift key along with another letter key (e.g., the E key) to create the keyboard shortcut. You can use this keyboard shortcut to run the macro later.
- On a Mac, the shortcut key combination will end up being ⌥ Option+⌘ Command and your key (e.g., ⌥ Option+⌘ Command+T).
-
6
Click the «Store macro in» drop-down box. It’s in the middle of the window. Doing so prompts a drop-down menu.
-
7
Click This Workbook. This option is in the drop-down menu. Your macro will be stored inside your spreadsheet, making it possible for anyone who has the spreadsheet to access the macro.
-
8
Click OK. It’s at the bottom of the window. Doing this saves your macro settings and begins recording.
-
9
Perform the macro’s steps. Any step you perform between clicking OK and clicking Stop Recording while be added to the macro. For example, if you wanted to create a macro which turns two columns’ worth of data into a chart, you would do the following:
- Click and drag your mouse across the data to select it.
- Click Insert
- Select a chart shape.
- Click the chart that you want to use.
-
10
Click Stop Recording. It’s in the Developer toolbar. This will save your macro.
Advertisement
-
1
Understand why you have to save the spreadsheet with macros enabled. If you don’t save your spreadsheet as a macro-enabled spreadsheet (XLSM format), the macro won’t be saved as part of the spreadsheet, meaning that other people on different computers won’t be able to use your macro if you send the workbook to them.
-
2
Click File. It’s in the upper-left corner of the Excel window (Windows) or the screen (Mac). Doing so will prompt a drop-down menu.
-
3
Click Save As. This option is on the left side of the window (Windows) or in the drop-down menu (Mac).
-
4
Double-click This PC. It’s in the column of save locations near the left side of the window. A «Save As» window will open.
- Skip this step on a Mac.
-
5
Enter a name for your Excel file. In the «Name» text box, type in the name for your Excel spreadsheet.
-
6
Change the file format to XLSM. Click the «Save as type» drop-down box, then click Excel Macro-Enabled Workbook in the resulting drop-down menu.[2]
- On a Mac, you’ll replace the «xlsx» at the end of the file’s name with xlsm.
-
7
Select a save location. Click a folder in which you want to save the Excel file (e.g., Desktop).
- On a Mac, you must first click the «Where» drop-down box.
-
8
Click Save. It’s at the bottom of the window. Doing so will save your Excel spreadsheet to your selected location, and your macro will be saved along with it.
Advertisement
-
1
Open the macro-enabled spreadsheet. Double-click the spreadsheet that has the macro in it to open the spreadsheet in Excel.
-
2
Click Enable Content. It’s in a yellow bar at the top of the Excel window. This will unlock the spreadsheet and allow you to use the macro.
- If you don’t see this option, skip this step.
-
3
Click the Developer tab. This option is at the top of the Excel window.
- You can also just press the key combination you set for the macro. If you do so, the macro will run, and you can skip the rest of this method.
-
4
Click Macros. You’ll find it in the Developer tab’s toolbar. A pop-up window will open.
-
5
Select your macro. Click the name of the macro which you want to run.
-
6
Click Run. It’s on the right side of the window. Your macro will begin running.
-
7
Wait for the macro to finish running. Depending on how large your macro is, this can take several seconds.
Advertisement
Add New Question
-
Question
Can I use a macro that I create in other spreadsheets and future spreadsheets on the same pc?
Yes, you can use a macro that you crate in other spreadsheets and future spreadsheets on the same pc.
-
Question
How can I write macros that will change a spreadsheet as soon as I create it?
You will first need a basic understanding of VBA. There are many tutorials on this.
Ask a Question
200 characters left
Include your email address to get a message when this question is answered.
Submit
Advertisement
Video
-
Macros are generally useful for automating tasks which you must perform often, such as calculating payroll at the end of the week.
Thanks for submitting a tip for review!
Advertisement
-
Although most macros are benign, some macros can maliciously change or delete information on your computer. Never open a macro from a source which you don’t trust.
Advertisement
About This Article
Article SummaryX
1. Enable Developer options in Excel.
2. Click the Developer tab.
3. Click Record Macro.
4. Enter the macro name and details.
5. Click OK.
6. Perform the macro’s steps.
7. Click Stop Recording.
Did this summary help you?
Thanks to all authors for creating a page that has been read 710,567 times.