Акросы в Excel для начинающих. Как записать макрос в Excel? Пошаговая инструкция Как в экселе написать макрос

Макрос в «Эксель» — небольшая программка (скрипт) написанная на языке VBA (Visual Basic for Applications) разновидности языка Basic (Бейсик).

В макросах, как правило, прописывают последовательность действий с данными в таблице Excel.

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

Как создать простой макрос.

Создавать макросы в Excel можно двумя способами:


  • При помощи опции «Запись макроса»;
  • Написать макрос на языке VBA в редакторе макросов и применить его к документу.

Самый простой способ «Запись макроса», его и рассмотрим.

Для начала необходимо включить вкладку «Разработчик», если она не включена.

Необходимо кликнуть правой кнопкой мыши на панели инструментов, выбрать «настройка ленты», в настройках ленты поставить галочку напротив панели «Разработчик» и нажать «ОК».

После того, как включили панель разработчика можно начинать запись макроса.

Чтобы записать макрос, следует:

— при сохранении в «Эта книга» макрос будет работать только в текущем документе;

— при сохранении в «Личная книга» макрос будет работать во всех документах на Вашем компьютере.

  1. Можно добавить описание макроса, оно поможет Вам вспомнить, какие действия совершает макрос.
  2. Нажать «Ок».
  3. Если вы не указали сочетание клавиш, запись начнется сразу после нажатия кнопки «Ок».
  4. Когда идет запись, Вы должны совершать требуемую последовательность действий.
  5. Когда закончите, нажимайте кнопку остановить запись.

Записанные макросы отображаются в книге макросов.

Чтобы их посмотреть следует нажать кнопку «макросы». В появившемся окне появится список макросов. Выберете нужный макрос и нажмите «Выполнить».

Макросы, находящиеся в книге можно редактировать. Для этого нужно выбрать макрос и нажать кнопку «Изменить». При нажатии на кнопку «Изменить» откроется редактор макросов с записанным на языке VBA скриптом.

Попробуем отредактировать макрос.

Например, продолжить его еще на несколько ячеек.

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

Никогда не программировавшим часто трудно сразу читать примеры программ, нужно сначала понять основные принципы, узнать слова, которыми оперируют программисты. Эта страница специально создана для самых начинающих.

Итак, что такое макросы и как их писать?

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

Макросы пишутся на языке VBA - Visual Basic for Applications. Эту аббревиатуру стоит запомнить и использовать в поисковых запросах при поиске нужной информации. VBA - объектно-ориентированный, иерархический язык. Это значит, что управлять придется объектами, подчиненными друг другу. Например, книга Excel - объект. В ней есть листы, на листах есть ячейки. Листы, ячейки, диапазоны и многое другое - это объекты. Подчиненность можно примерно приравнять вложенности - например, ячейка вложена в лист, а лист в книгу.

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

У объектов есть свойства. Например, лист может быть видимым или скрытым, активным или неактивным. У ячейки множество свойств, также всем известных: заливка, границы, цвет и размер текста, выравнивание. Свойства, естественно, можно менять.

Итак, объекты "встроены" друг в друга и имеют различные свойства. Познакомимся с ними поближе.

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

Объекты:

Workbook - рабочая книга Excel.

Sheet - лист.

Range - диапазон.

Cell - ячейка.

Row - строка.

Column - столбец.

Действия с объектами

Activate - активировать, то есть, "поставить курсор". Активировать можно книгу, лист, ячейку.

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

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

Copy - копировать.

И отдельно идет действие Paste - вставить. Если за всеми предыдущими действиями стоит слово "что?" (что активировать, что скопировать), то за словом вставить идет вопрос "куда?". Поэтому и при написании программы нужно указывать не что вставить, а куда вставить.

Кроме выполнения программ Excel может "отдавать информацию" по заданным командам. Вот несколько примеров таких команд:

Sheets.Count - выдает количество листов в книге.

Date - выдает сегодняшнюю дату в формате строки.

Len("строка") - выдает длину строки в количестве символов. В этом примере длина равна 6.

Теперь нужно пару слов сказать о типах данных (переменных).

Для начала достаточно знать одно: данные бывают числами, а бывают строками, то есть текстом. С числами можно совершать одни действия (складывать и т.д.), со строками - другие (узнавать первый символ, например).

Все строковые величины в VBA пишутся в кавычках. Все названия/имена книг или листов - это текст, то есть строковая величина, поэтому всегда должна обрамляться кавычками.

И числа, и строки можно присваивать переменным.

Например:

S="Привет"

Можно переопределять значения переменных, например, так:

I=i+10

S=s & ", мир!"

После этого i=11, а s="Привет, мир!".

Тут мы столкнулись с первой операцией над строковыми величинами. Знак & означает, что две строки нужно соединить. Порядок важен: если написать

s=", мир!" & s, то получим, s=", мир!Привет".

Так как переменная s уже хранит в себе кавычки, при её использовании не нужно заключать её в кавычки. Наоборот, именно отсутствие кавычек подскажет Excel"ю, что воспринимать её нужно как переменную, а не как текст. То есть, записи:

S="Привет, мир!"

H="Привет, мир!"

дадут одинаковый результат - присвоят переменной h значение "Привет, мир!"

Но запись

S="Привет, мир!"

H="s"

присвоит переменной h значение "s".

Надо сказать, что объекты в Excel иногда пишут в единственном числе, иногда во множественном. Как запомнить, в каком случае что используется? Можно использовать такое правило: всё, чего в Excel"е много, пишется во множественном числе, всё, что в единственном экземпляре - в единственном. В Excel"е много книг, много листов и очень много ячеек. Все они одинаковы для Excel"я и отличить их можно только по имени или координатам. Поэтому в программе используется множественное число. Например:

Workbooks("Книга1").Activate

Sheets("Лист1").Copy

Rows(1).Delete

Ячейки определяются по координатам: первая - номер строки, вторая - столбца.

Например, команда

Cells(1,1).Activate

поставит курсор в левую верхнюю ячейку.

"Обращаться" к книгам и листам можно не только по имени, но и по номеру. Чаще всего это нужно именно в работе с листами, когда нужно перебрать все. При обращении по номеру, номер не нужно заключать в кавычки

Единственное число используется, например, при ссылке на активную ячейку или лист, потому что, очевидно, активной может быть только одна ячейка или один лист. Например, "запомним" номер строки активной ячейки

I=ActiveCell.Row

Ссылаясь на объект не всегда нужно указывать полный путь к нему: если не указаны объекты более высокого уровня, макрос будет выполняться в активном на данный момент месте.

Например, команда

Cells(1,1).Copy

скопирует верхнюю левую ячейку на активном листе.

А команда

Sheets("Лист1").Cells(1,1).Copy

скопирует верхняя левую ячейку на листе "Лист1", независимо от того, активен этот лист сейчас или нет.

После этого вы уже можете писать макросы:)

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

Таблицами или другими объектами Office часто возникают ситуации, когда необходимо проделывать один и тот же действий. Это не только отнимает лишнее время, но и очень раздражает. К счастью, для решения этой проблемы существуют макросы.

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

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

Выберите пункт меню «Сервис» -> «Макрос» -> «Начать запись» (в Office 2007 – «Вид» -> «Макросы» -> «Запись макроса»). В появившемся окне «Запись макроса» задайте имя нового макроса, по умолчанию оно стоит «Макрос1», но лучше дать ему название, особенно если макросов будет несколько. Максимальный размер поля имени – 255 знаков, не допускается использование символов точки и пробела.

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

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

Макрос, созданный в Word и PowerPoint, будет действовать для всех документов в дальнейшем. Чтобы макрос в Excel был доступен для всех документов, сохраните его в файле personal.xls, который запускается автоматически при открытии приложения. Выполните команду «Окно» -> «Отобразить» и выделите в появившемся окне строчку с названием файла personal.xls.

Введите описание макроса в поле «Описание». Нажмите ОК и вы вернетесь в свой документ, но теперь на курсоре мыши можете увидеть значок записи. Выполните форматирование текста последовательностью действий, которые хотите автоматизировать. Будьте очень внимательны и не делайте лишних действий, поскольку макрос запишет их все, и это отразится на времени его выполнения в будущем.

Выполните команду «Сервис» -> «Макрос» -> «Остановить запись». Вы создали объект VBA, не написав ни строчки кода самостоятельно. Однако если все же возникнет необходимость внести изменения вручную, войдите в объект через раздел «Макросы», команда «Изменить» или по сочетанию клавиш Alt+F8.

Когда все готово, приступаем к записи.


Запуск макроса

Для проверки того, как работает записанный макрос, выполним несколько простых действий.


Редактирование макроса

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

  1. Снова щелкаем на кнопку «Макросы» . В открывшемся окне выбираем нужный и кликаем по кнопке «Изменить» .
  2. Открывается «Microsoft Visual Basic» (VBE) – среда, где происходит их редактирование.
  3. Запись каждого макроса начинается с команды Sub , а заканчивается командой End Sub . Сразу же после Sub указывается имя макроса. Оператор Range("…").Select указывает выбор ячейки. Например, при команде «Range(«C4»).Select» выбирается ячейка «C4» . Оператор ActiveCell.FormulaR1C1 используется для записи действий в формулах и других расчетов.
  4. Попытаемся немного изменить макрос, дописав выражение:

    Range("C3").Select
    ActiveCell.FormulaR1C1 = "11"

  5. Выражение ActiveCell.FormulaR1C1 = "=R[-3]C+R[-2]C+R[-1]C" заменим на ActiveCell.FormulaR1C1 = "= R[-4]C+R[-3]C+R[-2]C+R[-1]C" .
  6. Закрываем редактор и запускаем макрос. Как видим, вследствие введенных нами изменений была добавлена дополнительная ячейка с данными. Она также была включена в расчет общей суммы.
  7. В случае если макрос слишком большой, его выполнение может занять значительное время, но внесением ручного изменения в код мы можем ускорить процесс. Добавляем команду Application.ScreenUpdating = False . Она позволит сохранить вычислительные мощности, а значит, ускорить работу. Это достигается путем отказа от обновления экрана во время выполнения вычислительных действий. Чтобы возобновить обновление после выполнения макроса, в его конце пишем команду Application.ScreenUpdating = True .
  8. Добавим также команду Application.Calculation = xlCalculationManual в начало кода, а в его конец дописываем Application.Calculation = xlCalculationAutomatic . Этим мы сначала отключаем автоматический пересчет результата после каждого изменения ячеек, а в конце макроса – включаем. Таким образом, Excel подсчитает результат только один раз, а не будет его постоянно пересчитывать, чем сэкономит время.
  9. Вариант 2: Написание кода макроса с нуля

    Продвинутые пользователи могут выполнять не только редактирование и оптимизацию записанных макросов, но и записывать их код с нуля.


    Как видим, макросы в Microsoft Excel могут значительно упростить выполнение рутинных и однообразных процессов. Тем не менее в большинстве случаев для этого больше подходят макросы, код которых написан вручную, а не автоматически записанные действия. Кроме того, его код можно оптимизировать через редактор VBE для ускорения процесса выполнения задачи.

Что такое макрос? Макрос — это сохраненная последовательность действий или программа, созданная на языке VBA (Visual Basic for Application). Частый вопрос как написать макрос в Excel? Просто.

Т.е. если нам необходимо выполнять одни и те же действия несколько раз, мы можем запомнить эти действия и запускать их одной кнопкой. Я не буду заставлять вас учить язык VBA и даже не буду предлагать много стандартных макросов в этой статье. В действительности создать/написать макрос в Excel сможет действительно каждый. Для этого существует самая интересная и необычная возможность Excel — Макрорекордер (запись ваших действий в виде кода). Т.е. вы можете записать свои действия, как на видео и перевести их в код (последовательность).

Короче, если вы каждый день выполняете одни и те же действия, стоит разобраться как автоматизировать этот процесс. Читайте далее, как написать макрос в Excel?

1.Разрешить использование макросов

Меню (круглая кнопка вверху слева) — Параметры Excel — Центр управления безопасностью — Параметры центра управления безопасностью — Параметры макросов. Поставьте флажок «Включить все макросы».

Или сделать тоже самое на вкладке Разработчик

2. Включить меню Разработчик для быстрой работы с макросами

Меню (круглая кнопка вверху слева) — Параметры Excel — Основные — Показывать вкладку Разработчик.

Чтобы созданный макрос сохранился в книге, необходимо сохранить файл в .xlsm или.xlsb. Нажмите Сохранить как — Книга Excel с поддержкой макросов или Двоичная книга.

Итак, как написать макрос в Excel?

Все просто. Заходим в Excel. Внизу страницы, под ярлычками листов есть кнопка «Запись макроса».

Нажимаем кнопку, открывается окно «Запись макроса». Называем макрос как нам нравится в поле Имя макроса:. Задаем сочетание клавиш, которыми потом будем вызывать его (не обязательно).

Жмем ОК. Начались запись Макрорекордера.

Все. Теперь делаем те действия, которые нам нужно запомнить макросом. К примеру, нам нужно удалить одну строку и раскрасить ячейку А1 желтым цветом.

Во время этих манипуляций вместо кнопки «Запись макроса» под листами, будет гореть квадратик, нажав на который вы остановите выполнение макроса.

Как запустить то, что получилось? Нажмите кнопку , появится окно Выбор макроса, выбирите нужный макрос, а затем щелкните кнопку выполнить.

Как посмотреть что получилось? Нажмите кнопку . Выберите нужный макрос и нажмите изменить. Откроется окно записи макросов (окно VBA)

Код макроса должен получиться примерно следующим.

Sub Пример1() " Пример1 Макрос Rows("2:2").Select Selection.Delete Shift:=xlUp Range("A1").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 65535 .TintAndShade = 0 .PatternTintAndShade = 0 End With End Sub

‘ — символ комментария, т.е. эта строка не участвует в коде. Для макроса обязательно наличие имени (Sub Пример1()) и окончания (End Sub).

Как создать кнопку для макроса можно прочитать .

Итак, любое свое действие Вы можете записать, чтобы потом повторить сколько угодно раз!

Как сохранить макрос для всех книг на своем компьютере можно прочитать .

Для этого применяется файл Personal.

Как запустить макрос по условию можно прочитать

Удачи, уверен вам это здорово пригодиться!

Поделитесь нашей статьей в ваших соцсетях: