Версия данной статьи для 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 для приложений (Эта ссылка может указывать на содержимое полностью или частично на английском языке)