vba excel символ по коду
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(строка) | Преобразует буквенные символы строки в верхний регистр. |
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 языка, которые используются для форматирования строк, а также позволяют изменять регистр символов, выводить строковые значения по их коду и так далее.
VBA функции работы со строками
ASC (строковое значение) – применяется для получения числового ASCII кода заданного символа. В качестве параметра можно передать как целую строку (проверка произойдет для первого символа в строке), так и один символ или пробел.
Chr (код символа) – работает в обратном порядке по сравнению с предыдущей функцией. В качестве параметра мы передаем ASCII код, а на выходе получаем символ по заданному коду. Данная строковая VBA функция актуальна в тех случаях, когда нужно вывести служебный символ, например, кавычки, хотя чаще, используются именованные VBA константы.
InStr (строка1, строка2, [старт]) – предназначена для поиска последовательности знаков (строка2) в заданной строке (строка1). Можно также задать начальную позицию для поиска вхождения (необязательный параметр “старт”).
InStrRev (строка1, строка2, [старт]) – аналог предыдущей функции, но поиск происходит в обратном порядке.
Left (строка, длина) – позволяет вернуть заданное количество знаков (параметр “длина”) для выбранной строки (параметр “ строка ”), начиная слева.
Right (строка, длина) – позволяет вернуть заданное количество знаков для выбранной строки, начиная справа.
Mid (строка, длина, старт) – позволяет вернуть заданное количество знаков (параметр “длина”) для выбранной строки, начиная с заданной позиции (параметр “старт”).
Len (строка) – определяет численное количество символов в строке.
LCase (строка) – предназначена для преобразования всех символов в переданной строке в нижний регистр.
UCase (строка) – предназначена для преобразования всех символов в переданной строке в верхний регистр.
LSet (строка, длина) – заполняет содержимое переменной символами из другой переменной начиная слева, длина не изменяется, лишние знаки будут обрезаны, а вместо недостающих, будут подставляться пробелы.
RSet (строка, длина) – логика работы та же, что и для предыдущей vba функции работы со строками, но процесс происходит справа.
LTrim (строка) – удалить пробелы слева в строке
RTrim (строка) – удалить пробелы справа в строке
Trim (строка) – удалить пробелы справа и слева в строке
Replace () – замена в строке одних символов на другие
Space (количество_пробелов) – формирование строки из заданного количества пробелов
String (количество, символ) – формирование строки из заданного количества прописанных символов
Spc () – применяется для формирования вывода данных в консольном окне командной строки. Происходит размножение пробелов, учитывая ширину командной строки.
StrConv (строка, метод, [LCID]) – данная функция vba является универсальной, так как позволяет преобразовать заданную строку в различные вариации (верхний и нижний регистр, кодировка, перевод байт).
StrReverse (строка) – инвертировать расположение знаков в строке, проще говоря, “отзеркаливает”.
Tab () – позволяет размножить символы табуляции в заданном количестве. Помимо этого, для вставки табуляции применяется именованная константа vbTab.
Аналогичные VBA строковые функции используются и в языке VBScript сервера сценариев Windows Script Host.
Спасибо за внимание. Автор блога Владимир Баталий
Специальные символы в коде (Visual Basic)
Иногда в коде необходимо использовать специальные символы, то есть символы, не являющиеся алфавитными или числовыми. Знаки пунктуации и специальные символы в Visual Basic кодировке имеют различные варианты использования, от организации текста программы до определения задач, выполняемых компилятором или скомпилированной программой. Эти знаки не определяют операции, подлежащие выполнению.
Круглые скобки
Разделители
Разделители выполняют свои имена: они разделяют разделы кода. В Visual Basic символ разделителя является двоеточием ( : ). Используйте разделители, если требуется включить несколько операторов в одну строку, а не отдельные строки. Это экономит пространство и повышает удобочитаемость кода. В следующем примере показаны три инструкции, разделенные двоеточиями.
Символ двоеточия ( : ) также используется для обозначения метки оператора. Дополнительные сведения см. в разделе инструкции. Метки.
Объединение
Используйте & оператор для объединения или связывания строк. Не путайте его с + оператором, который добавляет вместе числовые значения. При использовании + оператора для сцепления с числовыми значениями можно получить неверные результаты. В следующем примере это показано.
После выполнения предыдущего кода значение resultA равно 21,01, а значение resultB равно «10,0111».
Операторы доступа к членам
Точка (.) Станции
Восклицательный знак (!) Станции
«Dictionary access returns » & hD!»X»)
! Символ также используется в качестве Single символа типа.
Символы типов (Visual Basic)
Помимо указания типа данных в операторе объявления, можно принудительно указать тип данных некоторых программных элементов с помощью символа типа. Символ типа должен следовать непосредственно за элементом, не имеющим промежуточных символов любого вида.
Символ типа не является частью имени элемента. На элемент, определенный с помощью символа типа, можно ссылаться без символа типа.
Символы типа идентификатора
Символ типа идентификатора | Тип данных | Пример |
---|---|---|
% | Integer | Dim L% |
& | Long | Dim M& |
@ | Decimal | Const W@ = 37.5 |
! | Single | Dim Q! |
# | Double | Dim X# |
$ | String | Dim V$ = «Secret» |
Во всех случаях символ типа идентификатора должен следовать непосредственно за именем идентификатора.
Символы типа литерала
Литерал — это текстовое представление конкретного значения типа данных.
Типы литералов по умолчанию
Форма литерала в том виде, в котором она отображается в коде, обычно определяет его тип данных. В следующей таблице показаны эти типы по умолчанию.
Текстовая форма литерала | Тип данных по умолчанию | Пример |
---|---|---|
Numeric, без дробной части | Integer | 2147483647 |
Numeric, без дробной части, слишком большой для Integer | Long | 2147483648 |
Числовая, дробная часть | Double | 1.2 |
Заключено в двойные кавычки | String | «A» |
Заключено в знаки решетки | Date | #5/17/1993 9:32 AM# |
Принудительные типы литералов
Visual Basic предоставляет набор символов типа литерала, который можно использовать для принудительного применения литерала к типу данных, отличному от того, который указывает его форма. Это можно сделать, добавив символ в конец литерала. В следующей таблице показаны доступные символы типа литерала с примерами использования.
Символ типа литерала | Тип данных | Пример |
---|---|---|
S | Short | I = 347S |
I | Integer | J = 347I |
L | Long | K = 347L |
D | Decimal | X = 347D |
F | Single | Y = 347F |
R | Double | Z = 347R |
US | UShort | L = 347US |
UI | UInteger | M = 347UI |
UL | ULong | N = 347UL |
C | Char | Q = «.»C |
Во всех случаях символ типа литерала должен следовать непосредственно за литеральным значением.
Шестнадцатеричные, двоичные и восьмеричные литералы
Компилятор обычно интерпретирует целочисленный литерал в десятичной системе счисления (с основанием 10). Можно также определить целочисленный литерал как шестнадцатеричное (с основанием 16) числом с &H префиксом, как двоичное (основание 2) с &B префиксом, а также как восьмеричное (основание 8) число с &O префиксом. Цифры, которые следуют за префиксом, должны соответствовать системе счисления. Это показано в следующей таблице.
Базовый номер | Prefix | Допустимые разрядные значения | Пример |
---|---|---|---|
16 (основание 16) | &H | 0-9 и A-F | &HFFFF |
Двоичный (основание 2) | &B | 0—1 | &B01111100 |
8 (основание 8) | &O | 0-7 | &O77 |
Начиная с Visual Basic 2017, можно использовать символ подчеркивания () в _ качестве разделителя групп, чтобы повысить удобочитаемость целочисленного литерала. В следующем примере символ используется _ для группирования двоичного литерала в 8-разрядные группы:
Можно следовать предопределенному литералу с символом типа литерала. В следующем примере приведена иллюстрация этого.
В предыдущем примере counter имеет десятичное значение-32768 и flags имеет десятичное значение + 32768.
Начиная с Visual Basic 15,5, можно также использовать символ подчеркивания () в _ качестве начального разделителя между префиксом и шестнадцатеричными, двоичными или восьмеричными цифрами. Пример:
Чтобы использовать символ подчеркивания в качестве начального разделителя, нужно добавить в файл проекта Visual Basic (*.vbproj) следующий элемент:
ASCII таблица и Virtual KeyCodes
ASCII таблица кодов символов Windows (win.1251):
|
|
Таблица вмртуальных кодов клавиш Windows (Virtual Key Codes):