Найти тему

📌 VBA Excel: Цикл For Each. Поиск символа и форматирование текста

Разделение текста по ячейкам и применение форматирования к каждой - удобное и простое решение.

Однако, как быть, если нужно обработать часть текста в одной ячейке!?

Пример решения рассмотрим сегодня в обзоре 😉

Для удобства поиска нужного материала у нас на канале есть удобный рубрикатор, а все видео предыдущих уроков также доступны на youtube (ссылка внизу поста и в описании канала)
Для удобства поиска нужного материала у нас на канале есть удобный рубрикатор, а все видео предыдущих уроков также доступны на youtube (ссылка внизу поста и в описании канала)
VBA Excel: Цикл For Each. Поиск символа и форматирование текста
VBA Excel: Цикл For Each. Поиск символа и форматирование текста

📢 Файл с примером размещен в конце статьи 🔽

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

▶️ Цикл For Each

Эффективный способ перебора элементов в коллекциях данных, таких как диапазоны ячеек или массивы.

На практике For Each используется для выполнения ряда действий для каждого объекта из указанной группы объектов.

▶️ Свойство Font

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

В ряде основных параметров шрифта отметим следующие :

  • Bold (Полужирный)
  • Italic (Курсив)
  • Underline (Подчеркивание)
  • Strikethrough (Перечеркивание)
  • FontStyle (Стиль шрифта)
  • Superscript (Надстрочный шрифт)
  • Subscript (Подстрочный шрифт)
  • Name (Имя шрифта)
  • Size (Размер шрифта)
  • Color (Цвет шрифта)

▶️ Поиск символов и форматирование

В качестве примера рассмотрим ряд данных в столбце А, содержащий часть текста заключенного в скобки:

Пример исходных данных
Пример исходных данных

🔘 Пример 1. Форматирование части текста в скобках

Для данного примера будем использовать свойство .Font.Bold = True, что позволит назначить полужирный шрифт:

Пример макроса: Для  ячеек в столбце A (от второй строки до последней) и выделяем текст между скобками полужирным шрифтом.
Пример макроса: Для ячеек в столбце A (от второй строки до последней) и выделяем текст между скобками полужирным шрифтом.

⚙️ Краткое описание:

  • объявляем переменные;
  • оцениваем последнюю заполненную ячейку в столбце A: lastRow = Cells(Rows.Count, "A").End(xlUp).Row. Это предотвращает сканирование кода через бесконечную последовательность пустых ячеек;
  • проходим по каждой ячейке от 2 (второй) строки до последней;
  • извлекаем значение в текущей ячейке и присваиваем его тексту переменной;
  • определяем позиции открывающей и закрывающей скобок в строке;
  • проверяем, есть ли круглые скобки, и выделяем содержимое
  • Next cell указывает, что сценарий должен перейти к следующей ячейке и начать заново, пока не пройдет циклически по всем ячейкам в диапазоне.

В результате, если есть круглые скобки применяется требуемое форматирование:

Пример решения: Форматирование текста в скобках
Пример решения: Форматирование текста в скобках

🔔 Чтобы определить не только начертание текста, но и его цвет дополнительно можно использовать оператор Like (который позволит сопоставить шаблон с текстом) и Color Index:

🔵 Например:

Пример макроса: выделяем текст в скобках полужирным  с указанными цветами
Пример макроса: выделяем текст в скобках полужирным с указанными цветами

Данный подход позволит установить указанные цвета шрифта для текста:

Пример решения: как применить указанные цвета к тексту в скобках
Пример решения: как применить указанные цвета к тексту в скобках

🔘 Пример 2. Форматирование части текста до скобок

Чтобы задать форматирование текста от начала строки до открывающей скобки изменим условие:

Макрос ищет текст от начала строки до открывающей скобки и делает его полужирным, если он был найден.
Макрос ищет текст от начала строки до открывающей скобки и делает его полужирным, если он был найден.

⚙️ В данном случае:

  • Начальная позиция устанавливается как первый символ в строке, а конечная позиция определяется нахождением открывающей скобки "(" в строке с помощью функции "InStr", а затем уменьшается на 1, чтобы она считалась до символа перед '('.
  • Условие "Если" проверяет, больше ли конечное положение начального положения. Если это условие истинно, это означает, что в строке существует пара круглых скобок.
  • Если условие истинно, текст в пределах этих границ начальной и конечной позиций (перед открывающей скобкой) выделяется полужирным шрифтом:
Пример решения: Форматирование части текста до скобок
Пример решения: Форматирование части текста до скобок

🔘 Пример 3. Форматирование части текста после скобок

Аналогичный подход можно использовать чтобы задать форматирование текста после закрывающей скобки:

-11

В данном случае находим позицию закрывающей скобки и применяем установленное начертание шрифта к тексту после этой скобки:

Пример решения: Форматирование части текста после скобок
Пример решения: Форматирование части текста после скобок

🔶 Подводя итог...

Рассмотренный пример представляет собой стандартное решение, которое может быть настроено и адаптировано в соответствии с требованиями задачи.

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

Подписывайтесь на канал, чтобы не пропустить новые уроки и полезные фишки Excel.
Подписывайтесь на канал, чтобы не пропустить новые уроки и полезные фишки Excel.

➡️ Дополнительные материалы и подборки:

🔔 Узнать больше о приемах и методах в Excel и быстро найти нужное решение поможет наш справочник 🔽

🙌 Оставайтесь с нами на связи 💖

Следите за новостями, чтобы узнать больше о VBA и Excel, в частности.
Следите за новостями, чтобы узнать больше о VBA и Excel, в частности.

СКАЧАТЬ ПРИМЕР 🔽

С подпиской рекламы не будет

Подключите Дзен Про за 159 ₽ в месяц