Vba excel все буквы строчные

Смена регистра буквенных символов в VBA Excel с помощью функции StrConv. Преобразование всех букв в верхний или нижний регистр, а также первых букв каждого слова в верхний.

StrConv – это функция, которая возвращает текстовое значение после преобразования исходного строкового выражения в соответствии с указанным типом выполняемого преобразования.

В VBA Excel доступны следующие типы преобразования:

  • символов строки в верхний или нижний регистр;
  • однобайтовых символов в двухбайтовые и обратно;
  • знаков хирагана в катакана и наоборот (формы японской слоговой азбуки);
  • символов строки из формата системной кодовой страницы по умолчанию в Юникод и обратно.

Далее рассмотрим только преобразование букв в верхний или нижний регистр, используя сокращенный синтаксис функции StrConv. Со всеми возможностями этой функции вы можете ознакомиться на сайте разработчика.

Синтаксис функции StrConv

Синтаксис и параметры

StrConv(string, conversion)

  • string – исходное строковое выражение;
  • conversion – тип преобразования.

Тип преобразования

Для смены регистра букв используются следующие типы преобразования (conversion):

Константа Значение Описание
vbUpperCase 1 преобразование всех символов исходной строки в верхний регистр
vbLowerCase 2 преобразование всех символов исходной строки в нижний регистр
vbProperCase 3 преобразование первой буквы каждого слова исходной строки в верхний регистр

Примеры кода VBA Excel

Пример 1

Стандартное преобразование регистра букв:

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

Преобразование только первой буквы предложения в заглавную (в верхний регистр):

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

То же самое, но немного по-другому:

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 в следующей статье.

Return to VBA Code Examples

In this Article

  • UCase – Convert String to Upper Case
  • LCase – Convert String to Lower Case
  • StrConv – Convert String to Proper Case
  • StrConv – Convert String to Upper or Lower Case
  • VBA Upper, Lower, and Proper Case – Case Functions in Access

This tutorial will demonstrate how to use the UCASE, LCASE and STRCONV functions in VBA.

While working in VBA, you often need to convert strings into lowercase, uppercase or proper case. This is possible by using the UCase, LCase and StrConv functions.

These functions are important when manipulating strings in VBA, as VBA is case sensitive. If you wish to make VBA case-insensitive, you need to add Option Compare Text at the top of your module. You can find out more about this here: Prevent VBA Case Sensitive

UCase – Convert String to Upper Case

The UCase function in VBA converts all letters of a string into uppercase. There is only one argument, which can be a string, variable with string or a cell value. This function is often used if you want to compare two strings. Here is the code for the UCase function:

Dim strText As String
Dim strTextUCase As String

strText = "running Uppercase function"

strTextUCase = UCase(strText)

MsgBox strTextUCase

In the example, we want to convert all letters of the strText variable to upper case and assign the converted string to the strTextUCase variable. At the end we call the message box with the converted string:vba-uppercase-function

LCase – Convert String to Lower Case

If you want to convert all letters of a string into lower cases, you need to use the LCase function. This function has one argument, the same as the UCase. This is the code for the LCase function:

Dim strText As String
Dim strTextLCase As String

strText = "RUNNING lowerCASE FUNCTION"

strTextLCase = LCase(strText)

MsgBox strTextLCase

In this example, we convert all letters of the string variable strText into lower case. After that, the converted string is assigned to the variable strTextLCase.

vba-lowercase-function

StrConv – Convert String to Proper Case

The StrConv function enables you to convert a string of text into proper case. The function has two arguments. First is the string that you want to convert. The second is the type of the conversion which you want. In order to convert a string to a proper case, you need to set it to vbProperCase. The code for the function is:

Dim strText As String
Dim strTextProperCase As String
    
strText = "running proper case function"
    
strTextProperCase = StrConv(strText, vbProperCase)
    
MsgBox strTextProperCase

You will see on the example how the function works. It takes the string from the cell B1, converts it to proper case and returns the value in the cell A1.

vba-proper-case-function

StrConv – Convert String to Upper or Lower Case

Using the StrConv function, you can also convert a string to upper or lower cases. To do this, you just need to set the second argument to the vbUpperCase or vbLowerCase:

strTextConverted = StrConv(strText, vbUpperCase)
strTextConverted = StrConv(strText, vbLowerCase)

VBA Upper, Lower, and Proper Case – Case Functions in Access

All of the above examples work exactly the same in Access VBA as in Excel VBA.

Private Sub ClientName_AfterUpdate()
   'this will convert the text in the client name box to uppercase
   Me.ClientName = UCase(Me.ClientName)
End Sub

vba ucase access

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
vba save as

Learn More!

 

Владимир

Пользователь

Сообщений: 8196
Регистрация: 21.12.2012

#8

24.08.2010 16:22:24

{quote}{login=Serge 007}{date=23.08.2010 01:44}{thema=Re: Из строчных в прописные и наоборот}{post}{quote}{login=NastiaStar}{date=23.08.2010 01:19}{thema=Из строчных в прописные и наоборот}{post}…возможно ли в программе…{/post}{/quote}В программе — это в Экселе видимо?  
Тогда функции ПРОПНАЧ и СТРОЧН.{/post}{/quote}  

  Ошибочка, вместо ПРОПНАЧ()-> ПРОПИСН()..

«..Сладку ягоду рвали вместе, горьку ягоду я одна.»

LCase(String)
LCase$(String)

Функция LCase(Lower Case) преобразует символы строки в строчные; все буквы в нижнем регистре и небуквенные символы остаются неизмененными. Вместо LCase можно использовать универсальную функцию преобразования строк StrConv

Возвращаемое значение

Возвращет строку, которая отличается от входной тем, что все буквы преобразованы в строчные. Если параметр String содержит Null, то и возвращаемым значением является Null

Параметры

String Обязательный аргумент может представлять любое строковое выражение

Пример

Sub LCase_example()
Dim Str As String
 Str = "Мир MS Excel"
 MsgBox LCase(Str) 'Преобразуем строку в нижний регистр
End Sub

Категория
Функции обработки строк

8.1 Символьные данные
8.2 Операции и функции для работы с символьными данными


8.1 Символьные данные

Напомним, что по умолчанию данные строкового типа имеют переменную длину и могут удлиняться (до длины в 2^31 символов) или укорачиваться. Однако такие строки занимают на 10 байт памяти больше, поэтому можно объявить строки фиксированной длины, явно указав количество символов.

Dim s as String*20

Если количество символов будет меньше объявленного, то свободные места заполняются пробелами, при попытке занесения большего количества символов лишние отбрасываются.

8.2 Операции и функции для работы с символьными данными

Единственная операция, применяемая при работе со строками — конкатенация. Зато встроенных функций для работы достаточно много:

Действие Ключевые слова
Сравнение двух строк. StrComp
Преобразование строк. StrConv
Изменение регистра. Lcase, UCase
Создание строк, содержащих повторяющиеся символы. Space, String
Определение длины строки. Len
Форматирование строки. Format
Выравнивание строки. Lset, RSet
Обработка строк. InStr, Left, LTrim, Mid, Right, RTrim, Trim
Выбор типа сравнения строк. Option Compare
Работа с кодами ASCII и ANSI. Asc, Chr

Сравнение двух строк. Функция StrComp возвращает значение типа Variant (Integer), представляющее результат сравнения строк.

StrComp(string1, string2[, compare])

Синтаксис функции StrComp содержит следующие аргументы:

string1 — Обязательный. Любое допустимое строковое выражение.

string2 — Обязательный. Любое допустимое строковое выражение.

compare — Необязательный. Указывает способ сравнения строк. Аргумент compare может быть опущен или иметь значение 0, 1 или 2. Чтобы выполнить двоичное сравнение, следует указать 0 (это значение используется по умолчанию). Чтобы выполнить посимвольное сравнение без учета регистра, следует указать 1. Если аргумент compare опущен, способ сравнения строк определяется значением параметра инструкции Option Compare.

Возвращаемые значения

string1 меньше чем string2 -1

string1 равняется string2 0

string1 больше чем string2 1

Пример:

Dim MyStr1, MyStr2, MyComp
MyStr1 = "ABCD": MyStr2 = "abcd"	' Определяет переменные.
MyComp = StrComp(MyStr1, MyStr2, 1)	' Возвращает 0.
MyComp = StrComp(MyStr1, MyStr2, 0)	' Возвращает -1.
MyComp = StrComp(MyStr2, MyStr1)	' Возвращает 1.

Выбор типа сравнения строк. Применяется на уровне модуля для задания используемого по умолчанию способа сравнения строковых данных.

Option Compare {Binary | Text}

Инструкция Option Compare при ее использовании должна находиться в модуле перед любой процедурой и указывает способ сравнения строк (Binary или Text) для модуля. Если модуль не содержит инструкцию Option Compare, по умолчанию используется способ сравнения Binary

Инструкция Option Compare Binary задает сравнение строк на основе порядка сортировки, определяемого внутренним двоичным представлением символов. В Microsoft Windows порядок сортировки определяется кодовой страницей символов. В следующем примере представлен типичный результат двоичного порядка сортировки:

A < B < E < Z < a < b < e < z < Б < Л < Ш < б < л < ш

Инструкция Option Compare Text задает сравнение строк без учета регистра символов на основе системной национальной настройки. Тем же символам, что и выше, при сортировке с инструкцией Option Compare Text соответствует следующий порядок:

(A=a) < (B=b) < (E=e) < (Z=z) < (Б=б) < (Л=л) < (Ш=ш)

Преобразование строк. Функция StrConv имеет следующи синтаксис:

StrConv(string, conversion)

Здесь string — строковое выражение, которое следует преобразовать, conversion — значение типа Integer, Сумма значений, указывающих тип преобразования, которое следует выполнить.

vbUpperCase 1 Преобразование строки к верхнему регистру.

vbLowerCase 2 Преобразование строки к нижнему регистру.

vbProperCase 3 Преобразование первой буквы каждого слова в строке в прописную.

Вместо одной этой функции можно применять функции Lcase, Ucase.

Lcase — возвращает значение типа String, представляющее строку, преобразованную к нижнему регистру.

LCase(строка)

Обязательный аргумент строка представляет любое допустимое строковое выражение. Если строка имеет значение Null, возвращается значение Null.

К нижнему регистру преобразуются только прописные буквы; строчные буквы и прочие символы остаются неизмененными.

Ucase — возвращает значение типа Variant (String), содержащее строку, преобразованную к верхнему регистру.

UCase(строка)

Обязательный аргумент строка представляет любое допустимое строковое выражение. Если строка имеет значение Null, возвращается значение Null.

К верхнему регистру преобразуются только строчные буквы; прописные буквы и прочие символы остаются неизменными.

Создание строк, содержащих повторяющиеся символы. Для создания таких строк применяют функции Space и String. Функция Space(число) формирует строку, а обязательный аргумент число указывает нужное число пробелов в строке. Ее удобно использовать для форматирования и очистки данных в строках фиксированной длины.

Функция String(number, character) содержит следующие аргументы:

number — Значение типа Long. Длина возвращаемой строки.

character — Значение типа Variant. Код символа или строковое выражение, первый символ которого используется при создании возвращаемой строки.

Определение длины строки. При работе со строками переменной длины удобно использовать функцию Len(строка), возвращую значение типа Long, содержащее число символов в строке

Выравнивание строки. Оператор Lset — выравнивает строку по левому краю строковой переменной или копирует переменную одного определяемого пользователем тип в переменную другого типа, также определенного пользователем.

LSet переменная = строка

LSet имяПеременной1 = имяПеременной2

Здесь строка — строковое выражение, которое следует выровнять по левому краю строки переменная. Все оставшиеся символы в строке переменная LSet заменяет на пробелы. Если строка длиннее, чем переменная, LSet копирует в переменную столько начальных символов строки, сколько в ней поместится.

Rset — то же самое, но выравнивает строку по правому краю строковой переменной. Если длина строки переменная больше, чем строка, инструкция RSet заменяет все оставшиеся символы вплоть до начала строки переменная пробелами.

Обработка строк. Для разнообразной обработки строк применяются функции InStr, Left, LTrim, Mid, Right, RTrim, Trim.

InStr — Возвращает значение типа Long, указывающее позицию первого вхождения одной строки внутри другой строки.

InStr([start, ]string1, string2[, compare])

Синтаксис функции InStr содержит следующие аргументы:

start — числовое выражение, задающее позицию, с которой начинается каждый поиск. Если этот аргумент опущен, поиск начинается с первого символа строки. Указание аргумента start является обязательным, если указан аргумент compare.

string1 — Строковое выражение, в котором выполняется поиск.

string2 — Искомое строковое выражение.

compare — Указывает способ сравнения строк. Аргумент compare может быть опущен или иметь значение 0 или 1. Чтобы выполнить двоичное сравнение, следует указать 0 (это значение используется по умолчанию). Чтобы выполнить посимвольное сравнение без учета регистра, следует указать 1. Если аргумент compare опущен, способ сравнения строк определяется значением параметра инструкции Option Compare.

Возвращаемые значения

string1 является пустой строкой 0

string2 является пустой строкой start

string2 не найдена 0

string2 найдена в string1 Позиция обнаруженной подстроки

start > string2 0

Left — возвращает значение типа String, содержащее указанное число первых символов строки.

Left(string, length)

Здесь string — строковое выражение, из которого извлекаются символы. length — значение типа Variant (Long), числовое выражение, указывающее число возвращаемых символов. Если 0, возвращается пустая строка («»). Если значение length больше либо равняется числу символов в строке string, возвращается вся строка.

Для определения числа символов в строке string следует использовать функцию Len.

Ltrim, Rtrim, Trim — возвращают значение типа String, содержащее копию строки, из которой удалены пробелы, находившиеся в начале строки (LTrim), в конце строки (RTrim) или в начале и конце строки (Trim).

LTrim(строка), RTrim(строка), Trim(строка)

Обязательный аргумент строка представляет любое допустимое строковое выражение.

Mid — Возвращает значение типа Variant (String), содержащее указанное число символов строки.

Mid(string, start[, length])

Здесь string — строковое выражение, из которого извлекаются символы, start — значение типа Long. Позиция символа в строке string, с которого начинается нужная подстрока. Если start больше числа символов в строке string, функция Mid возвращает пустую строку («»).

length — значение типа Variant (Long). Число возвращаемых символов. Если этот аргумент опущен или превышает число символов, расположенных справа от позиции start, то возвращаются все символы от позиции start до конца строки.

Right — Возвращает значение типа String, содержащее указанное число последних символов строки.

Right(string, length)

Здесь string — строковое выражение, из которого извлекаются символы. length — значение типа Variant (Long). Числовое выражение, указывающее число возвращаемых символов. Если 0, возвращается пустая строка («»). Если превышает число символов в строке string, возвращается вся строка.

Работа с кодами ASCII.

Asc — Возвращает значение типа Integer, представляющее код символа для первого символа строки.

Asc(строка)

Аргумент строка является любым допустимым строковым выражением. Если строка не содержит символов, возникает ошибка выполнения. Возвращаемые значения лежат в диапазоне 0 — 255.

Chr — возвращает значение типа String, содержащее символ, соответствующий указанному коду символа.

Chr(кодСимвола)

Обязательный аргумент кодСимвола является значением типа Long, определяющим символ.

Коды 0-31 соответствуют стандартным управляющим символам ASCII. Например, Chr(10) возвращает символ перевода строки. Обычным диапазоном значений аргумента кодСимвола является интервал 0-255.

Пример: Заменить в строке буквы А, Б, В на 1, 2, 3 соответственно

Sub пример6()
Dim s As String, sn As String, t As String
Dim l As Integer, i As Integer
Call read("g1", s)
l = Len(s)
For i = 1 To l
t = Mid(s, i, 1)
Select Case t
Case "А": sn = sn + "1"
Case "Б": sn = sn + "2"
Case "В": sn = sn + "3"
Case Else: sn = sn + t
End Select
Next i
Call out("h1", sn)
End Sub
Пример: Из набора слов вывести только те, у которых одинаковые первые буквы
Sub пример7()
Dim first() As String, s As String, n As Integer, i As Integer, k As Integer
i = 0: k = 0
Do While Лист1.Range("g" & i+1).Text <> ""
i = i + 1
s = Лист1.Range("g" & i).Text
ReDim Preserve first(1 To i)
first(i) = Left(s, 1)
Loop
Лист1.Range("h1", "h" & i).Clear
For n = 1 To i
If n <> i Then
For k = n + 1 To i
If first(k) = first(n) Then
Лист1.Range("h" & n).Value = Лист1.Range("g" & n).Text
Лист1.Range("h" & k).Value = Лист1.Range("g" & k).Text
End If
Next
End If
Next
End Sub

Понравилась статья? Поделить с друзьями:
  • Vba excel время работы макроса
  • Vba excel время не ждет
  • Vba excel временная задержка
  • Vba excel впр в массиве
  • Vba excel возведение степень