Форматирование текста в ячейке при помощи кода VBA Excel. Объект Font и его основные свойства. Примеры изменения начертания строк в заданном диапазоне.
В этой статье рассмотрены свойства шрифта (объекта Font), определяющие внешнее оформление (начертание) видимого значения ячейки. Это касается не только текста (строк), но и визуального начертания отображаемых дат и числовых значений.
Формат отображаемого значения
Когда мы из кода VBA Excel записываем в ячейку текстовое или другое значение, оно отображается в формате, присвоенном данной ячейке. Это может быть формат:
- рабочего листа по умолчанию;
- установленный для диапазона пользователем;
- примененный к диапазону из кода VBA Excel.
Если ячейка содержит текстовое значение, его начертание можно форматировать по отдельным частям (подстрокам). Такое форматирование доступно как в ручном режиме на рабочем листе, так и из кода VBA Excel.
У объекта Range есть свойство Font (шрифт), которое отвечает за форматирование (начертание) визуально отображаемого текста в ячейках рабочего листа. Его применение вызывает объект Font, который в свою очередь обладает собственным набором свойств, отвечающих за конкретный стиль начертания отображаемого значения.
Свойство | Описание | Значения |
---|---|---|
Name | наименование шрифта | «Arial», «Calibri», «Courier New», «Times New Roman» и т.д. |
Size | размер шрифта | от 1 до 409 пунктов |
Bold | полужирное начертание | True, False |
Italic | курсивное начертание | True, False |
FontStyle | заменяет Bold и Italic | «обычный», «полужирный», «курсив», «полужирный курсив» |
Superscript | надстрочный текст | True, False |
Subscript | подстрочный текст | True, False |
Underline | подчеркнутый текст | True, False |
Color* | цвет текста | от 0 до 16777215 |
*Color — это не единственное свойство, отвечающее за цвет отображаемого текста в ячейке. Оно также может принимать и другие значения, кроме указанных в таблице. Смотрите подробности в статьях Цвет текста (шрифта) в ячейке и Цвет ячейки (заливка, фон).
Примеры форматирования текста
Пример 1
В этом примере ячейкам диапазона «A1:A3» присвоим шрифты разных наименований:
Sub Primer1() Range(«A1»).Font.Name = «Courier» Range(«A1») = «Шрифт «Courier»» Range(«A2»).Font.Name = «Verdana» Range(«A2») = «Шрифт «Verdana»» Range(«A3»).Font.Name = «Times New Roman» Range(«A3») = «Шрифт «Times New Roman»» End Sub |
Пример 2
В этом примере рассмотрим применение одного свойства объекта Font к одной ячейке:
Sub Primer2() Range(«A5»).Font.Bold = True Range(«A5») = «Полужирное начертание» Range(«A6»).Font.FontStyle = «полужирный курсив» Range(«A6») = «Полужирный курсив» Range(«A7»).Font.Superscript = True Range(«A7») = «Надстрочное начертание» End Sub |
Пример 3
Форматирование диапазона из нескольких ячеек:
Sub Primer3() With Range(«A9:C11») .Value = «Форматируем диапазон» .Font.Underline = True .Font.Color = 75962 End With End Sub |
Пример 4
Пример форматирования шрифта в разных ячейках по одному свойству:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Sub Primer4() Cells(1, 1) = «Свойство шрифта Bold = True» Cells(1, 1).Font.Bold = True Cells(2, 1) = «Свойство шрифта Color = xlGreen» Cells(2, 1).Font.Color = xlGreen Cells(3, 1) = «Свойство шрифта ColorIndex = 32» Cells(3, 1).Font.ColorIndex = 32 Cells(4, 1) = «Свойство шрифта FontStyle = ««Bold Italic»«» Cells(4, 1).Font.FontStyle = «Bold Italic» Cells(5, 1) = «Свойство шрифта Italic = True» Cells(5, 1).Font.Italic = True Cells(6, 1) = «Свойство шрифта Name = ««Courier New»«» Cells(6, 1).Font.Name = «Courier New» Cells(7, 1) = «Свойство шрифта Size = 14» Cells(7, 1).Font.Size = 14 Cells(8, 1) = «Свойство шрифта Subscript = True» Cells(8, 1).Font.Subscript = True Cells(9, 1) = «Свойство шрифта Superscript = True» Cells(9, 1).Font.Superscript = True Cells(10, 1) = «Свойство шрифта Underline = True» Cells(10, 1).Font.Underline = True End Sub |
title | keywords | f1_keywords | ms.prod | api_name | ms.assetid | ms.date | ms.localizationpriority |
---|---|---|---|---|---|---|---|
Font.Underline property (Excel) |
vbaxl10.chm559086 |
vbaxl10.chm559086 |
excel |
Excel.Font.Underline |
81a2bdd2-bebd-b3ca-e0c3-6dd55280fcc0 |
04/26/2019 |
medium |
Font.Underline property (Excel)
Returns or sets the type of underline applied to the font. Read/write Variant.
Syntax
expression.Underline
expression A variable that represents a Font object.
Remarks
Can be one of the XlUnderlineStyle constants.
Example
This example sets the font in the active cell on Sheet1 to single underline.
Worksheets("Sheet1").Activate ActiveCell.Font.Underline = xlUnderlineStyleSingle
[!includeSupport and feedback]
0 / 0 / 0 Регистрация: 27.11.2021 Сообщений: 5 |
|
1 |
|
Excel Подчеркивание в ячейке до определенного символа27.11.2021, 12:45. Показов 2161. Ответов 8
Добрый день всем! Пример того что я получаю на листе во вложенном рисунке. Красным показано, что должно быть подчеркнуто. Спасибо большое всем кто откликнется Миниатюры
0 |
344 / 206 / 78 Регистрация: 16.07.2020 Сообщений: 589 |
|
27.11.2021, 13:08 |
2 |
Для начала почитайте правила форума и вместо картинки приложите эксель файл.
0 |
0 / 0 / 0 Регистрация: 27.11.2021 Сообщений: 5 |
|
27.11.2021, 13:17 [ТС] |
3 |
прикладываю excel. вкладка установочные
0 |
0 / 0 / 0 Регистрация: 27.11.2021 Сообщений: 5 |
|
27.11.2021, 13:23 [ТС] |
4 |
прикладываю excel. вкладка установочные
0 |
Narimanych 2630 / 1636 / 744 Регистрация: 23.03.2015 Сообщений: 5,141 |
||||
27.11.2021, 16:32 |
5 |
|||
mswan,
1 |
0 / 0 / 0 Регистрация: 27.11.2021 Сообщений: 5 |
|
27.11.2021, 17:31 [ТС] |
6 |
Narimanych, спасибо. Можно сделать, чтобы подчеркивалась только верхняя строчка в ячейке? Это типа как дробь, требование по оформлению таблиц. т.е. например для ячейки I4: Ф6-Ам Ф5-Ам и в примере я сделал 5 строк, на самом деле их может быть и 1000.
0 |
2630 / 1636 / 744 Регистрация: 23.03.2015 Сообщений: 5,141 |
|
27.11.2021, 17:52 |
7 |
mswan,
1 |
0 / 0 / 0 Регистрация: 27.11.2021 Сообщений: 5 |
|
27.11.2021, 17:57 [ТС] |
8 |
Narimanych, да Миниатюры
0 |
АЕ ᴁ® 3069 / 1735 / 361 Регистрация: 13.12.2016 Сообщений: 5,937 Записей в блоге: 4 |
||||
27.11.2021, 18:43 |
9 |
|||
Сообщение было отмечено mswan как решение РешениеNarimanych, да действительно и у меня тоже подчеркивает решительно все, хотя код говорит об обратном.
1 |
Содержание
- Формат отображаемого значения
- Применение стилей к ячейкам листа
- VBA-макрос: заливка, шрифт, линии границ, ширина столбцов и высота строк
- Вывод сообщений о числовых значениях цветов
- Выравнивание по горизонтали
- Основные свойства объекта Font
- Синтаксис и параметры
- Именные форматы даты и времени
- Именованные форматы чисел
- Символы для форматов даты и времени
- Заливка ячейки цветом в VBA Excel
- Создание новых стилей
- Выравнивание по вертикали
- Зачем нужны именованные стили
- Описание VBA-макроса для формата ячеек таблицы Excel
- Использование предопределенных констант
- Изменение существующих стилей
Формат отображаемого значения
Когда мы из кода VBA Excel записываем в ячейку текстовое или другое значение, оно отображается в формате, присвоенном данной ячейке. Это может быть формат:
- рабочего листа по умолчанию;
- установленный для диапазона пользователем;
- примененный к диапазону из кода VBA Excel.
Если ячейка содержит текстовое значение, его начертание можно форматировать по отдельным частям (подстрокам). Такое форматирование доступно как в ручном режиме на рабочем листе, так и из кода VBA Excel.
У объекта Range есть свойство Font (шрифт), которое отвечает за форматирование (начертание) визуально отображаемого текста в ячейках рабочего листа. Его применение вызывает объект Font, который в свою очередь обладает собственным набором свойств, отвечающих за конкретный стиль начертания отображаемого значения.
Применение стилей к ячейкам листа
В Excel изначально установлено множество встроенных стилей. Найти их можно в меню Стили ячеек, которая расположена на вкладке Главная -> Стили.
Откроется галерея стилей (рисунок справа).
Чтобы применить стиль к выделенной ячейке или диапазону, необходимо щелкнуть левой кнопкой мыши по нужному стилю. Имеется также очень удобная возможность предварительного просмотра: при наведении курсора на стиль, Вы будете видеть как меняется стиль ячейки.
После применения стиля из галереи можно будет накладывать дополнительное форматирование на ячейки.
В процессе запыления данных сотрудниками отдела на некоторых листах были изменены форматы ячеек:
Необходимо сбросить форматирование ячеек и сделать так чтобы на всех таблицах планов выполнения работ были одинаковые форматы отображения данных. Формат ячеек для исходной таблицы должен быть закреплен за шаблоном, чтобы можно было сделать сброс и применять заданный стиль оформления в дальнейшем.
Чтобы выполнять такие задачи вручную можно попытаться облегчить процесс настройки множества опций форматирования для многих диапазонов ячеек на разных листах и рабочих книгах. Плюс к о всему можно ошибиться и применить несколько другие настройки форматирования.
Макросы Excel прекрасно справляются с форматированием ячеек на рабочих листах. Кроме того, делают это быстро и в полностью автоматическом режиме. Воспользуемся этими преимуществами и для решения данной задачи напишем свой код VBA-макроса. Он поможет нам быстро и безопасно сбрасывать форматы на исходный предварительно заданный в шаблоне главной таблицы.
Чтобы написать свой код макроса откройте специальный VBA-редактор в Excel: «РАЗРАБОТЧИК»-«Код»-«Visual Basic» или нажмите комбинацию клавиш ALT+F11:
В редакторе создайте новый модуль выбрав инструмент «Insert»-«Module» и введите в него такой VBA-код макроса:
SubSbrosFormat()
IfTypeName(Selection) <>"Range"Then Exit Sub
WithSelection
.HorizontalAlignment = xlVAlignCenter
.VerticalAlignment = xlVAlignCenter
.WrapText =True
.Borders.LineStyle = xlContinuous
.Borders.Weight = xlThin
.Font.ColorIndex = xlColorIndexAutomatic
.Interior.ColorIndex = xlColorIndexAutomatic
.Columns.AutoFit
.Rows.AutoFit
End With
End Sub
Теперь если нам нужно сбросить форматирование таблицы на исходный формат отображения ее данных, выделите диапазон ячеек A1:E20 и запустите макрос: «РАЗРАБОЧТИК»-«Код»-«Макросы»-«SbrosFormat»-«Выполнить». Результат работы макроса изображен ниже на рисунке:
Таблица приобрела формат, который определен макросом. Таким образом код VBA нам позволяет сбросить любые изменения формата ячеек на предустановленный автором отчета.
Вывод сообщений о числовых значениях цветов
Числовые значения цветов запомнить невозможно, поэтому часто возникает вопрос о том, как узнать числовое значение фона ячейки. Следующий код VBA Excel выводит сообщения о числовых значениях присвоенных ранее цветов.
Пример кода 2:
Sub ColorTest2() MsgBox Range(“A1”).Interior.Color MsgBox Range(“A4:D8”).Interior.Color MsgBox Range(“C12:D17”).Cells(4).Interior.Color MsgBox Cells(3, 6).Interior.Color End Sub |
Вместо вывода сообщений можно присвоить числовые значения цветов переменным, объявив их как Long.
Выравнивание по горизонтали
Для выравнивания текста в ячейках рабочего листа по горизонтали в VBA Excel используется свойство HorizontalAlignment объекта Range. Оно может принимать следующие значения:
Выравнивание | Константа | Значение |
По левому краю | xlLeft | -4131 |
По центру | xlCenter | -4108 |
По правому краю | xlRight | -4152 |
Константу использовать удобнее, так как ее можно выбрать из подсказок и легче запомнить. Но и присвоение свойству HorizontalAlignment непосредственно числового значения константы будет работать точно так же.
Пример 1
Заполним три первые ячейки листа Excel текстом, соответствующим предполагаемому выравниванию. Затем применим к ним выравнивание по горизонтали, а в ячейках ниже выведем соответствующие значения констант.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Sub Primer1() ‘Заполняем ячейки текстом Range(“A1”) = “Левая сторона” Range(“B1”) = “Центр ячейки” Range(“C1”) = “Правая сторона” ‘Применяем горизонтальное выравнивание Range(“A1”).HorizontalAlignment = xlLeft Range(“B1”).HorizontalAlignment = xlCenter Range(“C1”).HorizontalAlignment = xlRight ‘Выводим значения констант Range(“A2”) = “xlLeft = “ & xlLeft Range(“B2”) = “xlCenter = “ & xlCenter Range(“C2”) = “xlRight = “ & xlRight End Sub |
Основные свойства объекта Font
Свойство | Описание | Значения |
Name | наименование шрифта | “Arial”, “Calibri”, “Courier New”, “Times New Roman” и т.д. |
Size | размер шрифта | от 1 до 409 пунктов |
Bold | полужирное начертание | True, False |
Italic | курсивное начертание | True, False |
FontStyle | заменяет Bold и Italic | “обычный”, “полужирный”, “курсив”, “полужирный курсив” |
Superscript | надстрочный текст | True, False |
Subscript | подстрочный текст | True, False |
Underline | подчеркнутый текст | True, False |
Color* | цвет текста | от 0 до 16777215 |
*Color – это не единственное свойство, отвечающее за цвет отображаемого текста в ячейке. Оно также может принимать и другие значения, кроме указанных в таблице. Смотрите подробности в статье Цвет текста (шрифта) в ячейке.
Синтаксис и параметры
Format(Expression, [FormatExpression], [FirstDayOfWeek], [FirstWeekOfYear])
- Expression – любое допустимое выражение (переменная), возвращающее числовое значение или строку (обязательный параметр).
- FormatExpression – выражение формата, именованное или содержащее инструкции из специальных символов (необязательный параметр).
- FirstDayOfWeek – константа, задающая первый день недели (необязательный параметр).
- FirstWeekOfYear – константа, задающая первую неделю года (необязательный параметр).
Именные форматы даты и времени
Имя формата | Описание |
---|---|
General Date | Стандартное отображение даты и времени в соответствии с параметрами системы. |
Long Date | Длинный формат даты. |
Medium Date | Средний формат даты. |
Short Date | Краткий формат даты. |
Long Time | Длинный формат времени. |
Medium Time | Средний формат времени. |
Short Time | Краткий формат времени. |
Проверьте отображение даты и времени с использованием именованных форматов на вашем компьютере при помощи следующего кода VBA Excel:
Sub FormatDateTime() MsgBox “General Date: “ & Format(Now, “General Date”) & vbNewLine _ & vbNewLine & “Long Date: “ & Format(Now, “Long Date”) & vbNewLine _ & vbNewLine & “Medium Date: “ & Format(Now, “Medium Date”) & vbNewLine _ & vbNewLine & “Short Date: “ & Format(Now, “Short Date”) & vbNewLine _ & vbNewLine & “Long Time: “ & Format(Now, “Long Time”) & vbNewLine _ & vbNewLine & “Medium Time: “ & Format(Now, “Medium Time”) & vbNewLine _ & vbNewLine & “Short Time: “ & Format(Now, “Short Time”) End Sub |
Скорее всего, результат будет таким:
Именованные форматы чисел
Имя формата | Описание |
---|---|
General Number | Стандартное отображение числа без знака разделителя групп разрядов. |
Currency | Денежный формат. |
Fixed | Отображение числа без знака разделителя групп разрядов с двумя цифрами после разделителя целой и дробной части. |
Standard | Отображение числа со знаком разделителя групп разрядов и с двумя цифрами после разделителя целой и дробной части. |
Percent | Процентный формат: отображение числа, умноженного на 100, со знаком процента (%), добавленного справа. |
Scientific | Отображение числа в экспоненциальном виде. |
Yes/No | Возвращается «Нет», если число равно 0, иначе отображается «Да». |
True/False | Возвращается «Ложь», если число равно 0, иначе отображается «Истина». |
On/Off | Возвращается «Выкл», если число равно 0, иначе отображается «Вкл». |
Проверяем работу именованных форматов на числах 2641387.7381962 и 0 с помощью кода VBA Excel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Sub FormatNumber() Dim n As Double n = 2641387.7381962 ‘n = 0 MsgBox “Форматируемое число = “ & n & vbNewLine _ & vbNewLine & “General Number: “ & Format(n, “General Number”) & vbNewLine _ & vbNewLine & “Currency: “ & Format(n, “Currency”) & vbNewLine _ & vbNewLine & “Fixed: “ & Format(n, “Fixed”) & vbNewLine _ & vbNewLine & “Standard: “ & Format(n, “Standard”) & vbNewLine _ & vbNewLine & “Percent: “ & Format(n, “Percent”) & vbNewLine _ & vbNewLine & “Scientific: “ & Format(n, “Scientific”) & vbNewLine _ & vbNewLine & “Yes/No: “ & Format(n, “Yes/No”) & vbNewLine _ & vbNewLine & “True/False: “ & Format(n, “True/False”) & vbNewLine _ & vbNewLine & “On/Off: “ & Format(n, “On/Off”) End Sub |
Получаем следующий результат:
Вместо вопросительного знака в отображении числа в формате Currency, по идее, должен быть знак валюты (₽ или руб.).
Символы для форматов даты и времени
Символ | Описание |
---|---|
Точка (.) | Разделитель компонентов даты (день, месяц, год). Используется при отображении месяца в виде числа. |
Пробел | Разделитель компонентов даты (день, месяц, год). Используется при отображении месяца прописью. |
Двоеточие (:) | Разделитель компонентов времени (часы, минуты, секунды). |
d | День в виде числа без нуля в начале (1–31). |
dd | День в виде числа с нулем в начале (01–31). |
m | Месяц в виде числа без нуля в начале (1–31). Если (m) следует после (h) или (hh), отображаются минуты. |
mm | Месяц в виде числа с нулем в начале (01–31). Если (mm) следует после (h) или (hh), отображаются минуты. |
mmm | Месяц прописью в сокращенном виде (янв–дек). |
mmmm | Полное название месяца (январь–декабрь). |
y | День года в виде числа (1–366). |
yy | Год в виде 2-значного числа (00–99). |
yyyy | Год в виде 4-значного числа (1900–9999). |
h | Часы в виде числа без нуля в начале (0–23). |
hh | Часы в виде числа с нулем в начале (00–23). |
n (m) | Минуты в виде числа без нуля в начале (0–59). |
nn (mm) | Минуты в виде числа с нулем в начале (00–59). |
s | Секунды в виде числа без нуля в начале (0–59). |
ss | Секунды в виде числа с нулем в начале (00–59). |
Примеры отображения даты с помощью разных по количеству наборов символа d:
Sub DataIsD() MsgBox “d: “ & Format(Now, “d”) & vbNewLine _ & vbNewLine & “dd: “ & Format(Now, “dd”) & vbNewLine _ & vbNewLine & “ddd: “ & Format(Now, “ddd”) & vbNewLine _ & vbNewLine & “dddd: “ & Format(Now, “dddd”) & vbNewLine _ & vbNewLine & “ddddd: “ & Format(Now, “ddddd”) & vbNewLine _ & vbNewLine & “dddddd: “ & Format(Now, “dddddd”) End Sub |
Заливка ячейки цветом в VBA Excel
Пример кода 1:
Sub ColorTest1() Range(“A1”).Interior.Color = 31569 Range(“A4:D8”).Interior.Color = 4569325 Range(“C12:D17”).Cells(4).Interior.Color = 568569 Cells(3, 6).Interior.Color = 12659 End Sub |
Поместите пример кода в свой программный модуль и нажмите кнопку на панели инструментов «Run Sub» или на клавиатуре «F5», курсор должен быть внутри выполняемой программы. На активном листе Excel ячейки и диапазон, выбранные в коде, окрасятся в соответствующие цвета.
Есть один интересный нюанс: если присвоить свойству .Interior.Color отрицательное значение от -16777215 до -1, то цвет будет соответствовать значению, равному сумме максимального значения палитры (16777215) и присвоенного отрицательного значения. Например, заливка всех трех ячеек после выполнения следующего кода будет одинакова:
Sub ColorTest11() Cells(1, 1).Interior.Color = –12207890 Cells(2, 1).Interior.Color = 16777215 + (–12207890) Cells(3, 1).Interior.Color = 4569325 End Sub |
Проверено в Excel 2016.
Создание новых стилей
Если встроенных стилей Excel не достаточно, то можно создать собственные стили. Это достаточно просто сделать:
- Выберите любую ячейку и отформатируйте ее обычным способом так как вам нравится. Форматирование этой ячейки в дальнейшим мы сохраним как именованный стиль. Вы можете использовать любое доступное форматирование из диалогового окна Форматирование ячеек.
- Перейдите на вкладку Главная -> Стили ячеек и выберите команду Создать стиль ячейки. Откроется диалоговое окно Стиль.
- Выберите Имя стиля, которое будет в дальнейшем будете использовать.
- Выберите опции, которые будут применяться к выбранному стилю (по умолчанию отмечены все опции). Если нет необходимости в какой то опции, например вы не хотите изменять шрифт ячейки – то снимите выбор.
- Нажмите кнопку OK.
В результате в активную книгу будет добавлен новый пользовательский стиль, который будет доступен в меню Стили ячеек.
Выравнивание по вертикали
Для выравнивания текста в ячейках рабочего листа по вертикали в VBA Excel используется свойство VerticalAlignment объекта Range. Оно может принимать следующие значения:
Выравнивание | Константа | Значение |
По верхнему краю | xlTop | -4160 |
По центру | xlCenter | -4108 |
По нижнему краю | xlBottom | -4107 |
Точно так же, как и по горизонтали, при выравнивании по вертикали свойству VerticalAlignment можно присваивать как значение из константы, так и непосредственно ее числовое значение.
Пример 2
Заполним три первые ячейки третьей строки листа Excel текстом, соответствующим предполагаемому выравниванию. Затем применим к ним выравнивание по вертикали, а в ячейках ниже выведем соответствующие значения констант.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Sub Primer2() ‘Заполняем ячейки текстом Range(“A3”) = “Верх” Range(“B3”) = “Центр” Range(“C3”) = “Низ” ‘Применяем вертикальное выравнивание Range(“A3”).VerticalAlignment = xlTop Range(“B3”).VerticalAlignment = xlCenter Range(“C3”).VerticalAlignment = xlBottom ‘Выводим значения констант Range(“A4”) = “xlTop = “ & xlTop Range(“B4”) = “xlCenter = “ & xlCenter Range(“C4”) = “xlBottom = “ & xlBottom End Sub |
Зачем нужны именованные стили
Идея именованных стилей заключается в следующем:
- Можно создать собственный набор стилей для форматирования, например, заголовков, итогов, обычного текста. А после применять готовые стили на другие ячейки не тратя время на воспроизведение точно такого же формата.
- Если изменить формат стиля, то все ячейки, к котором применен данный стиль будут автоматически отформатированы. Таким образом, можно быстро пересматривать любой формат и не тратить время на форматирование ячеек по отдельности.
Стили Excel позволяют отформатировать следующие атрибуты:
- числовой формат (например, число, короткий формат даты, формат телефонного номера и т.п.);
- выравнивание (по вертикали и горизонтали);
- шрифт (название, размер, цвет и пр.);
- граница (тип линии, цвет границы);
- заливка (цвет фона, узор);
- защита (защищаемая ячейка, скрытие формул).
Описание VBA-макроса для формата ячеек таблицы Excel
Первая инструкция в коде, проверяет выделены ли ячейки диапазоном. Если перед выполнением макроса выделил другой элемент листа, например, график, тогда макрос закрывается и дальнейшие инструкции выполняться не будут. В противные случаи будут форматироваться все выделенные ячейки по очереди в соответствии с определенными настройками форматирования:
- Текст в значениях ячеек выравнивается по центру горизонтально и вертикально.
- Включен построчный перенос текста.
- Все границы ячеек получают черную обычной толщины непрерывную линию с черным цветом.
- Сброс цвета шрифта на авто.
- Удаляется любая заливка ячеек.
- Ширина столбцов автоматически настраивается под текст в ячейках.
- Автоматически настроить высоту строк по содержимому ячеек.
Использование предопределенных констант
В VBA Excel есть предопределенные константы часто используемых цветов для заливки ячеек:
Предопределенная константа | Наименование цвета |
vbBlack | Черный |
vbBlue | Голубой |
vbCyan | Бирюзовый |
vbGreen | Зеленый |
vbMagenta | Пурпурный |
vbRed | Красный |
vbWhite | Белый |
vbYellow | Желтый |
xlNone | Нет заливки |
Присваивается цвет ячейке предопределенной константой в VBA Excel точно так же, как и числовым значением:
Пример кода 3:
Range(“A1”).Interior.Color = vbGreen |
Изменение существующих стилей
Вы можете изменить форматирование существующего стиля. При этом все ячейки, к которым применен данный стиль также изменят форматирование. Чтобы изменить стиль необходимо:
- Перейти на вкладку Главная -> Стили ячеек.
- Щелкнуть правой кнопкой мыши по стилю, который хотите изменить и выбрать команду Изменить.
- Откроется диалоговое окно Стиль, в котором указано применяемое к ячейке форматирование.
- Нажмите на кнопку Формат, и в появившемся диалоговом окне Формат ячеек задайте необходимое форматирование. Например, чтобы изменить размер шрифта перейдите на вкладку Шрифт, задайте нужный размер и нажмите кнопку ОК.
- Нажмите еще раз кнопку ОК, чтобы закрыть окно Стиль и применить форматирование к изменяемому стилю.
Источники
- https://vremya-ne-zhdet.ru/vba-excel/formatirovaniye-teksta-v-yacheyke/
- https://micro-solution.ru/excel/formatting/formatting-styles
- https://exceltable.com/vba-macros/makrosy-dlya-formatirovaniya-yacheek
- https://vremya-ne-zhdet.ru/vba-excel/tsvet-yacheyki-zalivka-fon/
- https://vremya-ne-zhdet.ru/vba-excel/vyravnivaniye-teksta-v-yacheyke/
- https://vremya-ne-zhdet.ru/vba-excel/funktsiya-format/
Предположим, у вас есть диапазон данных на листе, и некоторые из них выделены подчеркиванием, и теперь вы хотите узнать эти данные с подчеркиванием, как вы можете быстро их найти? Здесь я познакомлю вас с некоторыми приемами, которые помогут вам быстро найти подчеркнутый текст в диапазоне или на всем листе в Excel.
Найдите все подчеркнутые тексты на листе с VBA
Найти все подчеркнутые тексты в диапазоне или на листе с помощью Kutools for Excel
Найдите все подчеркнутые тексты на листе с VBA
В Excel вы не можете использовать функцию «Перейти к специальной» для поиска подчеркнутых текстов, поэтому я представляю код VBA, который поможет вам найти все подчеркнутые тексты на листе.
1. Нажмите Alt + F11 ключи для открытия Microsoft Visual Basic для приложений окно и щелкните Вставить > Модули.
2. Во всплывающем Модули окно, вставьте ниже кода VBA.
VBA: найдите весь подчеркнутый текст на листе.
Sub SearchForUnderline()
'Updateby20150910
Dim Rg As Range, Rg1 As Range
Dim I As Long
Dim xAddress As String, xAddress1 As String, xAddress2 As String
Dim Result As String
On Error Resume Next
xAddress = Application.ActiveWindow.RangeSelection.Address
Set Rg = Application.InputBox("Please select a range:", "Kutools for Excel", xAddress, , , , , 8)
If Rg Is Nothing Then Exit Sub
Set Rg = Application.Intersect(Rg, Application.ActiveSheet.UsedRange)
If Rg Is Nothing Then Exit Sub
Set Rg = Rg.SpecialCells(xlCellTypeConstants)
If Rg Is Nothing Then Exit Sub
For Each Rg1 In Rg
For I = 1 To Len(Rg1)
If Rg1.Characters(I, 1).Font.Underline = xlUnderlineStyleSingle Then
If xAddress1 = "" Then
xAddress1 = Rg1.Address
Else
xAddress1 = xAddress1 & ", " & Rg1.Address
End If
Exit For
End If
Next
For I = 1 To Len(Rg1)
If Rg1.Characters(I, 1).Font.Underline = xlUnderlineStyleDouble Then
If xAddress2 = "" Then
xAddress2 = Rg1.Address
Else
xAddress2 = xAddress2 & ", " & Rg1.Address
End If
Exit For
End If
Next
Next
If xAddress1 <> "" Then Result = "Single underline address:" & vbCr & xAddress1 & vbCr & vbCr
If xAddress2 <> "" Then Result = Result & "Double underline address:" & vbCr & xAddress2
If Result <> "" Then MsgBox Result
End Sub
3. Нажмите Run или нажмите F5 ключ. Появится диалоговое окно для выбора диапазона для поиска подчеркнутых текстов.
4. Нажмите OK, то появится диалоговое окно, в котором будет указано, какие ячейки представляют собой текст с одним подчеркиванием, а какие — с двойным подчеркиванием.
Если вы просто хотите найти один тип подчеркнутого текста в определенном диапазоне, этот код VBA не может вам помочь, но вы можете использовать приведенный ниже удобный инструмент для решения этой задачи в этом случае.
Найти все подчеркнутые тексты в диапазоне или на листе с помощью Kutools for Excel
Если у вас есть Kutools for Excel установлен, вы можете применить Выбрать ячейки с форматом утилита для быстрого поиска подчеркнутых текстов на всем листе.
После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:
1. Выберите пустую ячейку, а затем введите в нее данные, например, A1, и щелкните Главная > подчеркиваниеи выберите нужный тип подчеркивания. Смотрите скриншот:
2. Затем выберите диапазон, в котором вы хотите найти определенные подчеркнутые тексты, и нажмите Кутулс > Выберите > Выбрать ячейки с форматом. Смотрите скриншот:
3. А в Выбрать ячейки с форматом диалоговое окно, нажмите Выбрать формат из ячейки , чтобы выбрать ячейку, которую вы форматируете с подчеркиванием на шаге 1. Смотрите скриншот:
4. Нажмите OKИ в Выбрать ячейки с форматом диалог, проверьте подчеркивание только. Смотрите скриншот:
5. Нажмите Ok, затем появится диалоговое окно, напоминающее, сколько выделено подчеркнутых текстов, щелкните Да закрыть его.
Теперь выделены все подчеркнутые тексты.
Советы:
1. Если вы хотите найти все подчеркнутые тексты на всем листе, щелкните левый угол листа, чтобы выбрать весь лист, а затем примените Выбрать ячейки с форматом утилита.
2. Проверьте Игнорировать пустые ячейки in Выбрать ячейки с форматом в диалоговом окне пустые ячейки будут игнорироваться, даже если пустые ячейки отформатированы с подчеркиванием.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!