Excel vba прописные буквы

Версия данной статьи для 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

Проверка макросов

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

  1. В книге, в которой содержатся макросы, введите на новом листе указанные ниже данные.
    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
    Примечание. Тестовые данные содержат текст в различных регистрах, что позволяет проверить, как работает каждый макрос.

  2. Запустите каждый макрос.

Текст в указанном в макросе диапазоне ячеек (строка «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 в следующей статье.

More often than not, to save time or for the sake of laziness, people enter data in all lowercase or all uppercase. Transforming this type of data into the proper format can be a serious headache. Let us show you how to make Excel capitalize first letter using VBA to do this automatically.

How to make Excel capitalize first letter

Both Excel and VBA have functions that can do this.

  • Proper (Excel)
  • StrConv (VBA)

In this example, we will be using the StrConv function in VBA. StrConv function can convert a string into a specified form. This form can be the case of letters, as well as their coding structure (i.e. Unicode or not). The function uses 2 arguments — the string itself, and the conversion type. Choose vbProperCase to convert a string of letters to the proper case. Below is an example.

StrConv("CONVERT ME",vbProperCase)

This code returns «Convert Me» as a string.

To use StrConv with all cells in a selection or a specified range, we need to check every cell using a loop. For Each…Next loop is ideal for moving from cell to cell regardless of selection range dimensions. The idea is to apply the StrConv function to each cell value and replace it.

You can use codes in two ways:

  • Module
  • Immediate Window

In the Module method, you need to add the module into the workbook or the add-in file. Copy and paste the code into the module to run it. The main advantage of the module method is that it allows saving the code in the file, so that it can be used again later. Furthermore, the subroutines in modules can be used by icons in the menu ribbons or keyboard shortcuts. Remember to save your file in either XLSM or XLAM format to save your VBA code.

The Immediate Window method, on the other hand, is essentially a quick and dirty method where you can simply copy and paste the code into the Immediate Window and press the Enter key to run it. Unfortunately, any code you use in the Immediate Window will not be saved. Also note that icons and keyboard shortcuts will not be available.

Convert selection to proper case

Module Version:

Sub ConvertProperCaseInSelection()

  Dim rng As Range

  For Each rng In Selection

    rng.Value = StrConv(rng.Value,vbProperCase)

  Next rng

End Sub

Immediate Version:

For Each rng In Selection: rng.Value = StrConv(rng.Value,vbProperCase): Next rng

Convert a specified range to proper case

Module Version:

Sub ConvertProperCaseInRange()

  Dim rng As Range

  For Each rng In Range("B2:E11")

    rng.Value = StrConv(rng.Value,vbProperCase)

  Next rng

End Sub

Immediate Version:

For Each rng In Range("B2:E11"): rng.Value = StrConv(rng.Value,vbProperCase): Next rng

Convert entire worksheet to proper case

Module Version:

Sub ConvertProperCaseInWorksheet()

  Dim rng As Range

  For Each rng In ActiveSheet.UsedRange

   rng.Value = StrConv(rng.Value,vbProperCase)

  Next rng

End Sub

Immediate Version:

For Each rng In ActiveSheet.UsedRange: rng.Value = StrConv(rng.Value,vbProperCase): Next rng

Содержание

  1. Изменение регистра символов
  2. Пример макроса для изменения регистра текста в Excel
  3. Аннотация
  4. Дополнительная информация
  5. Макрос для преобразования всех букв в тексте в указанном диапазоне ячеек в прописные
  6. Макрос для преобразования всех букв в тексте в указанном диапазоне ячеек в строчные
  7. Макрос для преобразования в прописные только первых букв слов в тексте в указанном диапазоне ячеек
  8. Проверка макросов
  9. Ссылки
  10. Vba excel все буквы прописные
  11. Как принудительно ввести заглавные буквы в текстовое поле?
  12. Принудительно вводить прописные буквы в текстовом поле с кодом VBA
  13. Vba excel все буквы прописные
  14. Как сделать все буквы в ячейке или столбце в Excel заглавными?
  15. Vba excel все буквы прописные

Изменение регистра символов

Для изменения регистра символов предназначены следующие функции:

  • UCase( ) — заменяет все символы строки соответствующими прописными буквами. Возвращает новую строку. Пример:

Функция UCase() возвращает значение типа Variant (String) . Чтобы получить значение типа String следует использовать функцию UCase$() , имеющую тот же самый формат. Пример:

  • LCase( ) — заменяет все символы строки соответствующими строчными буквами. Возвращает новую строку. Пример:

Функция LCase() возвращает значение типа Variant (String) . Чтобы получить значение типа String следует использовать функцию LCase$() , имеющую тот же самый формат. Пример:

  • Format() — переводит все буквы в строке в верхний или нижний регистр. Подробное описание этой функции приведено в разд. 5.6. Пример:

Функция Format() возвращает значение типа Variant (String) . Чтобы получить значение типа String следует использовать функцию Format$() , имеющую тот же самый формат. Пример:

  • StrConv() — переводит все буквы в строке в верхний или нижний регистр. Позволяет также сделать первую букву каждого слова прописной, а остальные буквы строчными. Подробное описание этой функции приведено в разд. 6.8. Пример:

Статьи по Visual Basic for Applications (VBA)

Помощь сайту

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

Источник

Пример макроса для изменения регистра текста в Excel

Версия данной статьи для Microsoft Excel 2000:213649 (Эта ссылка может указывать на содержимое полностью или частично на английском языке).

Версия данной статьи для Microsoft Excel 98 и более ранних версий:141094 (Эта ссылка может указывать на содержимое полностью или частично на английском языке).

Аннотация

Хотя в Microsoft Excel имеются функции для изменения регистра текста, в некоторых случаях может потребоваться изменить регистр текста программно.

В данной статье приведены три примера макросов на языке Microsoft Visual Basic для приложений (процедуры Sub), которые можно использовать, чтобы сделать все буквы в текстовой строке прописными, строчными или сделать прописной только первую букву каждого слова. Эти действия аналогичны функциям Excel =ПРОПИСН(), =СТРОЧН() и =ПРОПНАЧ().

Дополнительная информация

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

Макрос для преобразования всех букв в тексте в указанном диапазоне ячеек в прописные

Макрос для преобразования всех букв в тексте в указанном диапазоне ячеек в строчные

Макрос для преобразования в прописные только первых букв слов в тексте в указанном диапазоне ячеек

Проверка макросов

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

В книге, в которой содержатся макросы, введите на новом листе указанные ниже данные.
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 все буквы прописные

Как принудительно ввести заглавные буквы в текстовое поле?

В Excel мы можем быстро преобразовать нижний регистр в верхний регистр в тексте ячейки с помощью функции UPPER, но пытались ли вы когда-нибудь заставить введенный текст быть в верхнем регистре в текстовом поле? В этой статье я представлю простой код для завершения этой работы.

Принудительно вводить прописные буквы в текстовом поле с кодом VBA

Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!

При принудительном вводе текста в текстовое поле в верхнем регистре следующий код VBA может оказать вам услугу:

1. Сначала вставьте текстовое поле, нажав Застройщик > Вставить > Текстовое поле (элемент управления ActiveX), а затем нарисуйте текстовое поле, как вам нужно, см. снимок экрана:

2. После вставки текстового поля щелкните его правой кнопкой мыши и выберите Просмотреть код из контекстного меню, чтобы открыть Microsoft Visual Basic для приложений окна, а затем замените исходный код следующим кодом VBA в пустой модуль:

Код VBA: переводить текст в верхний регистр в текстовое поле:

3. Затем сохраните и закройте окно кода и выйдите из Режим дизайна, теперь, когда вы вводите текст в текстовое поле, он будет принудительно вводиться в верхнем регистре, см. снимок экрана:

Источник

Vba excel все буквы прописные

Как сделать все буквы в ячейке или столбце в Excel заглавными?

Для использования заглавных букв всех букв, которые вы ввели в ячейки, вам может потребоваться повторно ввести их вручную. Во время работы это требует много времени. В этой статье мы покажем вам, как легко сделать все буквы в ячейках или столбцах Excel заглавными.

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

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

2. Введите формулу = ВЕРХНИЙ (A1) в Панель формул, затем нажмите Enter .

3. Перетащите Ручка заполнения вплоть до диапазона, в котором все буквы должны быть заглавными.

Теперь все буквы в указанных ячейках заглавные.

С легкостью сделайте весь столбец заглавным или строчным в Excel:

С помощью Kutools for Excel‘s Изменить Caes вы можете быстро изменить текстовые строки на верхний регистр, нижний регистр, правильный регистр, регистр предложений и так далее в столбце, как показано на скриншоте ниже. Скачайте и попробуйте прямо сейчас! ( 30 -дневная бесплатная трасса)

Помимо метода формулы, вы можете запустить код VBA, чтобы все буквы в диапазоне были заглавными.

1. Нажмите ALT + F11 клавиши одновременно, чтобы открыть Приложение Microsoft Visual Basic окно.

2. в Приложение Microsoft Visual Basic окна, нажмите Вставить > Модули.

3. Скопируйте и вставьте ниже код VBA в окно модуля.

Код VBA: все буквы в диапазоне должны быть заглавными.

4. В появившемся диалоговом окне выберите диапазон букв, которые нужно использовать с заглавной буквы, а затем щелкните значок OK кнопка. Смотрите скриншот:

Затем все буквы в выбранном диапазоне сразу становятся заглавными.

Здесь мы вводим Изменить регистр полезности Kutools for Excel, с помощью этой утилиты вы можете легко использовать заглавные буквы в выбранном диапазоне или во всем столбце Excel.

Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.

1. Выберите диапазон или весь столбец, в котором все буквы должны быть заглавными, и нажмите Кутулс > Текст > Изменить регистр. Смотрите скриншот:

2. в Изменить регистр в диалоговом окне выберите ВЕРХНИЙ РЕГИСТР вариант, а затем щелкните OK кнопка. Смотрите скриншот:

Теперь все буквы в выбранном диапазоне или во всем столбце будут сразу заглавными.

Если вы хотите получить бесплатную пробную версию ( 30 -день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.

Источник

Vba excel все буквы прописные

не уверен, что для русских букв есть.
для англиских есть. точно. для русских — не уверен.
Поэтому с массивами — вполне сносное решение.

у меня сейчас все элементы на английском

взять первую букву, перегнать в нужный регистр(UCase(strSelected), LCase(strSelected)) и переприсвоить. интересно даже, с кириллицей это будет пахать или нет. надо будет проверить

супер. все канает и с кириллицей и с латинскими буквами.

если кому надо, код:

s1 = UCase(Mid(Workbooks(«123_5.xlsm»).S heets(2).Cells(11 + i1, 1), 1, 1))
s2 = Workbooks(«123_5.xlsm»).Sheets(2).C ells(11 + i1, 1)
Mid(s2, 1, 1) = s1
MsgBox s2

в ячейке с позицией (11 + i1, 1) искомая текстовая величина

Текстовая функция СТРОЧН
Преобразует знаки в текстовой строке из верхнего регистра в нижний.

Текст — текст, преобразуемый в нижний регистр. Функция СТРОЧН не заменяет знаки, не являющиеся буквами.

Источник

 

obratka

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

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

#1

08.10.2015 10:27:41

Коллеги, всем привет. Прошу подсказки в написании кода, с помощью которого, первые буквы в содержащихся в определенном столбце ячейках будут заменяться на Заглавные. На форуме нашел пару веток по этому вопросу, но в предоставленные варианты не полностью подходят мне, а именно:
1. Меняются все ячейки на листе (а мне нужна определенная колонка)
2. Меняются вновь забитые слова, а те которые были введены До — не изменяются (нужно, чтобы все слова в колонке изменялись, которые были забиты до введения макроса и после)

Заранее Спасисбо!

Код
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Target.Count <> 1 Then Exit Sub
    If Target.Column <> 1 Then Exit Sub
    If Len(Target) > 0 Then
        Application.EnableEvents = False
        If Len(Target) > 33 Then Target.Offset(0, 1) = Right(Target, Len(Target) - 33)
        Target = UCase(Left(Target, 1)) & Mid(Target, 2, 32)
        Application.EnableEvents = True
    End If
End Sub

 

Апострофф

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

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

#2

08.10.2015 10:45:40

Цитата
obratka написал:
Меняются все ячейки на листе (а мне нужна определенная колонка)

?В вашем примере обрабатывается первый столбец, а не все ячейки.

Цитата
obratka написал:
нужно, чтобы все слова в колонке изменялись, которые были забиты до введения макроса

Сделайте подобный макрос на событие открытия книги или что-то подобное, дабы не вешать систему.

 

obratka

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

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

Дело в том, что я в макросах очень слаб и как изменить эти условия не знаю.
Поэтому и обращаюсь на форум

 

Sanja

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

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

#4

08.10.2015 21:05:14

Цитата
obratka написал: (а мне нужна определенная колонка)

Какая конкретно?

Согласие есть продукт при полном непротивлении сторон.

 

VwwV

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

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

#5

08.10.2015 22:42:21

obratka, добрый день!
так как вы не указали конкретную область для работы макроса, пока есть только такой код:

Скрытый текст

если нужно указать в самом коде конкретный столбец, то замените Selection на Range(«:») (между скобками поставьте нужную вам область)

Изменено: VwwV08.10.2015 22:53:18

 

sv2013

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

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

#6

09.10.2015 00:08:22

добрый вечер,примените например функцию

Код
Function uu$(st$)
   uu = UCase(Left(st, 1)) & Mid(st, 2)
End Function

Прикрепленные файлы

  • example_8_10_2015_99.xls (31 КБ)

 

sv2013

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

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

#7

09.10.2015 06:03:00

Добрый день,попробуйте такой макрос,если Ваш столбец,например A.

Код
Sub replica()
   Dim r1 As Range
     For Each r1 In Intersect(ActiveSheet.UsedRange, Columns("A"))
       r1 = UCase(Left(r1, 1)) & Mid(r1, 2)
     Next
End Sub

Понравилась статья? Поделить с друзьями:
  • Excel vba продолжение строки
  • Excel vba прогресс бар
  • Excel vba проверка ячейки на число
  • Excel vba проверка файла на открытие
  • Excel vba проверка строки на пустоту