Excel vba макрос: Начало работы с VBA в Office

VBA Excel. Макросы (запись, запуск, пример)

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

Вкладка «Разработчик»

Запись макроса осуществляется встроенным рекордером, кнопка запуска которого находится на вкладке «Разработчик» главного меню программы Excel. По умолчанию эта вкладка не отображается. Добавить вкладку на панель можно следующим образом:

Excel 2010-2016

Переходим по пути: Файл — Параметры — Настроить ленту. В разделе «Настроить ленту» справа в списке «Основные вкладки» устанавливаем флажок «Разработчик» и нажимаем кнопку «OK».

Excel 2007

Переходим по пути: значок «Microsoft Office» — Параметры Excel — категория «Основные», в категории «Основные» устанавливаем флажок «Показывать вкладку «Разработчик» на ленте» и нажимаем кнопку «OK».

Excel 2000-2003

Здесь ничего отображать не надо: кнопки по работе с макросами и редактором VBA находятся в главном меню на вкладке «Сервис» — «Макрос».

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

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

Excel 2007-2016

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

Excel 2000-2003

Пройдите по пунктам меню «Сервис» — «Макрос» — «Начать запись».

Откроется окно:

Окно «Запись макроса»

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

Сочетание клавиш: добавьте букву, если хотите запускать макрос сочетанием клавиш Ctrl+«буква». В какой раскладке вы впишите букву (например, «й» или «q»), в той и будет запускаться макрос. Если буква будет вписана в верхнем регистре («Й» или «Q»), используйте для запускa макроса сочетание клавиш Ctrl+Shift+«буква».

Сохранить в: выберите книгу, в которой должен быть сохранен макрос:

  • «Эта книга» — макрос будет записан в книге, из которой рекордер был запущен (нажата кнопка «Запись макроса»).
  • «Новая книга» — откроется новая книга и макрос будет записан в ней.
  • «Личная книга макросов» — макрос запишется в Личную книгу макросов и будет доступен из всех открытых книг Excel.

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

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

Список макросов

Окно со списком макросов открывается во всех версиях Excel нажатием кнопки «Макросы». Выглядит оно следующим образом:

Список макросов во всех открытых книгах

  • Выполнить — выделенный макрос будет запущен на выполнение.
  • Войти — переход к коду макроса, запущенному и поставленному на паузу, как при обнаружении ошибки в коде.
  • Изменить — переход к коду макроса для редактирования.
  • Создать — кнопка станет активной при записи имени нового макроса в поле «Имя макроса».
  • Удалить — удаление выделенного макроса.
  • Параметры… — редактирование сочетания клавиш для запуска макроса и его описания.
  • Находится в: — здесь можно выбрать все открытые книги или одну из них.
  • Описание — текст, добавленный в одноименное поле при создании макроса или редактировании его параметров.

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

Запустить записанный макрос можно следующими способами:

  • Сочетанием клавиш, указанным в параметрах макроса.
  • Кнопкой «Выполнить» из окна списка макросов.
  • Кнопкой «Run Sub» или клавишей «F5» из редактора VBA.
  • Кнопкой, добавленной на лист Excel из раздела «Элементы управления формы» и которой назначен запускаемый макрос.

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

Пример записи простого макроса

Выполните следующие действия:

Excel 2007-2016

  1. Откройте книгу Excel или создайте новую и сохраните ее как книгу с поддержкой макросов (.xlsm).
  2. На вкладке «Разработчик» нажмите кнопку «Запись макроса».
  3. В окне «Запись макроса» нажмите кнопку «OK», оставив параметры по умолчанию.
  4. Перейдите на вкладку «Главная» и выберите любой цвет заливки ячеек.
  5. Нажмите кнопку «Остановить запись».

Excel 2000-2003

  1. Откройте книгу Excel или создайте новую и сохраните ее с расширением по умолчанию (.xls).
  2. Включите запись макроса, пройдя по пунктам меню «Сервис» — «Макрос» — «Начать запись».
  3. В окне «Запись макроса» нажмите кнопку «OK», оставив параметры по умолчанию.
  4. На панели инструментов выберите любой цвет заливки ячеек.
  5. Нажмите кнопку «Остановить запись».

В результате будет записан простейший макрос окрашивания фона выделенной ячейки или диапазона.

Откройте список макросов, выберите записанный макрос и нажмите кнопку «Изменить». Вы увидите код вашего макроса:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Sub Макрос1()

‘ Макрос1 Макрос

 

    With Selection.Interior

        .Pattern = xlSolid

        . PatternColorIndex = xlAutomatic

        .Color = 5296274

        .TintAndShade = 0

        .PatternTintAndShade = 0

    End With

End Sub

Число (5296274) в вашем примере будет другим, в зависимости от выбранного цвета заливки.

Выберите на активном листе любую ячейку или диапазон, вернитесь в редактор VBA и нажмите клавишу «F5» (курсор должен находиться в любом месте внутри кода запускаемого макроса). На активном листе выделенный диапазон окрасится в выбранный при записи макроса цвет.

Рекордер макросов может записывать много лишних строк, без которых можно обойтись. Точно также макрос будет работать и в такой редакции:

Sub Макрос2()

  Selection.Interior.Color = 5296274

End Sub

Скопируйте этот код и вставьте его внизу, под вашим макросом, в редакторе VBA (числовое значение цвета можете изменить на свое или оставить, как в примере). Проверьте его работоспособность, выбрав незакрашенные ячейки и запустив макрос клавишей «F5», не забыв о том, что курсор должен находиться внутри этого макроса.

Имена макросов должны различаться в пределах одного модуля, но еще лучше — всем макросам одной книги давать уникальные имена.

Назначение макроса кнопке

Теперь давайте назначим записанный макрос (любой из двух) кнопке, добавленной на лист Excel из раздела «Элементы управления формы»:

Excel 2007-2016

  1. На вкладке «Разработчик» нажмите кнопку «Вставить» и в разделе «Элементы управления формы» кликните по изображению кнопки.
  2. Переведите курсор на табличную область листа, курсор примет вид крестика, и кликните левой кнопкой мыши.
  3. В открывшемся окне «Назначить макрос объекту» выберите один из новых макросов и нажмите кнопку «OK». Если нажать кнопку «Отмена», новая кнопка будет создана без назначенного макроса. Его можно будет назначить позднее, кликнув по ней правой кнопкой мыши и выбрав в контекстном меню «Назначить макрос…»

Excel 2000-2003

  1. Отобразите панель инструментов «Формы», пройдя по пунктам меню «Вид» — «Панели инструментов» — «Формы».
  2. Кликните по Кнопке на панели инструментов «Формы», затем переведите курсор на табличную часть рабочего листа, нажмите левую кнопку мыши и, не отпуская ее, нарисуйте прямоугольник (контур кнопки) нужного размера, затем отпустите кнопку мыши.
  3. В открывшемся окне «Назначить макрос объекту» выберите один из новых макросов и нажмите кнопку «OK». Если нажать кнопку «Отмена», новая кнопка будет создана без назначенного макроса. Его можно будет назначить позднее, кликнув по ней правой кнопкой мыши и выбрав в контекстном меню «Назначить макрос…»

Кнопка создана. Выберите ячейку или диапазон и нажмите созданную кнопку. Цвет фона изменится.

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

Сокращенный вариант кода по очистке фона будет выглядеть так:

Sub Макрос3()

  Selection. Interior.Pattern = xlNone

End Sub

Чтобы отредактировать кнопку — изменить надпись, шрифт, размер, переместить и т.д. — используйте контекстное меню и маркеры, появляющиеся после клика по ней правой кнопкой мыши. Если вы хотите, чтобы кнопка не уезжала из зоны видимости при прокрутке листа, закрепите верхнюю строку и разместите кнопку на ней.

Остановка макроса (процедуры)

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

  1. Если панель инструментов редактора VBA доступна, нажмите кнопку Break или Reset.
  2. Если редактор VBA не доступен, нажмите сочетание клавиш Ctrl+Break.
  3. Если сочетание клавиш Ctrl+Break не срабатывает, закройте программу Excel через Диспетчер задач.
  4. Если Диспетчер задач долго не открывается, остается только выключение компьютера большой кнопкой или кнопкой «Перезагрузка».

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

Как я с помощью VBA оплатил себе университет / Хабр

Большинство молодых людей, когда слышат про Excel, вспоминают сразу уроки информатики в школе или пары в универе, где нас учили выставлять ширину бортиков ячейки и как писать текст в ней по диагонали. Нам демонстрировали работу со статическими таблицами, учили их оформлять и форматировать. Но знаменитую цитату Моргана Фримана из фильма Люси: «Что, если бы мы использовали мозг на 100 процентов?» можно перефразировать на: «Что, если бы мы использовали Excel на 100 процентов?». Дело в том, что многие из вас даже не представляют на сколько это многогранная и сложная программа, функционал которой уходит далеко за пределы форматирования таблиц и подготовки простеньких графиков. Я тоже этого не представлял, пока это не стало моим основным источником заработка во время учебы в университете. И в своей статье я хочу рассказать вам про мой опыт работы с Excel и VBA, о том какие интересные вещи делают с его помощью некоторые фирмы и о том, как на этом можно неплохо подзаработать.

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

Пожалуй, в начале пару слов обо мне. В 18 лет я переехал в Германию на учебу и вопрос заработка денег сразу стал ребром. На первом курсе я не был интересен фирмам в силу отсутствия опыта и малого возраста, так что приходилось перебиваться подработками на кассах, складах и центрах обслуживания клиентов. На втором курсе я поднабрался опыта и начал искать работу по специальности на неполную ставку 16-20 часов в неделю. После недолгого поиска мне попалась достаточно интересная должность — программист VBA на Excel. В описании должности были указаны такие обязанности как разработка и поддержка Excel макросов, используемых для автоматизации работы отдела и прочие связанные с Excel вещи. Платили неплохо, а работу я себе представил достаточно интересной.

Автоматизация процессов является неотъемлемой частью любого отдела любой фирмы в любом уголке мира. Желание экономить время и средства путем автоматизации рутинных процессов вынуждает фирмы инвестировать большие суммы в софт, который перенимает на себя повседневные и откровенно скучные обязанности сотрудников. Некоторые отделы и вовсе уже невозможно представить без продвинутых систем автоматизации, например бухгалтерию или логистику. Как правило, все упирается в бюджет. В первую очередь необходимый софт получают те отделы, где он действительно жизненно необходим, а второстепенные могут годами ждать своей очереди на автоматизацию. Но желание экономить собственные силы и время при выполнении задач не уменьшается вместе с размером отдела. На помощь приходят подручные средства доступные каждому.  End-user computing – процесс, в ходе которого люди, не являющиеся программистами, создают приложения для облегчения работы себе и коллегам. В ходе этого процесса разработка происходит без участия IT отдела, собственными силами самих сотрудников. Самый популярный софт для подобного рода работы – это Microsoft Office. Офисный пакет предустановлен практически на каждом компьютере и доступен каждому. Работу с текстом поддерживает старый добрый Word, работу с базами данных медленно уходящий в прошлое Access, а вот всю возможную работу с данными, цифрами, отчетами поддерживает главный герой нашей статьи – Excel.

Придя на свой первый рабочий день, я был невероятно удивлен от увиденного. Мой отдел являлся замечательным примером того самого коллектива, который уже долгое время стоит в очереди на автоматизацию, но все никак не получает необходимого софта. Однако это не остановило их от того, чтобы делать все для облегчения своих рабочих будней. С приходом нового руководства целых 4 года и труд 2 студентов, работающих в отделе до меня, были ювелирно инвестированы в построение на базе VBA огромной системы макросов, которая по своей сути практически заменяла работникам продвинутый тематический софт. Каждый человек в отделе приложил свою руку к его формированию, кто-то описывал бизнес-процессы, кто-то занимался непосредственно программированием, а кто-то тестировкой. Общий программный ландшафт, созданный на VBA, включал в себя базу данных, множество макросов для автоматизации составления различных отчетов, макросы для обновления документов и многое-многое другое. Я и подумать не мог, что все это можно сделать при помощи VBA и Excel. Со временем я стал понимать, что гораздо легче перечислить вещи, которые на VBA сделать нельзя. Каждое новое задание становилось для меня не проблемой, а новым интересным вызовом и меня раз за разом поражало то, что практически любую офисную проблему можно было решить в VBA инвестировав минимальное количество времени в разработку. Построить базу данных с графическим интерфейсом и функцией импорта разных типов документов? Без проблем. Реализовать автоматическую сборку квартального отчета с помощью базы данных? Изи. Обновить одноразово более 100 файлов, вместо того чтобы каждый из них изменять вручную? Конечно! Примеров того, как мы использовали VBA для облегчения наших трудовых будней десятки. В случае, если вам будет интересно почитать подробнее про техническую составляющую подобных макросов, то пишите в комменты и я приступлю к написанию следующей статьи.

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

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

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

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

Актуально ли это? Да. В Европе Excel в связке с VBA используется повсеместно. Даже в очень крупных фирмах, от которых такого не ожидаешь. Есть у меня товарищ, работавший в фирме с примерно 200 тысячами работников по всему земному шару, который в свои студенческие годы за очень хорошие деньги занимался автоматизацией одного из отделов этой фирмы во Франкфурте. Как я уже говорил, автоматизации хотят все, а денежки есть не у всех, отсюда и возникает спрос.

Легко ли это освоить? Да. VBA, вероятно, самый топорный и неуютный язык программирования, который я использовал. Он неудобный, для него нет красивой IDE, в нем не хватает многих привычных компонентов, но он чертовски прост. Я пришел на работу абсолютно без опыта программирования на VBA и уже через 2 с половиной месяца закрыл свой первый проект. Общее время наработки в отделе составило не более полутора месяцев с учетом того, что я работал по 2 дня в неделю. Стоит правда уточнить, что я до этого обладал достаточно богатым опытом программирования на Java и Python, но все же.

Где можно заработать? Везде, где используется Excel. Даже если у вас не выйдет найти фирму, которая бы предложила вам стабильное место работы, то можно испытать себя на достаточно развитом рынке фриланса. Там можно найти самые разные заказы, начиная от написания какой-нибудь простенькой формулы за несколько долларов до создания комплексных макросов за более интересные деньги. С этого можно начать, получить необходимый опыт и подзаработать, а после использовать как весомое конкурентное преимущество при дальнейшем трудоустройстве. Специалисты, понимающие не только экономический, но и айтишный фон задачи, способные собственноручно автоматизировать тот или иной процесс, так называемые Power users, цениться выше специалистов, понимающих только одну сторону проблемы. Знание VBA является хорошим дополнением к вашему резюме и ни раз пригодиться вам в вашей карьере.

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

Новые возможности VBA в Office 2019

Редактировать

Твиттер

LinkedIn

Фейсбук

Электронное письмо

  • Статья
  • 3 минуты на чтение

В следующих таблицах представлены новые языковые обновления Visual Basic для приложений (VBA) для Office 2019.

Office

Теперь включены значения

Имя Описание
Перечисление MsoGraphicStyleIndex (Office) Представляет предустановленные графические стили.
Перечисление MsoShapeType (Офис) mso3DModel , msoGraphic , msoLinked3DModel и msoLinkedGraphic .

Доступ

Имя Описание
Объект диаграммы (Доступ) Настраиваемая визуализация данных, которую можно включить в отчет или форму.
Объект ChartAxis (Доступ) Представляет поле, значения которого будут включены в ось категорий диаграммы.
Объект ChartSeries (доступ) Представляет ряд значений в указанной диаграмме.
Объект ChartValues ​​(доступ) Представляет поле, значения которого будут отображаться на оси значений (Y) диаграммы.
перечисление acCommand (доступ) acCmdImportAttachdBase и acCmdExportdBase теперь включены.

Excel

Имя Описание
Объект Model3DFormat (Excel) Представляет свойства формы 3D-модели.
Свойство Series.GeoMappingLevel (Excel) Задает уровень отображения географии для указанной серии в группе диаграмм. Чтение/запись XlGeoMappingLevel .
Свойство Series.GeoProjectionType (Excel) Задает тип географической проекции для указанного ряда в группе диаграмм. Чтение/запись XlGeoProjectionType .
Свойство Series.RegionLabelOptions (Excel) Задает поведение маркировки областей для указанной серии в группе диаграммы. Чтение/запись XlRegionLabelOptions .
Свойство Shape.GraphicStyle (Excel) Возвращает или задает MsoGraphicStyleIndex , представляющий стиль графики SVG. Читай пиши.
Свойство Shape.Model3D (Excel) Возвращает объект Model3DFormat , представляющий 3D-свойства объекта 3D-модели. Только для чтения.
Свойство ShapeRange.GraphicStyle (Excel) Возвращает или задает MsoGraphicStyleIndex , представляющий стиль диапазона фигур, содержащего одну или несколько графических объектов SVG. Читай пиши.
Свойство ShapeRange.Model3D (Excel) Возвращает объект Model3DFormat , представляющий 3D-свойства объекта 3D-модели. Только для чтения.
Метод Shapes.Add3DModel (Excel) Создает 3D-модель из существующего файла. Возвращает объект Shape , представляющий новую 3D-модель.
Перечисление Excel.XlGeoMappingLevel (Excel) Константы, передаваемые и возвращаемые свойством Series.GeoMappingLevel .
Перечисление Excel.XlGeoProjectionType (Excel) Константы переданы и возвращены Свойство Series. GeoProjectionType .
Перечисление Excel.XlRegionLabelOptions (Excel) Константы, передаваемые и возвращаемые свойством Series.RegionLabelOptions .

PowerPoint

Имя Описание
Объект Model3DFormat (PowerPoint) Представляет свойства формы 3D-модели.
Свойство Presentation.AutoSaveOn (PowerPoint) True , если изменения в презентации сохраняются автоматически. Чтение/запись Логическое значение .
Shape.Decorative Property (PowerPoint) Устанавливает или возвращает декоративный флаг для указанного объекта. Читай пиши.
Свойство Shape.GraphicStyle (PowerPoint) Возвращает или задает MsoGraphicStyleIndex , представляющий стиль графики SVG. Читай пиши.
Свойство Shape.Model3D (PowerPoint) Возвращает объект Model3DFormat , представляющий 3D-свойства объекта 3D-модели. Только для чтения.
ShapeRange.Decorative property (PowerPoint) Устанавливает или возвращает декоративный флаг для указанного объекта. Читай пиши.
Свойство ShapeRange.GraphicStyle (PowerPoint) Возвращает или задает MsoGraphicStyleIndex , представляющий стиль диапазона фигур, содержащего одну или несколько графических объектов SVG. Читай пиши.
Свойство ShapeRange.Model3D (PowerPoint) Возвращает объект Model3DFormat , представляющий 3D-свойства объекта 3D-модели. Только для чтения.
Метод Shapes.Add3DModel (PowerPoint) Создает Model3DFormat объект из существующего файла. Возвращает объект Shape , представляющий новую 3D-модель.

Visio

Имя Описание
Свойство Shape.AlternativeText (Visio) Возвращает или задает альтернативное текстовое описание, связанное с объектом. Читай пиши.
Свойство Shape.Title (Visio) Возвращает или задает альтернативный текст, связанный с объектом. Читай пиши.

Слово

Имя Описание
Объект Model3DFormat (Word) Представляет свойства формы 3D-модели.
Свойство Shape.GraphicStyle (Word) Возвращает или задает MsoGraphicStyleIndex , представляющий стиль графики SVG. Читай пиши.
Свойство Shape. Model3D (Word) Возвращает объект Model3DFormat , представляющий 3D-свойства объекта 3D-модели. Только для чтения.
Свойство ShapeRange.GraphicStyle (Word) Возвращает или задает MsoGraphicStyleIndex , представляющий стиль диапазона фигур, содержащего одну или несколько графических объектов SVG. Читай пиши.
Свойство ShapeRange.Model3D (Word) Возвращает объект Model3DFormat , представляющий 3D-свойства объекта 3D-модели. Только для чтения.
Метод Shapes.Add3DModel (Word) Добавляет 3D-модель на холст для рисования. Возвращает объект Shape , представляющий трехмерную модель, и добавляет его в коллекцию CanvasShapes .
Перечисление WdInlineShapeType (Word) wdInlineShape3DModel и значения wdInlineShapeLinked3DModel теперь включены.

См. также

  • Ссылка на библиотеку VBA

Поддержка и отзывы

У вас есть вопросы или отзывы об Office VBA или этой документации? См. раздел Поддержка и отзывы Office VBA, чтобы узнать, как вы можете получить поддержку и оставить отзыв.

Excel VBA — информация, учебные пособия, примеры и ресурсы » Chandoo.org

Excel VBA позволяет автоматизировать различные действия, выполняемые в Excel . Мы используем Excel для анализа данных, создания отчетов, подготовки диаграмм и презентаций, выполнения расчетов и понимания информации. Когда мы делаем все это, мы тратим довольно много времени, повторяя одни и те же шаги.

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

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

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

Ресурсы для вас…

Что такое VBA?

VBA означает Visual Basic для приложений. Так же, как у нас с вами есть язык, у компьютерных программ тоже есть свой язык. VBA — это язык, на котором говорит Excel. В этом отношении VBA также является языком MS Word, PowerPoint, Access и других приложений MS Office.
Перспектива изучения новых языков нас очень пугает. Но не волнуйтесь, VBA гораздо легче выучить, чем французский, испанский, немецкий или китайский. Основная причина, по которой язык VBA прост в изучении, заключается в том, что он выглядит почти как простой английский язык.
Например, следующая строка говорит вам привет:

 MsgBox "привет" 

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

Что такое макрос?

В то время как VBA — это язык, на котором говорит (и понимает) Excel, макрос подобен абзацу. Другими словами, макрос — это набор инструкций, данных Excel для выполнения чего-либо.
Например, это макрос для формирования отчета (написан на простом английском языке, а не на VBA)

  1. Открытые данные.xlsx
  2. Взять данные за последние 30 дней
  3. Подготовить гистограмму
  4. Скопируйте диаграмму в новую книгу
  5. Сохранить книгу в формате PDF
  6. Отправить по электронной почте боссу

Когда мы выполняем или запускаем этот макрос, мы в конечном итоге генерируем отчет и отправляем его по почте .

Основы VBA и макросы. Написание нашего первого макроса

В этом разделе давайте создадим наш первый макрос. Мы напишем макрос FillYellowColor(), который закрашивает желтым цветом любые выделенные ячейки. Как это,

Включение ленты разработчика в Excel

Чтобы записывать и использовать макросы (и другие функции разработчика), первым шагом является активация ленты разработчика (или панели инструментов разработчика). Это делается,
Excel 365/2016 и т. д.:
1. Щелкните правой кнопкой мыши любую ленту.
3. Выберите «Настроить ленту».
4. Убедитесь, что в правой части отмечена вкладка «Разработчик».
5. Нажмите «ОК».

Использование встроенного средства записи макросов Excel

Чтобы написать свою первую программу VBA (или макрос), вам нужно сначала знать язык. В этом нам поможет магнитофон Excel.
Магнитофон?!?
Да. В Excel есть встроенный магнитофон, который прослушивает и записывает все, что вы делаете, на собственном языке Excel, , т.е. VBA.
Поскольку мы не знаем никакого VBA, мы будем использовать этот регистратор для записи наших действий, а затем мы увидим записанные инструкции (называемые кодом на компьютерном жаргоне), чтобы понять, как выглядит VBA.
Шаг 1: выберите любую ячейку и запустите запись макросов
Это самая легкая часть. Просто выберите любую ячейку и перейдите на ленту разработчика и нажмите кнопку «Запись макроса».
Шаг 2: Дайте имя вашему макросу
Укажите имя для вашего макроса. Я назвал свой FillYellowColor. Вы можете выбрать все, что хотите. Просто убедитесь, что в имени нет пробелов или специальных символов (кроме подчеркивания).
Нажмите OK, когда закончите.
Шаг 3. Залейте текущую ячейку желтым цветом
Это легко, как съесть пирог. Просто перейдите на ленту «Главная» и залейте цветом текущую ячейку.
Шаг 4. Остановите запись
Теперь, когда вы сделали единственный шаг в нашем макросе, пришло время остановить магнитофон Excel. Перейдите на ленту разработчика и нажмите кнопку «Остановить запись».
Шаг 5. Назначьте макрос кнопке
Теперь перейдите к ленте «Вставить» и нарисуйте красивый прямоугольник. Затем поместите в него какой-нибудь текст, например «цвет заливки».
Затем щелкните правой кнопкой мыши на прямоугольнике и выберите «Назначить макрос». И выберите макрос FillYellowColor из показанного списка. Нажмите «ОК».
Шаг 6. Поиграйте со своим первым макросом
Вот и все. Теперь мы связали фигуру прямоугольника с вашим макросом. Всякий раз, когда вы щелкаете по нему, Excel бросает ведро желтой краски в выбранные ячейки.
Давай, поиграй с этим нашим маленьким макросом.

Загрузить этот пример Excel VBA

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

Excel VBA — видео о начале работы

Посмотрите мое видео о  о том, как начать работу с VBA. В этом видео вы узнаете, как:

✅ Настроить макрос FillYellowColor с рекордером
✅ Как просматривать и редактировать записанные макросы
✅ Создайте простое приложение для списка дел в Excel
✅ Создайте средство извлечения данных с помощью VBA

Смотрите ниже или на моем канале Youtube.

Узнайте больше о Excel VBA

Посетите эти страницы, чтобы узнать больше о Excel VBA,

  1. Что такое VBA и создание первого макроса VBA в Excel
  2. Понимание переменных, условий и циклов в VBA
  3. Использование ячеек, диапазонов и других объектов в макросах
  4. Собираем все вместе — ваше первое приложение VBA с использованием Excel
  5. 10 моих лучших советов по освоению макросов VBA и Excel

Важные сочетания клавиш для Excel VBA

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

  • ALT+F11: для просмотра редактора VBA (или для переключения обратно в Excel)
  • ALT+F8: для отображения всех макросов

Эти сочетания клавиш будут работать только в редакторе VBA (также известном как VBE):

  • ALT+Q: чтобы закрыть редактор VBA и вернуться в Excel
  • F5: для запуска макроса
  • F2: Показать обозреватель объектов
  • F7: Редактор кода дисплея
  • CTRL+G: открыть непосредственное окно
  • F1: Показать справку

Подробнее о Excel VBA

Пожалуйста, перейдите на эти страницы для получения дополнительной информации о Excel VBA

  • Примеры Excel VBA
  • Видеоуроки по Excel VBA, Макросы
  • Советы по Excel VBA
  • Пользовательские формы и элементы управления в VBA
  • Книги по Excel VBA
  • Ссылки на Excel VBA
  • Обучение работе с Excel VBA
  • Подпишитесь на нашу новостную рассылку Excel

Ресурсы для вас.