VBA для начинающих — как написать первый макрос Excel

VBA позволяет автоматизировать рутину в Excel: объединить данные, удалить дубликаты, создать отчёт — одной кнопкой. Ниже — пошаговое руководство для тех, кто никогда не писал макросы.

Или пусть Формулка напишет макрос за вас — просто опишите задачу

Создать макрос бесплатно

5 запросов в день бесплатно • Без карты

Шаг 1: Как открыть редактор VBA

1

Откройте Excel и нажмите Alt+F11 — откроется редактор Visual Basic

2

В левой панели (Project Explorer) найдите вашу книгу

3

Правый клик на книгу → Insert → Module — создастся модуль для кода

4

В правой части появится белое окно — сюда вы будете писать код

Если Alt+F11 не работает: перейдите в Файл → Параметры → Настроить ленту → поставьте галочку «Разработчик». Теперь на ленте появится вкладка «Разработчик» с кнопкой «Visual Basic».

Шаг 2: Основы синтаксиса VBA

Структура макроса

Каждый макрос начинается с Sub ИмяМакроса() и заканчивается End Sub. Весь код — между этими строками.

Обращение к ячейкам

Range("A1").Value — значение ячейки A1. Cells(1, 1).Value — то же самое через номер строки и столбца.

Переменные

Dim x As Integer — объявление переменной. Dim name As String — текстовая переменная. Dim d As Date — дата.

Условия и циклы

If...Then...Else для условий. For...Next и For Each...Next для циклов по ячейкам и строкам.

Шаг 3: Готовые примеры макросов

Скопируйте код в редактор VBA (Alt+F11) и запустите клавишей F5

Приветствие — первый макрос

Самый простой макрос: выводит сообщение. Идеален для проверки что VBA работает.

Sub Приветствие()
    MsgBox "Привет! Мой первый макрос работает!"
End Sub

Заполнить ячейку значением

Макрос записывает текст и число в конкретные ячейки.

Sub ЗаполнитьЯчейки()
    Range("A1").Value = "Отчёт"
    Range("B1").Value = Date
    Range("A2").Value = "Итого:"
    Range("B2").Value = 42000
End Sub

Удалить пустые строки

Проходит по строкам и удаляет те, где ячейка в столбце A пуста.

Sub УдалитьПустые()
    Dim i As Long
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
        If Cells(i, 1).Value = "" Then
            Rows(i).Delete
        End If
    Next i
End Sub

Подсветить ячейки с определённым значением

Находит все ячейки со словом «Просрочено» и красит их красным.

Sub ПодсветитьПросрочку()
    Dim c As Range
    For Each c In Range("A1:A100")
        If c.Value = "Просрочено" Then
            c.Interior.Color = RGB(255, 200, 200)
        End If
    Next c
End Sub

Как запустить макрос

Из редактора

Поставьте курсор внутри макроса → нажмите F5 (или зелёную кнопку ▶)

Из Excel

Alt+F8 → выберите макрос из списка → нажмите «Выполнить»

По кнопке

Разработчик → Вставить → Кнопка → нарисуйте на листе → назначьте макрос

Запись макроса — без написания кода

Если не хотите писать код — запишите свои действия. Excel превратит их в VBA-код автоматически.

1

Вид → Макросы → Записать макрос (или вкладка «Разработчик» → «Запись макроса»)

2

Введите имя макроса и нажмите ОК

3

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

4

Нажмите «Остановить запись» (квадратная кнопка в строке состояния)

5

Теперь макрос можно запустить через Alt+F8

Безопасность при работе с макросами

  • !Всегда сохраняйте файл перед запуском нового макроса — на случай ошибки
  • !Сохраняйте файл в формате .xlsm (книга Excel с поддержкой макросов)
  • !Не запускайте макросы из неизвестных источников — они имеют полный доступ к файлу
  • !Используйте Debug.Print вместо MsgBox для отладки — результат выводится в окно Immediate (Ctrl+G)
  • !Начинайте с записи макроса (Вид → Макросы → Записать) чтобы понять синтаксис

Не хотите писать код? Формулка напишет за вас

Опишите задачу обычными словами — помощник создаст готовый VBA-код. Примеры запросов:

«Удалить все пустые строки на активном листе»

«Объединить данные со всех листов книги в один»

«Сохранить каждый лист как отдельный PDF-файл»

«Подсветить ячейки где значение больше 1000 красным»

Перейти к созданию макросов →

Полезные разделы

Часто задаваемые вопросы

Что такое VBA и зачем он нужен?

VBA (Visual Basic for Applications) — встроенный язык программирования в Excel. Он позволяет автоматизировать рутинные действия: форматирование, объединение данных, создание отчётов. Вместо того чтобы делать 100 кликов вручную, вы нажимаете одну кнопку.

Нужно ли знать программирование чтобы писать макросы?

Для простых макросов — нет. Можно использовать «Запись макроса» (Вид → Макросы → Записать): Excel запишет ваши действия как код. Для сложной автоматизации полезно знать основы VBA или попросить Формулку написать код за вас.

Как запустить написанный макрос?

Три способа: 1) Alt+F8 → выбрать макрос → «Выполнить». 2) Назначить макрос кнопке на листе. 3) Назначить горячую клавишу через Alt+F8 → «Параметры». Также можно запускать макрос из редактора VBA клавишей F5.

Можно ли автоматизировать Excel без VBA?

Да. Формулка создаёт макросы по описанию задачи на обычном русском языке. Опишите что нужно автоматизировать — помощник напишет готовый VBA-код, который нужно только вставить в редактор.

Автоматизируйте рутину в Excel

Опишите задачу — Формулка создаст макрос или формулу за секунды

Попробовать бесплатно

Смотреть тарифы →