Для некоторых символов можно попробовать такой способ: выделите символ, для которого нужно узнать код, — вкладка «Вставка» — группа «Символы» — Другие символы… — появится диалог — если в этом диалоге выделен тот же символ, что вы выделили в ворде, то в правом нижнем углу, в поле «Код знака» будет код символа.
В поле «Код знака» код символа может быть в десятичной и шестнадцатеричной системе счисления. Чтобы узнать, в какой системе счисления находится код в поле «Код знака», посмотрите справа поле «из» и что написано на конце в скобках. Там может быть или «(дес.)» или «(шестн.)».
Если «дес», то просто подставляйте код знака, как есть в поле «Найти», добавив спереди символ «^». Если «шестн», то сначала переведите число в десятичную систему счисления (попробуйте найти в интернете онлайн-переводчики), а затем подставляйте в поле «Найти», добавив спереди «^». Если этот символ есть только в таблице «Юникод», то спереди добавьте «^u».
Если в диалоге выделен другой символ, значит в этом диалоге нет информации по данному символу. Такое может быть, например, со спецсимволами, например, с символом «знак абзаца» — ansi-код 13; в этом диалоге коды начинаются с большего кода.
В этом диалоге используется три таблицы символов:
1) ASCII
2) ANSI. Для русского языка таблица «ANSI» в этом диалоге называется «Кириллица».
3) Юникод
[свернуть]
Главная » Функции VBA »
28 Апрель 2011 351502 просмотров
- ASC()— эта функция позволяет вернуть числовой код для переданного символа. Например, ASC(
"D"
) вернет 68. Эту функцию удобно использовать для того, чтобы определить следующую или предыдущую букву. Обычно она используется вместе с функцией Chr(), которая производит обратную операцию — возвращает символ по переданному его числовому коду.Варианты этой функции — AscB() и AscW():- AscB() — возвращает только первый байт числового кода для символа.
- AscW() — возвращает код для символа в кодировке Unicode
- Chr() — возвращает символ по его числовому коду. Может использоваться в паре с функцией Asc(), но чаще всего её применяют, когда нужно вывести служебный символ (например кавычки —
"
), т.к. кавычки просто так в VBA-коде не ввести(нужно ставить двойные). Я обычно именно эту функцию и использую.Dim sWord As String sWord = Chr(34) & "Слово в кавычках" & Chr(34)
Есть варианты этой функции — ChrB() и ChrW(). Работают аналогично таким же вариантам для функции Asc().
- InStr() и InStrRev()— одна из самых популярных функций. Позволяет обнаружить в теле строковой переменной символ или последовательность символов и вернуть их позицию. Если последовательность не обнаружена, то возвращается 0.
Dim sStr As String sStr = "w" If InStr(1, "Hello, World!", sStr, vbTextCompare) > 0 Then MsgBox "Искомое слово присутствует!" Else MsgBox "Искомое слово отсутствует!" End If
Разница функций в том, что InStr() ищет указанное слово от начала строки, а InStrRev() с конца строки
- Left(), Right(), Mid()— возможность взять указанное вами количество символов из существующей строковой переменной слева, справа или из середины соответственно.
Dim sStr As String sStr = "Hello, World!" MsgBox Mid(sStr, 1, 5)
- Len() — возможность получить число символов в строке. Часто используется с циклами, операциями замены и т.п.
- LCase() и UCase() — перевести строку в нижний и верхний регистры соответственно. Часто используется для подготовки значения к сравнению, когда при сравнении регистр не важен (фамилии, названия фирм, городов и т.п.).
- LSet() и RSet() — возможность заполнить одну переменную символами другой без изменения ее длины (соответственно слева и справа). Лишние символы обрезаются, на место недостающих подставляются пробелы.
- LTrim(), RTrim(), Trim() — возможность убрать пробелы соответственно слева, справа или и слева, и справа.
- Replace()— возможность заменить в строке одну последовательность символов на другую.
Dim sStr As String sStr = "Hello, World!" MsgBox Replace(sStr, "Hello", "Bay")
- Space() — получить строку из указанного вами количества пробелов;
Еще одна похожая функция — Spc(), которая используется для форматирования вывода на консоль. Она размножает пробелы с учетом ширины командной строки. - StrComp() — возможность сравнить две строки.
- StrConv() — возможность преобразовать строку (в Unicode и обратно, в верхний и нижний регистр, сделать первую букву слов заглавной и т.п.):
Dim sStr As String sStr = "Hello, World!" MsgBox StrConv("Hello, World!", vbUpperCase)
В качестве второго параметра параметра могут применяться константы:
- vbUpperCase: Преобразует все текстовые символы в ВЕРХНИЙ РЕГИСТР
- vbLowerCase: Преобразует все текстовые символы в нижний регистр
- vbProperCase: Переводит первый символ каждого слова в Верхний Регистр
- *vbWide: Преобразует символы строки из однобайтовых в двухбайтовые
- *vbNarrow: Преобразует символы строки из двухбайтовых в однобайтовые
- **vbKatakana: Преобразует символы Hiragana в символы Katakana
- **vbHiragana: Преобразует символы Katakana в символы Hiragana
- ***vbUnicode: Преобразует строку в Юникод с помощью кодовой страницы системы по умолчанию
- ***vbFromUnicode: Преобразует строку из Юникод в кодовую страницу системы по умолчанию
* применимо для локализацией Дальнего востока
** применимо только для Японии
*** не поддерживается операционными системами под управлением Macintosh - StrReverse() — «перевернуть» строку, разместив ее символы в обратном порядке. Функция работает только начиная от Excel 2000 и выше. Пример использования функции, а так же иные методы переворачивания слова можно посмотреть в этой статье: Как перевернуть слово?
- Tab() — еще одна функция, которая используется для форматирования вывода на консоль. Размножает символы табуляции в том количестве, в котором вы укажете. Если никакое количество не указано, просто вставляет символ табуляции. Для вставки символа табуляции в строковое значение можно также использовать константу vbTab.
- String() — позволяет получить строку из указанного количества символов (которые опять-таки указываются Вами). Обычно используются для форматирования вывода совместно с функцией Len().
Статья помогла? Сделай твит, поделись ссылкой с друзьями!
В этой статье мы рассмотрим кратко строковые функции 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() – применяется для формирования вывода данных в консольном окне командной строки. Происходит размножение пробелов, учитывая ширину командной строки.
StrComp(строка1, строка2) – сравнение двух строк, вернет 0 при равенстве, и -1 в противном случае.
StrConv(строка, метод, [LCID]) – данная функция vba является универсальной, так как позволяет преобразовать заданную строку в различные вариации (верхний и нижний регистр, кодировка, перевод байт).
- Строка – собственно, строковое значение, над которым нужно провести преобразование.
- Метод – задает метод преобразования, данный параметр может принимать следующие значения:
- vbUpperCase – перевод в верхний регистр, значение 1
- vbLowerCase – перевод в нижний регистр, значение 2
- vbPropperCase – перевод первых символов всех слов в верхний регистр, а остальные символы – в нижний, значение 3.
- vbWide – применяется для кодировки восточных языков. Перевод символов в один байт с двухбайтовых. Значение 4.
- vbNarrow – аналог предыдущему параметру, но тут происходит перевод двух байт в один, значение 8.
- vbKatakana – происходит преобразование символов алфавита Хирагана в символы для алфавита Катана, применим для японского языка, значение 16.
- vbHiragana – аналог предыдущего параметра, но тут происходит преобразования вида Катана в Хирагана, значение 32. VBA строковые функции
- vbUnicode – перевод заданной строки в Unicode кодировку, значение 64.
- vbFormatUnicode – перевод из кодировки Unicode в стандартную, значение 128.
- LCID – параметр не является обязательным, (vba строковые функции) он задает идентификатор региональных настроек. По умолчанию значение LocaleId, то есть, то значение, что установлено в панели управления.
StrReverse(строка) – инвертировать расположение знаков в строке, проще говоря, “отзеркаливает”.
Tab() – позволяет размножить символы табуляции в заданном количестве. Помимо этого, для вставки табуляции применяется именованная константа vbTab.
Аналогичные VBA строковые функции используются и в языке VBScript сервера сценариев Windows Script Host.