Версия данной статьи для Microsoft Excel 2000:213649 (Эта ссылка может указывать на содержимое полностью или частично на английском языке).
Версия данной статьи для Microsoft Excel 98 и более ранних версий:141094 (Эта ссылка может указывать на содержимое полностью или частично на английском языке).
Аннотация
Хотя в Microsoft Excel имеются функции для изменения регистра текста, в некоторых случаях может потребоваться изменить регистр текста программно.
В данной статье приведены три примера макросов на языке Microsoft Visual Basic для приложений (процедуры Sub), которые можно использовать, чтобы сделать все буквы в текстовой строке прописными, строчными или сделать прописной только первую букву каждого слова. Эти действия аналогичны функциям Excel =ПРОПИСН(), =СТРОЧН() и =ПРОПНАЧ().
Дополнительная информация
Корпорация Майкрософт предлагает примеры программного кода только для иллюстрации и не предоставляет явных или подразумеваемых гарантий относительно их пригодности для применения в пользовательских приложениях. Примеры в данной статье рассчитаны на пользователя, имеющего достаточный уровень знаний соответствующего языка программирования и необходимых средств разработки и отладки. Специалисты службы технической поддержки Майкрософт могут пояснить назначение определенной процедуры, но модификация примеров для обеспечения дополнительных возможностей или разработка процедур для конкретных задач заказчика не предусмотрена.
Макрос для преобразования всех букв в тексте в указанном диапазоне ячеек в прописные
Sub Uppercase()
' Цикл по каждой ячейке в указанном диапазоне.
For Each x In Range("A1:A5")
' Изменить буквы текста в диапазоне на прописные.
x.Value = UCase(x.value)
Next
End Sub
Макрос для преобразования всех букв в тексте в указанном диапазоне ячеек в строчные
Sub Lowercase()
' Цикл по каждой ячейке в указанном диапазоне.
For Each x In Range("B1:B5")
x.Value = LCase(x.Value)
Next
End Sub
Макрос для преобразования в прописные только первых букв слов в тексте в указанном диапазоне ячеек
Sub Proper_Case()
' Цикл по каждой ячейке в указанном диапазоне.
For Each x In Range("C1:C5")
' В языке Visual Basic для приложений отсутствует функция Proper.
' Поэтому необходимо воспользоваться функцией листа в следующем виде:
x.Value = Application.Proper(x.Value)
Next
End Sub
Проверка макросов
Чтобы проверить макросы, выполните указанные ниже действия.
-
В книге, в которой содержатся макросы, введите на новом листе указанные ниже данные.
A1: toM B1: toM C1: toM
A2: sUe B2: sUe C2: sUe
A3: joe SMITH B3: joe SMITH C3: joe SMITH
A4: mary B4: mary C4: mary
A5: LORI B5: LORI C5: LORI
Примечание. Тестовые данные содержат текст в различных регистрах, что позволяет проверить, как работает каждый макрос. -
Запустите каждый макрос.
Текст в указанном в макросе диапазоне ячеек (строка «For each x in …») будет отформатирован, соответственно, в верхнем регистре, нижнем регистре или первые буквы каждого слова будут преобразованы в прописные.
Ссылки
Дополнительные сведения об использовании функций листа для изменения регистра текста см. в следующей статье базы знаний Майкрософт:
263580 Изменение регистра текста в Excel (Эта ссылка может указывать на содержимое полностью или частично на английском языке)Дополнительные сведения о получении справки по языку Visual Basic для приложений см. в следующей статье базы знаний Майкрософт:
305326 Список ресурсов для разработчиков на языке Visual Basic для приложений (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
Нужна дополнительная помощь?
Смена регистра буквенных символов в 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:
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.
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.
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 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!
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}
Ошибочка, вместо ПРОПНАЧ()-> ПРОПИСН()..
«..Сладку ягоду рвали вместе, горьку ягоду я одна.»
Как принудительно ввести заглавные буквы в текстовое поле?
В Excel мы можем быстро преобразовать нижний регистр в верхний регистр в тексте ячейки с помощью функции UPPER, но пытались ли вы когда-нибудь заставить введенный текст быть в верхнем регистре в текстовом поле? В этой статье я представлю простой код для завершения этой работы.
Принудительно вводить прописные буквы в текстовом поле с кодом VBA
Принудительно вводить прописные буквы в текстовом поле с кодом VBA
При принудительном вводе текста в текстовое поле в верхнем регистре следующий код VBA может оказать вам услугу:
1. Сначала вставьте текстовое поле, нажав Застройщик > Вставить > Текстовое поле (элемент управления ActiveX), а затем нарисуйте текстовое поле, как вам нужно, см. снимок экрана:
2. После вставки текстового поля щелкните его правой кнопкой мыши и выберите Просмотреть код из контекстного меню, чтобы открыть Microsoft Visual Basic для приложений окна, а затем замените исходный код следующим кодом VBA в пустой модуль:
Код VBA: переводить текст в верхний регистр в текстовое поле:
Private Sub TextBox1_Change()
TextBox1.Text = UCase(TextBox1.Text)
End Sub
3. Затем сохраните и закройте окно кода и выйдите из Режим дизайна, теперь, когда вы вводите текст в текстовое поле, он будет принудительно вводиться в верхнем регистре, см. снимок экрана:
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (0)
Оценок пока нет. Оцените первым!