VBA для начинающих — как написать первый макрос Excel
VBA позволяет автоматизировать рутину в Excel: объединить данные, удалить дубликаты, создать отчёт — одной кнопкой. Ниже — пошаговое руководство для тех, кто никогда не писал макросы.
Или пусть Формулка напишет макрос за вас — просто опишите задачу
Создать макрос бесплатно5 запросов в день бесплатно • Без карты
Шаг 1: Как открыть редактор VBA
Откройте Excel и нажмите Alt+F11 — откроется редактор Visual Basic
В левой панели (Project Explorer) найдите вашу книгу
Правый клик на книгу → Insert → Module — создастся модуль для кода
В правой части появится белое окно — сюда вы будете писать код
Если 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-код автоматически.
Вид → Макросы → Записать макрос (или вкладка «Разработчик» → «Запись макроса»)
Введите имя макроса и нажмите ОК
Выполните действия, которые хотите автоматизировать
Нажмите «Остановить запись» (квадратная кнопка в строке состояния)
Теперь макрос можно запустить через 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
Опишите задачу — Формулка создаст макрос или формулу за секунды
Попробовать бесплатно