Версия данной статьи для 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 для приложений (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
Нужна дополнительная помощь?
Содержание
- Трансформация строчных символов в прописные
- Способ 1: функция ПРОПИСН
- Способ 2: применение макроса
- Вопросы и ответы
В некоторых ситуациях весь текст в документах Excel требуется писать в верхнем регистре, то есть, с заглавной буквы. Довольно часто, например, это нужно при подаче заявлений или деклараций в различные государственные органы. Чтобы написать текст большими буквами на клавиатуре существует кнопка Caps Lock. При её нажатии запускается режим, при котором все введенные буквы будут заглавными или, как говорят по-другому, прописными.
Но, что делать, если пользователь забыл переключиться в верхний регистр или узнал о том, что буквы нужно было сделать в тексте большими лишь после его написания? Неужели придется переписывать все заново? Не обязательно. В Экселе существует возможность решить данную проблему гораздо быстрее и проще. Давайте разберемся, как это сделать.
Читайте также: Как в Ворде сделать текст заглавными буквами
Трансформация строчных символов в прописные
Если в программе Word для преобразования букв в заглавные (прописные) достаточно выделить нужный текст, зажать кнопку SHIFT и дважды кликнуть по функциональной клавише F3, то в Excel так просто решить проблему не получится. Для того, чтобы преобразовать строчные буквы в заглавные, придется использовать специальную функцию, которая называется ПРОПИСН, или воспользоваться макросом.
Способ 1: функция ПРОПИСН
Сначала давайте рассмотрим работу оператора ПРОПИСН. Из названия сразу понятно, что его главной целью является преобразование букв в тексте в прописной формат. Функция ПРОПИСН относится к категории текстовых операторов Excel. Её синтаксис довольно прост и выглядит следующим образом:
=ПРОПИСН(текст)
Как видим, оператор имеет всего один аргумент – «Текст». Данный аргумент может являться текстовым выражением или, что чаще, ссылкой на ячейку, в которой содержится текст. Данный текст эта формула и преобразует в запись в верхнем регистре.
Теперь давайте на конкретном примере разберемся, как работает оператор ПРОПИСН. У нас имеется таблица с ФИО работников предприятия. Фамилия записана в обычном стиле, то есть, первая буква заглавная, а остальные строчные. Ставится задача все буквы сделать прописными (заглавными).
- Выделяем любую пустую ячейку на листе. Но более удобно, если она будет располагаться в параллельном столбце тому, в котором записаны фамилии. Далее щелкаем по кнопке «Вставить функцию», которая размещена слева от строки формул.
- Запускается окошко Мастера функций. Перемещаемся в категорию «Текстовые». Находим и выделяем наименование ПРОПИСН, а затем жмем на кнопку «OK».
- Происходит активация окна аргументов оператора ПРОПИСН. Как видим, в этом окне всего одно поле, которое соответствует единственному аргументу функции – «Текст». Нам нужно в это поле ввести адрес первой ячейки в столбце с фамилиями работников. Это можно сделать вручную. Вбив с клавиатуры туда координаты. Существует также и второй вариант, который более удобен. Устанавливаем курсор в поле «Текст», а потом кликаем по той ячейке таблицы, в которой размещена первая фамилия работника. Как видим, адрес после этого отображается в поле. Теперь нам остается сделать последний штрих в данном окне – нажать на кнопку «OK».
- После этого действия содержимое первой ячейки столбца с фамилиями выводится в предварительно выделенный элемент, в котором содержится формула ПРОПИСН. Но, как видим, все отображаемые в данной ячейке слова состоят исключительно из заглавных букв.
- Теперь нам нужно произвести преобразование и для всех других ячеек столбца с фамилиями работников. Естественно, мы не будем для каждого сотрудника применять отдельную формулу, а просто скопируем уже существующую при помощи маркера заполнения. Для этого ставим курсор в нижний правый угол элемента листа, в котором содержится формула. После этого курсор должен преобразоваться в маркер заполнения, который выглядит как небольшой крестик. Производим зажим левой кнопки мыши и тянем маркер заполнения на количество ячеек равное их числу в столбце с фамилиями сотрудников предприятия.
- Как видим, после указанного действия все фамилии были выведены в диапазон копирования и при этом они состоят исключительно из заглавных букв.
- Но теперь все значения в нужном нам регистре расположены за пределами таблицы. Нам же нужно вставить их в таблицу. Для этого выделяем все ячейки, которые заполнены формулами ПРОПИСН. После этого кликаем по выделению правой кнопкой мыши. В открывшемся контекстном меню выбираем пункт «Копировать».
- После этого выделяем столбец с ФИО сотрудников предприятия в таблице. Кликаем по выделенному столбцу правой кнопкой мыши. Запускается контекстное меню. В блоке «Параметры вставки» выбираем пиктограмму «Значения», которая отображена в виде квадрата, содержащего цифры.
- После этого действия, как видим, преобразованный вариант написания фамилий заглавными буквами будет вставлен в исходную таблицу. Теперь можно удалить диапазон, заполненный формулами, так как он нам больше не нужен. Выделяем его и кликаем правой кнопкой мыши. В контекстном меню выбираем пункт «Очистить содержимое».
После этого работу над таблицей по преобразованию букв в фамилиях сотрудников в прописные можно считать завершенной.
Урок: Мастер функций в Экселе
Способ 2: применение макроса
Решить поставленную задачу по преобразованию строчных букв в прописные в Excel можно также при помощи макроса. Но прежде, если в вашей версии программы не включена работа с макросами, нужно активировать эту функцию.
- После того, как вы активировали работу макросов, выделяем диапазон, в котором нужно трансформировать буквы в верхний регистр. Затем набираем сочетание клавиш Alt+F11.
- Запускается окно Microsoft Visual Basic. Это, собственно, редактор макросов. Набираем комбинацию Ctrl+G. Как видим, после этого курсор перемещается в нижнее поле.
- Вводим в это поле следующий код:
for each c in selection:c.value=ucase(c):next
Затем жмем на клавишу ENTER и закрываем окно Visual Basic стандартным способом, то есть, нажав на кнопку закрытия в виде крестика в его правом верхнем углу.
- Как видим, после выполнения вышеуказанных манипуляций, данные в выделенном диапазоне преобразованы. Теперь они полностью состоят из прописных букв.
Урок: Как создать макрос в Excel
Для того, чтобы сравнительно быстро преобразовать все буквы в тексте из строчных в прописные, а не терять время на его ручное введение заново с клавиатуры, в 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 в следующей статье.
В этой статье я хочу рассказать Вам о нескольких способах как изменить регистр символов в Excel с верхнего на нижний или как сделать каждое слово с прописной буквы. Вы научитесь справляться с такими задачами при помощи функций ПРОПИСН и СТРОЧН, при помощи макросов VBA, а также используя Microsoft Word.
Проблема в том, что в Excel не предусмотрен специальный инструмент для изменения регистра текста на рабочем листе. Остаётся загадкой, почему корпорация Microsoft снабдила Word такой мощной функцией и не добавила её в Excel. Это упростило бы решение многих задач для большинства пользователей. Но не торопитесь лихорадочно перенабирать вручную все текстовые данные Вашей таблицы! К счастью, есть несколько хороших способов преобразовать текстовые значения в ячейках в верхний или нижний регистр, или же сделать каждое слово с прописной буквы. Позвольте мне поделиться с Вами этими способами.
- Функции Excel для изменения регистра текста
- Изменение регистра текста при помощи Microsoft Word
- Изменяем регистр при помощи макроса VBA
Содержание
- Функции Excel для изменения регистра текста
- Вводим формулу в Excel
- Копируем формулу вниз по столбцу
- Удаляем вспомогательный столбец
- Изменяем регистр текста в Excel при помощи Microsoft Word
- Изменяем регистр текста при помощи макроса VBA
Функции Excel для изменения регистра текста
В Microsoft Excel есть три замечательных функции, при помощи которых Вы можете изменять регистр текста. Это UPPER (ПРОПИСН), LOWER (СТРОЧН) и PROPER (ПРОПНАЧ).
- Функция UPPER (ПРОПИСН) преобразовывает все символы нижнего регистра в верхний регистр.
- Функция LOWER (СТРОЧН) делает все прописные буквы строчными.
- Функция PROPER (ПРОПНАЧ) делает в каждом слове первую букву прописной, а все остальные – строчными.
Все эти три функции работают по одинаковому принципу, поэтому я покажу Вам, как работает одна из них. Давайте в качестве примера рассмотрим функцию UPPER (ПРОПИСН):
Вводим формулу в Excel
- Вставьте новый (вспомогательный) столбец рядом с тем, в котором содержится текст, который Вы хотите преобразовать.
Замечание: Этот шаг не обязателен. Если таблица не большая, Вы можете просто использовать любой смежный пустой столбец.
- Введите знак равенства (=) и имя функции UPPER (ПРОПИСН) в смежную ячейку нового столбца (B3).
- В скобках после имени функции введите соответствующую ссылку на ячейку (C3). Ваша формула должна выглядеть вот так:
=UPPER(C3)
=ПРОПИСН(C3)
где C3 – это ячейка с текстом, который нужно преобразовать.
- Нажмите Enter.На рисунке выше видно, что в ячейке B3 содержится текст точно такой же, как в C3, только прописными буквами.
Копируем формулу вниз по столбцу
Теперь Вам нужно скопировать формулу в остальные ячейки вспомогательного столбца:
- Выделите ячейку с формулой.
- Наведите указатель мыши на маленький квадрат (маркер автозаполнения) в нижнем правом углу выделенной ячейки, чтобы указатель превратился в маленький черный крест.
- Нажмите и, удерживая левую кнопку мыши, протяните формулу вниз по всем ячейкам, в которые нужно её скопировать.
- Отпустите кнопку мыши.
Замечание: Если Вам нужно полностью заполнить новый столбец (на всю высоту таблицы), то Вы можете пропустить шаги 5-7 и просто дважды кликнуть по маркеру автозаполнения.
Удаляем вспомогательный столбец
Итак, у Вас есть два столбца с одинаковыми текстовыми данными, отличающимися только регистром. Предполагаю, что Вы хотите оставить столбец только с нужным вариантом. Давайте скопируем значения из вспомогательного столбца и избавимся от него.
- Выделите ячейки, содержащие формулу, и нажмите Ctrl+C, чтобы скопировать их.
- Кликните правой кнопкой мыши по первой ячейке исходного столбца.
- В контекстном меню в разделе Paste Options (Параметры вставки) выберите Values (Значения).Поскольку нам нужны только текстовые значения, мы выберем именно этот вариант, чтобы в будущем избежать ошибок в формулах.
- Кликните правой кнопкой мыши по любой ячейке вспомогательного столбца и в контекстном меню выберите команду Delete (Удалить).
- В диалоговом окне Delete (Удаление ячеек) выберите вариант Entire column (Столбец) и нажмите ОК.
Готово!
В теории это может показаться слишком сложным. Расслабьтесь и попробуйте проделать все эти шаги самостоятельно. Вы увидите, что изменение регистра при помощи функций Excel – это совсем не трудно.
Изменяем регистр текста в Excel при помощи Microsoft Word
Если Вы не хотите возиться с формулами в Excel, Вы можете изменить регистр в Word. Далее Вы узнаете, как работает этот метод:
- Выделите диапазон на листе Excel, в котором необходимо изменить регистр текста.
- Нажмите Ctrl+C или кликните правой кнопкой мыши и в контекстном меню выберите команду Copy (Копировать).
- Создайте новый документ Word.
- Нажмите Ctrl+V или щелкните правой кнопкой мыши по пустой странице и в контекстном меню выберите команду Paste (Вставить). Таблица Excel будет скопирована в Word.
- Выделите текст, у которого нужно изменить регистр.
- На вкладке Home (Главная) в разделе Font (Шрифт) нажмите иконку Change Case (Регистр).
- В раскрывающемся списке выберите один из 5 вариантов регистра.
Замечание: Кроме этого, Вы можете нажимать сочетание Shift+F3, пока не будет установлен нужный стиль. При помощи этих клавиш можно выбрать только верхний и нижний регистр, а также регистр как в предложениях.
Теперь у Вас есть таблица в Word с изменённым регистром текста. Просто скопируйте её и вставьте на прежнее место в Excel.
Изменяем регистр текста при помощи макроса VBA
Вы также можете использовать макросы VBA в Excel 2010 и 2013. Не переживайте, если Ваши знания VBA оставляют желать лучшего. Какое-то время назад я тоже мало что знал об этом, а теперь могу поделиться тремя простыми макросами, которые изменяют регистр текста на верхний, нижний или делают каждое слово с прописной буквы.
Я не буду отвлекаться от темы и рассказывать Вам, как вставить и запустить код VBA в Excel, поскольку об этом замечательно рассказано в других статьях нашего сайта. Я просто покажу макросы, которые Вы можете скопировать и вставить в свою книгу.
- Если Вы хотите преобразовать текст в верхний регистр, используйте следующий макрос VBA:
Sub Uppercase() For Each Cell In Selection If Not Cell.HasFormula Then Cell.Value = UCase(Cell.Value) End If Next Cell End Sub
- Чтобы применить нижний регистр к своим данным, используйте код, показанный ниже:
Sub Lowercase() For Each Cell In Selection If Not Cell.HasFormula Then Cell.Value = LCase(Cell.Value) End If Next Cell End Sub
- Вот такой макрос сделает все слова в тексте, начинающимися с большой буквы:
Sub Propercase() For Each Cell In Selection If Not Cell.HasFormula Then Cell.Value = _ Application _ .WorksheetFunction _ .Proper(Cell.Value) End If Next Cell End Sub
Я надеюсь, что теперь, когда Вы знаете пару отличных приёмов изменения регистра в Excel, эта задача не вызовет у Вас затруднений. Функции Excel, Microsoft Word, макросы VBA – всегда к Вашим услугам. Вам осталось сделать совсем немного – определиться, какой из этих инструментов Вам больше нравится.
Оцените качество статьи. Нам важно ваше мнение:
Во время работы в Эксель нередко возникает потребность напечатать весь текст заглавными буквами. Это может потребоваться, к примеру, при заполнении различных заявлений и прочих официальных бумаг для подачи в государственные учреждения. Наверняка, многие могут подумать – что же в этом сложного и непонятного? Ведь каждый пользователь ПК знает, что для этого требуется лишь нажать Caps Lock на клавиатуре, после чего вся информация будет набираться заглавными буквами.
Да, это совершенно верно, и достаточно одного нажатия на клавишу Caps Lock в данном случае. Но как быть в ситуации когда документ уже содержит текст, напечатанный обычными буквами? В начале работы пользователь не всегда задумывается о том, в каком виде должен быть представлен финальный текст, и зачастую начинает его форматирование уже после ввода информации. Не перепечатывать же текст заново?
В такой ситуации паниковать не стоит, и, тем более, перепечатывать все заново, так как есть инструменты, помогающие быстро решить эту проблему. Давайте разберем все возможные способы замены всех букв в заглавные в Excel.
Содержание
- Замена строчных букв на заглавные
- Метод 1: применение оператора ПРОПИСН
- Метод 2: использование макроса
- Заключение
Замена строчных букв на заглавные
При работе с текстовым редактором Word поставленная задача выполняется буквально в один клик. Нужно лишь отметить необходимый фрагмент текста, затем, зажав на клавиатуре клавишу SHIFT, два раза нажать на функциональную клавишу F3. При работе же с таблицами Эксель все несколько сложнее. Для выполнения данной задачи потребуется задействовать функцию ПРОПИСН, либо применить макрос. Ниже мы рассмотрим оба этих способа на практическом примере.
Метод 1: применение оператора ПРОПИСН
Главной задачей данной функции является замена строчных букв на заглавные. Формула функции пишется так:
=ПРОПИСН(Текст)
В качестве значения единственного аргумента “Текст” можно указать:
- непосредственно, сам текст для выполнения замены букв;
- адрес ячейки с данными, которые должны быть преобразованы.
Итак, давайте разберем работу функции на практике. Для этого возьмем таблицу, в которой указаны наименования товаров, в которых заглавная буква только одна – первая. Остальная же часть текста представлена в виде строчных букв. Нам нужно превратить все буквы в заглавные.
Итак, вот что нам нужно сделать:
- Выбираем место в таблице для ввода формулы функции (любая свободная ячейка). Для удобства и наглядности лучше выбрать для этого свободную ячейку в отдельном столбце таким образом, чтобы она была в той же строке, что и ячейка, данные которой мы хотим преобразовать. После того, как мы определились с выбором, отмечаем ячейку и щелкаем по инструменту “Вставить функцию”.
- В открывшемся окне Мастера функций щелкаем по текущей категории и в раскрывшемся перечне выбираем “Текстовые”.
- В доступном перечне операторов выбранной категории выбираем функцию ПРОПИСН и щелкаем OK.
- Откроется окно с настройками функции. В поле “Текст” указываем адрес ячейки, содержащей наименование товара для преобразования. Его можно прописать вручную. Но есть и другой, более удобный способ – кликаем по области ввода данных, затем – по нужной ячейке. Далее щелкаем OK.
- Таким образом, текстовое значение из заданной ячейки будет преобразовано и представлено исключительно в виде заглавных букв, чего мы и добивались.
- Теперь остается только применить данную функцию ко всем ячейкам столбца, куда мы хотим вывести наименования с заглавными буквами. Для этого ставим курсор мыши на правый нижний угол ячейки с результатом (при этом курсор мыши должен принять форму крестика). Затем растягиваем формулу вниз, зажав при этом левую кнопку мыши.
- В результате мы получим столбец с наименованиями, прописанными полностью заглавными буквами.
- Итак, теперь у нас есть две колонки с наименованиями: одна написана в обычном стиле, а вторая полностью состоит из заглавных букв. Наша же задача состояла в замене первого варианта вторым. Поэтому проделаем еще несколько манипуляций. Выделяем мышью колонку с наименованиями, представленными заглавными буквами. Затем вызываем контекстное меню кликом по выделенному диапазону правой кнопкой мыши, и из перечня команд щелкаем по строке “Копировать” (или можно использовать для копирования сочетание клавиш Ctrl+C).
- Затем выделяем первый столбец, значения которого требуется заменить (область выделения должна содержать столько же строк, что и та, которую мы скопировали). Опять вызываем контекстное меню щелчком правой кнопки мыши по выделенной области. В появившемся списке кликаем в разделе “Параметры вставки” по варианту “Значения”.
- Наименования исходного столбца будут заменены данными из столбца с формулой (т.е. все наименования отображаются исключительно заглавными буквами). Остается только убрать вспомогательную колонку, содержащую ячейки с формулой. Для этого выделяем ее щелчком правой кнопкой мыши по названию столбца и в открывшемся перечне щелкаем по команде “Удалить”.
- Готово, мы успешно справились с поставленной задачей.
Метод 2: использование макроса
Внимание! Для использования этого метода необходимо убедиться, что у вас активирована функция макросов. Если нет, то ее требуется включить. О том, как это сделать, читайте в нашей статье – “Как включить/отключить макросы в Excel“.
- Убедившись в том, что использование макросов активировано, выделяем область таблицы, текст которой требуется преобразовать. После этого нажимаем на клавиатуре комбинацию клавиш Alt+F11.
- Перед нами появится редактор макросов, находясь в котором мы нажимаем сочетание Ctrl+G. Курсор мыши при этом должен переместиться в поле “Immediate”, которое до этого действия, скорее всего, было закрыто.
- В данной области пишем следующее:
for each c in selection:c.value=ucase(c):next
.
Затем подтверждаем действие нажатием клавиши ENTER и выходим из редактора макросов. - В итоге все буквы в отмеченном диапазоне ячеек заменятся на заглавные согласно поставленной задаче.
Заключение
Мы только что познакомились с двумя методами преобразования строчных букв в заглавные в таблицах Эксель. Многим пользователям второй способ (использование макросов) может показаться намного быстрее и проще. Однако применение оператора ПРОПИСН – безопаснее, так как включение макросов делает ПК мене защищенным перед потенциально возможными хакерскими атаками. Каким способом пользоваться каждый решает для себя сам. Но независимо от выбора, конечный результат в обоих описанных выше методах будет идентичен.
sotnik Пользователь Сообщений: 34 |
Добрый день. Есть диапазон A1:A10 с текстом, написанным строчными буквами. Нужно написать макрос, который преобразует эти прописные буквы в заглавные. |
vikttur Пользователь Сообщений: 47199 |
Буквы все или только первые в словах? Если возможны предложения — первые в предложениях? |
Hugo Пользователь Сообщений: 23253 |
Без цикла не получилось… Sub tt() |
sotnik Пользователь Сообщений: 34 |
|
sotnik Пользователь Сообщений: 34 |
но только не в автоматическом режиме, каждый раз надо включать, чтобы буквы стали заглавные. Можно его как-нибуть автоматизировать? |
Hugo Пользователь Сообщений: 23253 |
|
sotnik Пользователь Сообщений: 34 |
{quote}{login=vikttur}{date=20.03.2012 03:09}{thema=}{post}Буквы все или только первые в словах? Если возможны предложения — первые в предложениях? Все буквы, желательно макрос, но чтобы он работал в автоматическом режиме. |
sotnik Пользователь Сообщений: 34 |
{quote}{login=Hugo}{date=20.03.2012 03:34}{thema=}{post}Как бы Вам хотелось? :){/post}{/quote} мне хотелось бы, чтобы я писал в ячейках A1:A10 строчными буквами, а они автоматически преобразовались в заглавные. |
Hugo Пользователь Сообщений: 23253 |
#9 20.03.2012 15:49:11 Private Sub Worksheet_Change(ByVal Target As Range) Код в модуль соответствующего листа. |
Проблема в том, что Excel не предоставляет специального инструмента для изменения регистра текста на листе. Остается загадкой, почему Microsoft предоставила Word такие мощные функции, а не добавила их в Excel. Это упростило бы многие задачи для большинства пользователей. Но не спешите лихорадочно набирать вручную все текстовые данные в электронной таблице! К счастью, есть несколько хороших способов преобразовать текстовые значения в ячейках в верхний или нижний регистр или использовать каждое слово с большой буквы. Позвольте мне поделиться с вами этими способами.
- Функции Excel для изменения регистра текста
- Сделать текст заглавными с помощью Microsoft Word
- Изменить регистр с помощью макроса VBA
В Microsoft Excel есть три отличные функции, с помощью которых вы можете изменить регистр текста. Это ВЕРХ, ВНИЗ и ПРАВИЛЬНО).
- Функция ВЕРХНИЙ преобразует все строчные буквы в прописные.
- Функция LOWER переводит все прописные буквы в нижний регистр.
- Функция ПРОПИСН переводит первую букву каждого слова в верхний регистр, а остальные в нижний.
Все три функции работают одинаково, поэтому я покажу вам, как работает одна из них. Возьмем для примера функцию UPPER):
Вводим формулу в Excel
- Вставьте новый столбец (помощник) рядом с тем, который содержит текст, который вы хотите преобразовать.
Примечание. Этот шаг не является обязательным. Если таблица небольшая, вы можете просто использовать любой соседний пустой столбец.
- Введите знак равенства (=) и имя ВЕРХНЕЙ функции в соседнюю ячейку нового столбца (B3).
- В скобках после имени функции введите соответствующую ссылку на ячейку (C3). Ваша формула должна выглядеть так:
= ВЕРХНИЙ (C3)
= ВЕРХНИЙ (C3)где C3 — это ячейка с текстом, который нужно преобразовать.
- Нажмите Enter.На изображении выше вы можете видеть, что ячейка B3 содержит тот же текст, что и C3, только заглавными буквами.
Копируем формулу вниз по столбцу
Теперь вам нужно скопировать формулу в остальную часть вспомогательного столбца:
- Выделите ячейку с формулой.
- Наведите указатель мыши на маленький квадрат (индикатор автозаполнения) в правом нижнем углу выбранной ячейки, чтобы указатель превратился в маленький черный крестик.
- Удерживая левую кнопку мыши, перетащите формулу вниз ко всем ячейкам, в которые вы хотите ее скопировать.
- Отпустите кнопку мыши.
Примечание. Если вам нужно полностью заполнить новый столбец (до полной высоты таблицы), вы можете пропустить шаги 5-7 и просто дважды щелкнуть маркер автозаполнения.
Удаляем вспомогательный столбец
Итак, у вас есть два столбца с одинаковыми текстовыми данными, которые отличаются только регистром. Я предполагаю, что вы просто хотите оставить столбец с нужной опцией. Скопируем значения из вспомогательного столбца и избавимся от него.
- Выделите ячейки, содержащие формулу, и нажмите Ctrl + C, чтобы скопировать их.
- Щелкните правой кнопкой мыши первую ячейку исходного столбца.
- В контекстном меню в разделе «Параметры вставки» выберите «Значения).Поскольку нам нужны только текстовые значения, мы выберем этот вариант, чтобы избежать ошибок в формулах в будущем.
- Щелкните правой кнопкой мыши любую ячейку вспомогательного столбца и выберите команду Удалить из контекстного меню).
- В диалоговом окне «Удалить» выберите «Весь столбец» и нажмите «ОК.
Готовый!
Теоретически это может показаться слишком сложным. Расслабьтесь и попробуйте все эти шаги самостоятельно. Вы увидите, что переключение кейсов с помощью функций Excel совсем не сложно.
Изменяем регистр текста в Excel при помощи Microsoft Word
Если вы не хотите возиться с формулами Excel, вы можете изменить регистр в Word. Вот как работает этот метод:
- Выберите диапазон на листе Excel, в котором вы хотите изменить регистр текста.
- Нажмите Ctrl + C или щелкните правой кнопкой мыши и выберите команду Копировать из контекстного меню).
- Создайте новый документ Word.
- Нажмите Ctrl + V или щелкните правой кнопкой мыши пустую страницу и выберите «Вставить» в контекстном меню. Таблица Excel будет скопирована в Word.
- Выделите текст, регистр которого вы хотите изменить.
- На вкладке «Главная» в разделе «Шрифт» щелкните значок «Изменить регистр).
- В раскрывающемся списке выберите один из 5 вариантов случая.
Примечание. Вы также можете нажимать Shift + F3, пока не будет установлен нужный стиль. С помощью этих клавиш вы можете выбирать только прописные и строчные буквы, а также прописные и строчные буквы, как в предложениях.
Теперь у вас есть таблица в Word с измененным текстом, написанным с заглавной буквы. Просто скопируйте и вставьте обратно в Excel.
Изменяем регистр текста при помощи макроса VBA
Вы также можете использовать макросы VBA в Excel 2010 и 2013. Не волнуйтесь, если ваши знания VBA оставляют желать лучшего. Некоторое время назад я тоже мало знал об этом, но теперь я могу поделиться тремя простыми макросами, которые изменяют верхний, нижний или верхний регистр каждого слова.
Не буду отвлекаться на эту тему и расскажу, как вставить и запустить код VBA в Excel, так как это хорошо описано в других статьях на нашем сайте. Я покажу вам только макросы, которые вы можете скопировать и вставить в свою книгу.
- Если вы хотите преобразовать текст в верхний регистр, используйте следующий макрос VBA:
Sub Верхний регистр () для каждой ячейки в выбранном Если не Cell.HasFormula Then Cell.Value = UCase (Cell.Value) End If Next Cell End Sub
- Чтобы строчные буквы ваши данные, используйте код, показанный ниже:
Нижний регистр Sub () Для каждой ячейки в выделенном фрагменте Если не Cell.HasFormula Then Cell.Value = LCase (Cell.Value) End If Next Cell End Sub
- Такой макрос будет начинать все слова в тексте с заглавной буквы:
Sub Propercase () для каждой ячейки в выделении Если не Cell.HasFormula Then Cell.Value = _ Application _ .WorksheetFunction _ .Proper (Cell.Value) End If Next Cell End Sub
Надеюсь, теперь, когда вы знаете пару отличных приемов, позволяющих изменить регистр в Excel, эта задача не доставит вам никаких проблем. Функции Excel, Microsoft Word, макросы VBA всегда к вашим услугам. Осталось совсем немного — решить, какой из этих инструментов вам больше нравится.
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
На чтение 2 мин. Просмотров 30.4k. Опубликовано 04.06.2014
Одной из самых используемых функций при работе с любым текстом является изменение регистра букв в слове. В программе Word это легко можно сделать с помощью горячих клавиш Shift+F3. Однако такой, на первый взгляд, полезной функции нельзя найти в Excel. И совершенно непонятно, почему уже в стольких версиях Excel нет подобной функциональности.
Для решения этой проблемы можно воспользоваться следующими способами:
- Установка дополнительных надстроек (Add-ins) для Excel
- Создание макроса по изменению регистра текста и установка в личную книгу макросов
- Использование встроенных текстовых формул
Содержание
- Надстройки для Excel
- Создание и установка макроса в личную книгу
- Использование встроенных формул
Надстройки для Excel
Самое простое это, конечно, установить надстройку для Excel, например ASAP Utilities. Здоровым плюсом является наличие бесплатной лицензии для установки дома.
Среди многих функций есть нужные нам для работы с текстом
Создание и установка макроса в личную книгу
На мой взгляд, оптимальным для работы является второй способ.
Для начала нужно открыть личную книгу макросов, так как по умолчанию ее нет. Для этого нужно нажать на запись макросов
После выбрать место сохранения нового макроса
Сразу можно выключить запись макроса, ведь все действие затевалось ради того, чтобы excel подгрузил файл PERSONAL.XLSB
После этого идем в редактор макросов (Alt+F11) (по умолчанию, можно воспользоваться панелью Разработчик, которое спрятано — чтобы открыть, надо зайти в Настройки — Основные — Показывать вкладку «Разработчик»)
и в Module1 нужно записать следующее
Sub СделатьПрописными() For Each cel In Selection.Cells If cel.Text <> «» Then cel.Value = StrConv(cel.Text, vbUpperCase) Next End Sub Sub СделатьСтрочными() For Each cel In Selection.Cells If cel.Text <> «» Then cel.Value = StrConv(cel.Text, vbLowerCase) Next End Sub Sub СделатьПрописнойТолькоПервуюБукву() For Each cel In Selection.Cells If cel.Text <> «» Then cel.Value = StrConv(cel.Text, vbProperCase) Next End Sub |
Примерно должно получится следующее
После этого в меню макросов (Alt+F8) будет доступны нужные макросы
И как результат
Макросы в текстовых файлах для скачки
Macros1.txt
Macros2.txt
Использование встроенных формул
Использование встроенных формул больше подходит для показательного примера работы. И виной тому тот факт, что для встроенной формулы нужно обязательно создать новый столбец, это бывает неудобно. Хорошо бы, если Excel мог выполнять встроенные функции на ходу, только со столбцом-объектом.
Для преобразования в прописные нужно использовать функцию =ПРОПИСН(текст), для преобразования в строчные — функцию =СТРОЧН(текст)
Для того, чтобы сделать только первую букву заглавной, а все остальные строчными, нужно использовать более сложную формулу
=ПРОПИСН(ПСТР(C1;1;1))&СТРОЧН(ПСТР(C1;2;ДЛСТР(C1)—1)) |
Пример файла Excel
Всем удобной работы с текстом…