Смена регистра буквенных символов в VBA Excel с помощью функции StrConv. Преобразование всех букв в верхний или нижний регистр, а также первых букв каждого слова в верхний.
Определение функции StrConv
В VBA Excel доступны следующие типы преобразования:
- символов строки в верхний или нижний регистр;
- однобайтовых символов в двухбайтовые и обратно;
- знаков хирагана в катакана и наоборот (формы японской слоговой азбуки);
- символов строки из формата системной кодовой страницы по умолчанию в Юникод и обратно.
Далее рассмотрим только преобразование букв в верхний или нижний регистр, используя сокращенный синтаксис функции StrConv. Со всеми возможностями этой функции вы можете ознакомиться на сайте разработчика.
Синтаксис функции StrConv
Синтаксис и параметры
StrConv(string, conversion)
- string – исходное строковое выражение;
- conversion – тип преобразования.
Тип преобразования
Для смены регистра букв используются следующие типы преобразования (conversion):
Константа | Значение | Описание |
---|---|---|
vbUpperCase | 1 | преобразование всех символов исходной строки в верхний регистр |
vbLowerCase | 2 | преобразование всех символов исходной строки в нижний регистр |
vbProperCase | 3 | преобразование первой буквы каждого слова исходной строки в верхний регистр |
Примеры кода VBA Excel
Пример 1
Стандартное преобразование регистра букв:
1 2 3 4 5 6 7 8 9 10 11 |
Sub Primer1() Dim a, b, c a = StrConv("чиСтота – зАЛОг здОроВья", 1) b = StrConv("чиСтота – зАЛОг здОроВья", 2) c = StrConv("чиСтота – зАЛОг здОроВья", 3) MsgBox a & vbNewLine & b & vbNewLine & c 'Результат: 'ЧИСТОТА – ЗАЛОГ ЗДОРОВЬЯ 'чистота – залог здоровья 'Чистота – Залог Здоровья End Sub |
Обратите внимание, что при указании типа преобразования vbProperCase (3), не только первые буквы слов преобразуются в верхний регистр, но и все остальные – в нижний.
Пример 2
Преобразование только первой буквы предложения в заглавную (в верхний регистр):
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub Primer2() Dim a, b a = "чиСтота – зАЛОг здОроВья" 'преобразуем все символы в нижний регистр a = StrConv(a, 2) 'извлекаем первую букву предложения и 'преобразуем ее в верхний регистр b = StrConv(Left(a, 1), 1) 'заменяем первую букву в предложении a = b & Mid(a, 2) MsgBox a 'Результат: "Чистота – залог здоровья" End Sub |
То же самое, но немного по-другому:
1 2 3 4 5 6 7 8 9 10 11 |
Sub Primer2() Dim a a = "чиСтота – зАЛОг здОроВья" 'преобразуем все символы в нижний регистр a = StrConv(a, 2) 'заменяем первую букву в предложении этой же буквой, 'преобразованной в верхний регистр a = Replace(a, Left(a, 1), StrConv(Left(a, 1), 1), 1, 1) 'смотрим результат MsgBox a End Sub |
Подробнее о функции Replace в следующей статье.
Здравствуйте!
А что делать, если возвращается, что StrConv not defined?
Здравствуйте, Борис!
Возможно, у вас С, о или п записаны кириллицей.
Обсуждение закрыто.