Перейти к содержимому

VBA Excel. Свойство Range.Characters

Форматирование текста в ячейке по частям и даже по отдельным символам из кода VBA Excel. Свойство Range.Characters - синтаксис, параметры, примеры.

  1. Свойство Characters объекта Range в VBA Excel
  2. Форматирование текста в ячейке по частям

Свойство Characters объекта Range в VBA Excel

Свойство Range.Characters используется для обращения к отдельным символам и частям строк, отображаемым в ячейке. Оно возвращает объект Characters, представляющий из себя набор символов, который можно использовать для форматирования отдельных частей строки, расположенной в ячейке.

Синтаксис

Expression.Characters (Start, Length)

  • Expression - выражение (переменная), возвращающее объект Range.

Параметры

  • Start - номер первого символа извлекаемой подстроки. Если этот параметр равен 1 или опущен, возвращается набор символов, начиная с первого знака.
  • Length - количество извлекаемых символов (длина подстроки). Если этот параметр равен 1, возвращается один символ. Если параметр опущен, возвращается остаток строки, начинающейся со знака, указанного параметром Start.

Пример 1
В первом примере рассмотрим разные способы записи одного и того же действия. Все три строки кода с применением свойства Range.Characters возвращают последовательность из пяти первых символов.

Переменную obj объявляем как объектную (As Object), так как свойство Characters объекта Range возвращает объект Characters (диапазон символов). Ячейке A1 присваиваем строку «Короткий текст» и смотрим результат трех вариантов извлечения подстрок в информационном окне MsgBox.

Sub Primer1()
Dim obj As Object
   Range("A1") = "Короткий текст"
'Вариант 1
Set obj = Range("A1").Characters(Start:=1, Length:=5)
   MsgBox obj.Text
'Вариант 2
Set obj = Range("A1").Characters(1, 5)
   MsgBox obj.Text
'Вариант 3
Set obj = Range("A1").Characters(, 5)
   MsgBox obj.Text
End Sub

Форматирование текста в ячейке по частям

Пример 2
Во втором примере будем форматировать части текста в ячейке A2 рабочего листа Excel с помощью кода VBA, используя свойство Range.Characters. Для этого запишем в указанную ячейку текст «Форматирование короткого текста» и применим:

  • к первым 15 символам - курсивное начертание;
  • к символам с 16 по 25 - жирный курсив;
  • к последним 6 символам - надстрочное начертание.
Sub Primer2()
  With Range("A2")
    .Value = "Форматирование короткого текста"
    .Characters(, 15).Font.Italic = True
    .Characters(16, 10).Font.Bold = True
    .Characters(16, 10).Font.Italic = True
    .Characters(26).Font.Superscript = True
  End With
End Sub

Обратите внимание, когда параметр Length опущен, запятая после параметра Start не ставится. Результат работы представленного кода VBA смотрите в ячейке A2 рабочего листа Excel.

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

Добавить комментарий

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора.