Excel макросы самоучитель
Excel макросы самоучитель
М акросы в Excel для начинающих
Никогда не программировавшим часто трудно сразу читать примеры программ, нужно сначала понять основные принципы, узнать слова, которыми оперируют программисты. Эта страница специально создана для самых начинающих.
Итак, что такое макросы и как их писать?
Макросы — это программы в Excel. Макросы могут делать всё, что может делать пользователь вручную. Их полезно использовать для обработки данных или для автоматизации стандартных действий.
Макросы пишутся на языке VBA — Visual Basic for Applications. Эту аббревиатуру стоит запомнить и использовать в поисковых запросах при поиске нужной информации. VBA — объектно-ориентированный, иерархический язык. Это значит, что управлять придется объектами, подчиненными друг другу. Например, книга Excel — объект. В ней есть листы, на листах есть ячейки. Листы, ячейки, диапазоны и многое другое — это объекты. Подчиненность можно примерно приравнять вложенности — например, ячейка вложена в лист, а лист в книгу.
С объектами можно производить ряд действий, например, открывать, активировать, выделять, удалять, копировать и многое многое другое.
У объектов есть свойства. Например, лист может быть видимым или скрытым, активным или неактивным. У ячейки множество свойств, также всем известных: заливка, границы, цвет и размер текста, выравнивание. Свойства, естественно, можно менять.
Итак, объекты «встроены» друг в друга и имеют различные свойства. Познакомимся с ними поближе.
Не будем здесь приводить весь список, потому что он огромен. Ограничимся тем, что понадобится даже на первом этапе.
Workbook — рабочая книга Excel.
Действия с объектами
Activate — активировать, то есть, «поставить курсор». Активировать можно книгу, лист, ячейку.
Select — выделить. Выделять можно одну или несколько строк, один или несколько столбцов, диапазон или ячейку.
Delete — удалить. Удалить можно тоже строки и столбцы, диапазоны ячеек или одну ячейку, лист.
И отдельно идет действие Paste — вставить. Если за всеми предыдущими действиями стоит слово «что?» (что активировать, что скопировать), то за словом вставить идет вопрос «куда?». Поэтому и при написании программы нужно указывать не что вставить, а куда вставить.
Кроме выполнения программ Excel может «отдавать информацию» по заданным командам. Вот несколько примеров таких команд:
Sheets.Count — выдает количество листов в книге.
Date — выдает сегодняшнюю дату в формате строки.
Len(«строка») — выдает длину строки в количестве символов. В этом примере длина равна 6.
Теперь нужно пару слов сказать о типах данных (переменных).
Для начала достаточно знать одно: данные бывают числами, а бывают строками, то есть текстом. С числами можно совершать одни действия (складывать и т.д.), со строками — другие (узнавать первый символ, например).
Все строковые величины в VBA пишутся в кавычках. Все названия/имена книг или листов — это текст, то есть строковая величина, поэтому всегда должна обрамляться кавычками.
И числа, и строки можно присваивать переменным.
Можно переопределять значения переменных, например, так:
После этого i=11, а s=»Привет, мир!».
Тут мы столкнулись с первой операцией над строковыми величинами. Знак & означает, что две строки нужно соединить. Порядок важен: если написать
s=», мир!» & s, то получим, s=», мир!Привет».
Так как переменная s уже хранит в себе кавычки, при её использовании не нужно заключать её в кавычки. Наоборот, именно отсутствие кавычек подскажет Excel’ю, что воспринимать её нужно как переменную, а не как текст. То есть, записи:
дадут одинаковый результат — присвоят переменной h значение «Привет, мир!»
присвоит переменной h значение «s».
Надо сказать, что объекты в Excel иногда пишут в единственном числе, иногда во множественном. Как запомнить, в каком случае что используется? Можно использовать такое правило: всё, чего в Excel’е много, пишется во множественном числе, всё, что в единственном экземпляре — в единственном. В Excel’е много книг, много листов и очень много ячеек. Все они одинаковы для Excel’я и отличить их можно только по имени или координатам. Поэтому в программе используется множественное число. Например:
Ячейки определяются по координатам: первая — номер строки, вторая — столбца.
поставит курсор в левую верхнюю ячейку.
«Обращаться» к книгам и листам можно не только по имени, но и по номеру. Чаще всего это нужно именно в работе с листами, когда нужно перебрать все. При обращении по номеру, номер не нужно заключать в кавычки
Единственное число используется, например, при ссылке на активную ячейку или лист, потому что, очевидно, активной может быть только одна ячейка или один лист. Например, «запомним» номер строки активной ячейки
Ссылаясь на объект не всегда нужно указывать полный путь к нему: если не указаны объекты более высокого уровня, макрос будет выполняться в активном на данный момент месте.
скопирует верхнюю левую ячейку на активном листе.
скопирует верхняя левую ячейку на листе «Лист1», независимо от того, активен этот лист сейчас или нет.
После этого вы уже можете писать макросы 🙂
Но лучше прочитайте еще про циклы и условный оператор , а потом про то, что такое коллекции объектов и что они нам могут дать.
Как написать простой макрос в программе Excel
Макрос в «Эксель» — небольшая программка (скрипт) написанная на языке VBA (Visual Basic for Applications) разновидности языка Basic ( Бейсик).
В макросах, как правило, прописывают последовательность действий с данными в таблице Excel.
Это очень удобно, если Вам приходится по многу раз выполнять одну и ту же последовательность операций с данными. Достаточно один раз записать макро и запускать его каждый раз, когда хотите выполнить нужные действия. При запуске макроса программа сама выполнит все нужные расчеты и обработает информацию в таблице.
Как создать простой макрос.
Создавать макросы в Excel можно двумя способами:
- При помощи опции «Запись макроса»;
- Написать макрос на языке VBA в редакторе макросов и применить его к документу.
Самый простой способ «Запись макроса», его и рассмотрим.
Для начала необходимо включить вкладку «Разработчик», если она не включена.
Необходимо кликнуть правой кнопкой мыши на панели инструментов, выбрать «настройка ленты», в настройках ленты поставить галочку напротив панели «Разработчик» и нажать «ОК».
После того, как включили панель разработчика можно начинать запись макроса.
Чтобы записать макрос, следует:
- Войти во вкладку «разработчик».
- Выбрать запись макроса.
- Выбрать имя макроса (в имени нельзя использовать пробелы и дефисы);
- Можно выбрать сочетание клавиш, при нажатии которых будет начинаться запись макроса;
- Выбрать место сохранения:
— при сохранении в «Эта книга» макрос будет работать только в текущем документе;
— при сохранении в «Личная книга» макрос будет работать во всех документах на Вашем компьютере.
- Можно добавить описание макроса, оно поможет Вам вспомнить, какие действия совершает макрос.
- Нажать «Ок».
- Если вы не указали сочетание клавиш, запись начнется сразу после нажатия кнопки «Ок».
- Когда идет запись, Вы должны совершать требуемую последовательность действий.
- Когда закончите, нажимайте кнопку остановить запись.
Записанные макросы отображаются в книге макросов.
Чтобы их посмотреть следует нажать кнопку «макросы». В появившемся окне появится список макросов. Выберете нужный макрос и нажмите «Выполнить».
Макросы, находящиеся в книге можно редактировать. Для этого нужно выбрать макрос и нажать кнопку «Изменить». При нажатии на кнопку «Изменить» откроется редактор макросов с записанным на языке VBA скриптом.
Попробуем отредактировать макрос.
Например, продолжить его еще на несколько ячеек.
После корректировок закрываем редактор и пробуем снова запустить макрос.
Самоучитель по работе с макросами в Excel
Возможности Excel не ограничиваются набором встроенных функций. При помощи написания макросов Вы можете создавать собственные функции для выполнения нестандартных задач в Excel.
Например, самостоятельно написанный макрос можно привязать к иконке и вывести на Ленту меню. Либо Вы можете создать пользовательскую функцию (UDF) и использовать ее точно так же, как и остальные встроенные функции Excel.
Макрос — это компьютерный код, написанный для Excel на языке программирования Visual Basic for Applications (VBA). Базовые понятия языка программирования VBA рассматриваются на нашем сайте в Учебнике по VBA. Однако прежде чем приступить к написанию кода VBA, рекомендуем познакомиться с уроками, в которых рассматривается безопасность макросов Excel и редактор Visual Basic.
Настройка разрешения для использования макросов в Excel
В Excel предусмотрена встроенная защита от вирусов, которые могут проникнуть в компьютер через макросы. Если хотите запустить в книге Excel макрос, убедитесь, что параметры безопасности настроены правильно.
Редактор Visual Basic
В Excel есть встроенный редактор Visual Basic, который хранит код макроса и взаимодействует с книгой Excel. Редактор Visual Basic выделяет ошибки в синтаксисе языка программирования и предоставляет инструменты отладки для отслеживания работы и обнаружения ошибок в коде, помогая таким образом разработчику при написании кода.
Запись макросов
Инструментарий Excel для записи макросов – это отличный способ эффективно выполнять простые повторяющиеся задачи. Также его можно использовать, как вспомогательное средство при написании более сложных макросов.
Учебник Excel VBA
Для тех, кто только начинает осваивать язык программирования Excel VBA, предлагаем небольшой вводный курс по Visual Basic for Applications.
Как написать простой макрос в программе Excel
Макрос в «Эксель» — небольшая программка (скрипт) написанная на языке VBA (Visual Basic for Applications) разновидности языка Basic ( Бейсик).
В макросах, как правило, прописывают последовательность действий с данными в таблице Excel.
Это очень удобно, если Вам приходится по многу раз выполнять одну и ту же последовательность операций с данными. Достаточно один раз записать макро и запускать его каждый раз, когда хотите выполнить нужные действия. При запуске макроса программа сама выполнит все нужные расчеты и обработает информацию в таблице.
Как создать простой макрос.
Создавать макросы в Excel можно двумя способами:
- При помощи опции «Запись макроса»;
- Написать макрос на языке VBA в редакторе макросов и применить его к документу.
Самый простой способ «Запись макроса», его и рассмотрим.
Для начала необходимо включить вкладку «Разработчик», если она не включена.
Необходимо кликнуть правой кнопкой мыши на панели инструментов, выбрать «настройка ленты», в настройках ленты поставить галочку напротив панели «Разработчик» и нажать «ОК».
После того, как включили панель разработчика можно начинать запись макроса.
Чтобы записать макрос, следует:
- Войти во вкладку «разработчик».
- Выбрать запись макроса.
- Выбрать имя макроса (в имени нельзя использовать пробелы и дефисы);
- Можно выбрать сочетание клавиш, при нажатии которых будет начинаться запись макроса;
- Выбрать место сохранения:
— при сохранении в «Эта книга» макрос будет работать только в текущем документе;
— при сохранении в «Личная книга» макрос будет работать во всех документах на Вашем компьютере.
- Можно добавить описание макроса, оно поможет Вам вспомнить, какие действия совершает макрос.
- Нажать «Ок».
- Если вы не указали сочетание клавиш, запись начнется сразу после нажатия кнопки «Ок».
- Когда идет запись, Вы должны совершать требуемую последовательность действий.
- Когда закончите, нажимайте кнопку остановить запись.
Записанные макросы отображаются в книге макросов.
Чтобы их посмотреть следует нажать кнопку «макросы». В появившемся окне появится список макросов. Выберете нужный макрос и нажмите «Выполнить».
Макросы, находящиеся в книге можно редактировать. Для этого нужно выбрать макрос и нажать кнопку «Изменить». При нажатии на кнопку «Изменить» откроется редактор макросов с записанным на языке VBA скриптом.
Попробуем отредактировать макрос.
Например, продолжить его еще на несколько ячеек.
После корректировок закрываем редактор и пробуем снова запустить макрос.
Учимся работать с макросами в эксель, и программировать на VBA
В 1982 году появился дедушка современного Exel. Это был фактически простой сумматор, позволяющий быстро и без ошибок сводить табличные расчёты по строкам и столбцам. Тогда ещё трудно было представить, что через тридцать лет он до неузнаваемости изменит представление об автоматизации обработки большинства экономических расчётов.
Вводная часть – зачем нужны макросы
С 1993 года в разработке приложений для компьютеров началась революция, когда был создан объединённый продукт Microsoft Office, где Exel стал играть одну из ключевых ролей. Именно в это время появляется мощное дополнение VBA, позволяющее автоматизировать задачи Exel. Табличный процессор получил возможность не только предоставлять удобный интерфейс для умного пересчёта ячеек, но и стал полноценным продуктом для решения прикладных задач.
Рассмотрим на простых примерах как создавать программы. Автоматизация или программирование работы машины любит точные определения:
- Работаем в приложении Office 365 для дома. При этом рассматриваются те возможности, которые не принципиальны при переходе на работу в расширенные версии. Например, для малого бизнеса, где наиболее полноценно раскрываются возможности табличного процессора и макросы excel 2010.
- При описании будет использоваться интерфейс Exel 2016.
- VBA, диалект предметно ориентированного языка Visual Basic применяемый при работе с приложениями Microsoft Office.
- Макрос или макрокоманда — программный алгоритм действий, определённый пользователем. Кроме того, это понятие применяется для символьного имени книги-шаблона, в которой хранится код действий.
- Используется только функциональность, предусмотренная базовым вариантом табличного процессора, использующего макросы для excel 2013.
- Предполагается, что читатель знаком с возможностями табличного процессора, но никогда не использовал макрос в excel 2007.
Рассмотрим, как создать макрос в excel 2007 на примере решения очень простой задачи:
В течение шести дней с понедельника по субботу на склад поступал цемент. Работали разные кладовщики. Информация вносится в компьютер последовательно не сортируя.
Задача — используя информацию кладовщиков (см. рис.1) сделать сводную таблицу за неделю. Посчитать общий вес поступившего цемента и по каждому кладовщику отдельно.
Записываем первый свой макрос
На странице «Сводный» делаем шаблон исходной таблицы (смотреть рисунок).
Единственное, что надо знать для написания программы в excel — как включить макросы. По ряду существенных причин по умолчанию они отключены. На панели вкладок находим закладку «Вид» и активируем её. Если в базовой версии такой вкладки нет, то добавляем. На всплывающей панели активируем функцию «Макросы». Активируем кнопку «Запись Макроса». Теперь любое действие с таблицей будет фиксироваться и записываться в виде специальных кодов.
Выбираем имя, например «Склад».
Назначаем сочетание клавиш, активирующих программу – «Ctrl +Я».
- Выбираем сохранить в таблице – «Эта книга».
- Описание – «Сортировка данных кладовщиков».
- Подтверждаем клавишей OK (результат действий приведён на рис.).
Кликом «Остановить запись» прекращается работа. С этого момента, все действия с таблицей будут запоминаться и изменив начальные данные их можно повторить.
Используя стандартные операции и формулы заполняем шаблон (на рис. ниже приведена получившаяся форма).
Завершаем запись. Теперь при всех изменениях исходных данных, нажатием клавиш «Ctrl +Я», будут меняться значения в таблице-шаблоне. Даже на очень простом примере видно, как написать макрос в excel 2007.
Чтобы использовать такую макрокоманду, таблицу очищают от исходных данных и файл сохраняют в формате, поддерживающем макрокоманды. Разработано три основных формата:
XLSM, в отличие от стандартного варианта XLSX, таблица с таким расширением поддерживает макрокоманды.
- XLSB обычно используется для больших таблиц и хранит информацию в бинарном формате.
- XLTM для идентификации шаблонов с поддержкой макрокоманд.
Естественно, что описанными инструментами программу изменить невозможно. Если обнаружена ошибка или появилось желание изменить функциональность, то табличный процессор предоставляет возможность работать с кодами предметно ориентированного языка VBA.
Предостережения
Формат статьи не позволяет раскрыть все возможности такого мощного инструмента как Макросы и тем более работы с кодами языка VBA, на котором прописываются все действия по работе с таблицами. Желающим использовать макросы в excel самоучитель Office 365, без сомнений, будет полезен. Там же можно найти примеры макросов excel. Здесь будут даны только некоторые наиболее общие понятия.
Чтобы посмотреть VBA программный код в меню открывается вкладка «Вид» и активируется «Макросы». Появится новое окно где будут видны имена всех записанных макросов. Выбирается нужный и с помощью клика «Изменить» смотрим коды Visual Basic for Applications. При определённом опыте непосредственно в этом окне можно менять последовательность действий. Более того, наиболее сложные макросы пишутся именно в кодах VBA. Но это уже другая история. Отметит только, что средства языка позволяют автоматизировать расчёт таблиц и построение графиков любой сложности и последовательности. Экспортировать данные в Exel с документов различного формата, включая интернет-ресурсы.
Один макрос может включать коды, которые позволяют работать одновременно с несколькими документами и необязательно из табличного процессора.
Не надо только забывать, что самый мощный инструмент может превратиться в свою противоположность. Вместо созидания, этот инструмент может навредить вашему архиву. Для этих макрокоманд доступны все приложения офиса.
При использовании следует учитывать, что при ошибках они могут нанести большой вред. Надстройка VBA может работать с любым документом на вашем компьютере. Можно случайно часть документов удалить или внести ненужные изменения. Тем более нельзя использовать чужие макросы из непроверенных источников. Источник проникновения вируса через такие программы самый очевидный и его не всегда можно обнаружить. Пока нет эффективных антивирусных программ, позволяющих бороться с такими вредоносными макросами.