Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

VBA Excel. Работа с текстом (функции)

    Работа с текстом в коде VBA Excel. Функции, оператор & и другие ключевые слова для работы с текстом. Примеры использования некоторых функций и ключевых слов.

    Функции для работы с текстом

    Основные функции для работы с текстом в VBA Excel:

    Функция Описание
    Asc(строка) Возвращает числовой код символа, соответствующий первому символу строки. Например: MsgBox Asc(«/Stop»). Ответ: 47, что соответствует символу «/».
    Chr(код символа) Возвращает строковый символ по указанному коду. Например: MsgBox Chr(47). Ответ: «/».
    Format(Expression, [FormatExpression], [FirstDayOfWeek], [FirstWeekOfYear]) Преобразует число, дату, время в строку (тип данных Variant (String)), отформатированную в соответствии с инструкциями, включенными в выражение формата. Подробнее…
    InStr([начало], строка1, строка2, [сравнение]) Возвращает порядковый номер символа, соответствующий первому вхождению одной строки (строка2) в другую (строка1) с начала строки. Подробнее…
    InstrRev(строка1, строка2, [начало, [сравнение]]) Возвращает порядковый номер символа, соответствующий первому вхождению одной строки (строка2) в другую (строка1) с конца строки. Подробнее…
    Join(SourceArray,[Delimiter]) Возвращает строку, созданную путем объединения нескольких подстрок из массива. Подробнее…
    LCase(строка) Преобразует буквенные символы строки в нижний регистр.
    Left(строка, длина) Возвращает левую часть строки с заданным количеством символов. Подробнее…
    Len(строка) Возвращает число символов, содержащихся в строке.
    LTrim(строка) Возвращает строку без начальных пробелов (слева). Подробнее…
    Mid(строка, начало, [длина]) Возвращает часть строки с заданным количеством символов, начиная с указанного символа (по номеру). Подробнее…
    Replace(expression, find, replace, [start], [count], [compare]) Возвращает строку, полученную в результате замены одной подстроки в исходном строковом выражении другой подстрокой указанное количество раз. Подробнее…
    Right(строка, длина) Возвращает правую часть строки с заданным количеством символов. Подробнее…
    RTrim(строка) Возвращает строку без конечных пробелов (справа). Подробнее…
    Space(число) Возвращает строку, состоящую из указанного числа пробелов. Подробнее…
    Split(Expression,[Delimiter],[Limit],[Compare]) Возвращает одномерный массив подстрок, извлеченных из указанной строки с разделителями. Подробнее…
    StrComp(строка1, строка2, [сравнение]) Возвращает числовое значение Variant (Integer), показывающее результат сравнения двух строк. Подробнее…
    StrConv(string, conversion) Изменяет регистр символов исходной строки в соответствии с заданным параметром «conversion». Подробнее…
    String(число, символ) Возвращает строку, состоящую из указанного числа символов. В выражении «символ» может быть указан кодом символа или строкой, первый символ которой будет использован в качестве параметра «символ». Подробнее…
    StrReverse(строка) Возвращает строку с обратным порядком следования знаков по сравнению с исходной строкой. Подробнее…
    Trim(строка) Возвращает строку без начальных (слева) и конечных (справа) пробелов. Подробнее…
    UCase(строка) Преобразует буквенные символы строки в верхний регистр.
    Val(строка) Возвращает символы, распознанные как цифры с начала строки и до первого нецифрового символа, в виде числового значения соответствующего типа. Подробнее…
    WorksheetFunction.Trim(строка) Функция рабочего листа, которая удаляет все лишние пробелы (начальные, конечные и внутренние), оставляя внутри строки одиночные пробелы.

    В таблице перечислены основные функции VBA Excel для работы с текстом. С полным списком всевозможных функций вы можете ознакомиться на сайте разработчика.

    Ключевые слова для работы с текстом

    Ключевое слово Описание
    & Оператор & объединяет два выражения (результат = выражение1 & выражение2). Если выражение не является строкой, оно преобразуется в Variant (String), и результат возвращает значение Variant (String). Если оба выражения возвращают строку, результат возвращает значение String.
    vbCrLf Константа vbCrLf сочетает в себе возврат каретки и перевод строки (Chr(13) + Chr(10)) и переносит последующий текст на новую строку (результат = строка1 & vbCrLf & строка2).
    vbNewLine Константа vbNewLine в VBA Excel аналогична константе vbCrLf, также сочетает в себе возврат каретки и перевод строки (Chr(13) + Chr(10)) и переносит текст на новую строку (результат = строка1 & vbNewLine & строка2).

    Примеры

    Вывод прямых парных кавычек

    Прямые парные кавычки в VBA Excel являются спецсимволами и вывести их, заключив в самих себя или в одинарные кавычки (апострофы), невозможно. Для этого подойдет функция Chr:

    Смотрите интересное решение по выводу прямых кавычек с помощью прямых кавычек в первом комментарии.

    Отображение слов наоборот

    Преобразование слова «налим» в «Милан»:

    или одной строкой:

    Преобразование слова «лето» в «отель»:

    или одной строкой:

    Печатная машинка

    Следующий код VBA Excel в замедленном режиме посимвольно печатает указанную строку на пользовательской форме, имитируя печатную машинку.

    Для реализации этого примера понадобится пользовательская форма (UserForm1) с надписью (Label1) и кнопкой (CommandButton1):

    Пользовательская форма с элементами управления Label и CommandButton

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

    Обе процедуры размещаются в модуле формы. Нажатие кнопки CommandButton1 запустит замедленную печать символов в поле надписи, имитируя печатную машинку.


    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

    4 комментария для “VBA Excel. Работа с текстом (функции)”

    1. Александр Циркунов

      Чтобы вывести кавычки ", их нужно набивать дважды — "" и тогда вывод сообщения из вашего примера будет выглядеть так: MsgBox String(10, """"). На экране будет 10 парных кавычек. Всё просто.

      1. Евгений

        Спасибо, Александр, за очень полезное дополнение.

    2. Сбитый Лётчик Небосводов

      Здравствуйте!
      Существует «Подробнее…» для InstrRev, но отсутствует здесь ссылка.

    Обсуждение закрыто.