Имитация строчных букв в Excel (Microsoft Excel)
Конрад хотел бы имитировать «маленькие заглавные буквы» Word в Excel. Единственный способ, которым он может это сделать, — это разработать макрос, который проходит через каждого символа в ячейке. Если символ в нижнем регистре и 11 пунктов, то макрос должен изменить символ на верхний регистр 9 пунктов.
Если символ в верхнем регистре (или не буква), это не должно быть затронуто. Проблема в том, что Конрад не знает, как повлиять на форматирование отдельных символов в ячейке описанным образом.
При использовании макроса для воздействия только на определенные символы в ячейке, хорошо помнить, что каждая ячейка имеет свою собственную коллекцию символов, к которой можно получить доступ и изменить. Каждый элемент в коллекции представляет, как и следовало ожидать, один символ в ячейке.
Это позволяет нам составить макрос, который проверяет, что в данный момент находится в ячейке, и если символ в настоящий момент находится в нижнем регистре, преобразовать только этот символ в верхний регистр и уменьшить размер шрифта этого символа.
Sub SmallCaps() Dim rCell As Range Dim sWords As String Dim sCharacter As String Dim x As Long 'go through each cell in selection For Each rCell In Selection 'Don't want to work on formulas If Not rCell.HasFormula Then sWords = rCell.Value 'Get the cell contents For x = 1 To Len(sWords) 'Act on each letter sCharacter = Mid(sWords, x, 1) If sCharacter >= "a" And sCharacter <= "z" Then 'sCharacter is a lowercase letter With rCell.Characters(Start:=x, Length:=1) 'Decrease the font size by 2 .Font.Size = .Font.Size - 2 'Make character uppercase .Text = UCase(sCharacter) End With End If Next End If Next End Sub
Этот макрос выполняет свою работу с любыми ячейками, выбранными при запуске.
Он проверяет, не содержит ли ячейка формулы (формулы пропускаются), а затем вносит какие-либо изменения в символы нижнего регистра в ячейке.
У использования такого макроса есть недостатки, и вы должны о них знать. Самый большой недостаток в том, что он фактически изменяет то, что находится в ячейках. Когда это будет сделано, ячейки будут содержать весь текст в верхнем регистре, даже если форматирование может сделать его похожим на маленькие заглавные буквы. Это означает, что у вас могут возникнуть проблемы при последующем запуске макроса во второй раз, а инструменты проверки правописания Excel (например, проверка орфографии) не будут работать со словами, написанными заглавными буквами. (Однако Excel можно настроить на проверку правописания в таких словах.)
Из-за недостатков вы можете использовать совершенно другой подход — изменить шрифт, который вы используете для ячеек, в которых вы хотите использовать маленькие заглавные буквы. Если вы поищете в Интернете «шрифты с заглавными буквами» (без кавычек), вы сможете найти много кандидатов, и значительное количество из них доступны бесплатно. Вот один сайт, на котором может быть что-то, что вам понравится:
https://www.fontsquirrel.com/fonts/list/tag/small%20caps
Просто скачайте нужный шрифт (из этого или любого другого авторитетного источника) и установите его в своей системе. При перезапуске Excel шрифт должен быть доступен для форматирования ячеек. В ячейках, отформатированных для использования такого шрифта, текст будет отображаться в виде маленьких заглавных букв, даже если фактическое содержимое ячейки представляет собой смесь заглавных и строчных букв.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (653) применим к Microsoft Excel 2007, 2010, 2013 и 2016.