💡 Для кого эта статья: новичкам в VBA, аналитикам, бухгалтерам, преподавателям Excel и всем, кто хочет сократить время на ручное оформление таблиц.
📌 Почему важно знать про NumberFormat и Font в VBA?
Если вы регулярно работаете с Excel — вы точно сталкивались с рутиной: нужно изменить формат чисел, сделать текст жирным, выделить курсивом или подчёркиванием. Вручную — это десятки кликов. А теперь представьте, что всё это можно автоматизировать одним макросом.
Добро пожаловать в мир VBA!
Сегодня мы разберёмся:
- Как задать числовой формат ячеек (например, два знака после запятой).
- Как задать стили шрифта: жирный, курсив, подчёркивание.
- Как быстро отменить любые изменения формата.
- Как сделать это всё наглядно, чётко и просто.
1. 📐 Работа с NumberFormat: числовой формат через VBA
🔍 Что такое NumberFormat?
Range(...).NumberFormat — это свойство объекта Excel, которое определяет, как будет отображаться число в ячейке. Вы можете задать:
- число с фиксированным количеством знаков после запятой;
- отображение в процентах;
- денежный формат и многое другое.
▶ Пример №1: Два знака после запятой
Sub FormatToTwoDecimals()
Range("A1:C6").NumberFormat = "0.00"
End Sub
📌 Что делает код: задаёт числовой формат с двумя знаками после запятой для диапазона A1:C6.
🔧 Если вы хотите три знака, используйте "0.000", а если проценты, добавьте %: "0.00%".
▶ Пример №2: Формат процентов + десятичные
Sub FormatAsPercentage()
Range("A1:C6").NumberFormat = "0.00%"
End Sub
📎 Это полезно, когда вы работаете с коэффициентами и хотите видеть их как проценты (например, 0.25 → 25.00%).
2. 🎨 Работа со шрифтами: жирный, курсив, подчёркивание
🔍 Свойство Font — ваш друг в стилизации
В VBA объект Range(...).Font даёт доступ к целому набору параметров: Bold, Italic, Underline, Color, Size и др.
▶ Пример №3: Сделать текст жирным
Sub MakeBold()
Range("A1:C6").Font.Bold = True
End Sub
💬 Логика простая: мы обращаемся к объекту .Font, затем к его свойству .Bold и приравниваем к True.
▶ Пример №4: Курсив + жирный
Sub BoldAndItalic()
With Range("A1:C6").Font
.Bold = True
.Italic = True
End With
End Sub
✅ Используем конструкцию With ... End With для компактности кода.
▶ Пример №5: Нижнее подчёркивание отдельных ячеек
Sub UnderlineCells()
Range("C1:C3").Font.Underline = True
End Sub
📍 Если хотите подчеркнуть только заголовки или результаты, используйте выборочный диапазон.
3. 🔄 Как отменить все форматирования шрифта?
Работа с Excel требует не только добавлять, но и отменять форматирование. Это удобно, когда вы пишете макрос "с нуля" и хотите быть уверены, что формат будет единообразным.
▶ Пример №6: Сброс форматирования
Sub ResetFormatting()
With Range("A1:C6").Font
.Bold = False
.Italic = False
.Underline = False
End With
End Sub
📎 Такой подход особенно полезен, если вы работаете с шаблонами, которые могут "наследовать" лишнее форматирование.
📂 Бонус: объединённый макрос с полной стилизацией
Представим, вы хотите оформить таблицу красиво и чётко:
- числовой формат: два знака;
- выделить жирным;
- подчеркнуть заголовки;
- сбросить лишнее перед применением стиля.
▶ Финальный макрос:
Sub FormatTableBeautifully()
' Сначала сбрасываем стили
With Range("A1:C6").Font
.Bold = False
.Italic = False
.Underline = False
End With
' Применяем числовой формат
Range("A2:C6").NumberFormat = "0.00"
' Жирный заголовок
Range("A1:C1").Font.Bold = True
' Подчёркиваем заголовок
Range("A1:C1").Font.Underline = True
End Sub
📌 Этот макрос — прекрасный старт для создания оформленных таблиц. Настройте его под себя: меняйте диапазон, добавляйте цвета и размеры шрифта.
🧠 Важные замечания
- NumberFormat не меняет значение ячейки — только его отображение.
- Стили шрифта (Bold, Italic, Underline) можно комбинировать, не боясь конфликтов.
- Макросы можно запускать вручную, либо привязывать к кнопке на листе.
✅ Что вы теперь умеете
- Менять числовой формат ячеек с помощью VBA.
- Применять стили шрифта: жирный, курсив, подчёркнутый.
- Сбрасывать лишнее форматирование перед новой стилизацией.
- Автоматизировать работу с таблицами на практике.
🧩 Следующий шаг: попробуйте добавить кода цвета, размера шрифта и условного форматирования — и ваша таблица станет ещё мощнее.
Хочешь пример таких макросов? Напиши в комментариях — и я подготовлю продолжение!