Remkomplekty.ru

IT Новости из мира ПК
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Vba excel жирный шрифт

Vba excel жирный шрифт

И вставка в текст HTML-тегов.

Преамбула
Да, мне нравится 2003 MS Word, и на мой взгляд, текстового редактора лучше пока еще никто не написал. Я делал все нижеследующее для себя, но возможно, материал будет полезен изучающим VBA. Особенно если у них возникают вопросы, как найти текст, выделенный жирным, курсивом, или там определенным шрифтом.
Так вот. Написал я в Word’е заметку про какой-нибудь скрипт, красиво оформил, код выделен Курьером, заголовки отцентрованы, важные места выделены жирным, пункты меню указаны курсивом, ну и так далее. Теперь нужно текст переложить в уютненький бложег, да так, чтобы сохранить форматирование вставить куда надо нужные теги.
Встроенное сохранение в формате HTML вставляет много лишних тегов, добавлять нужные теги руками – лишняя работа, а я ленивый. Что же делать? У нас есть VBA, который все сам за нас сделает.

Поиск нужной информации в тексте
VBA умеет обращаться к внутренней функции поиска Office, а функция эта умеет искать текст не только по ключевому слову, шаблону, но и находить текст с определенным форматированием.

Найдем, например, первое вхождение текста, который выделен жирным:

Этот фрагмент кода, будучи вставлен в исполнимый макрос найдет первое вхождение текста выделенного жирным

Найдем текст, выделенный определенным шрифтом, например Courier New

Или текст, который расположен по центру:


Ищем нужное
Нашли, и вроде бы все просто – бери Selecton.Text и присваивай ему значение «открывающий_тег»+Selection.Text+»закрыв ающий_тег» , да не тут-то было. Во-первых, Selection.Find.Execute имеет дурацкое свойство искать не кусок текста от и до, а искать по абзацам, т.е.
Если этот параграф выделен Курьером
И следующий тоже
Find.Excecute выделит нам только первый абзац, для поиска остальных операцию придется повторять в цикле, но и это еще не все. Если мы сразу будем вставлять теги, то получится много лишних. Несмотря на то, что абзацы с одинаковым оформлением пусть даже и идут друг за другом, функция поиска будет рассматривать каждый абзац, как отдельный случай. Посему, все найденные данные стоит сначала собрать в массив(ы):

Но, как я уже говорил, find ищет по абзацам, в результате в наших массивах окажется несколько идущих друг за другом подряд абзацев с одинаковым шрифтом. Конечное значение таких интервалов будет совпадать с началом следующего.
Чтобы не вставлять лишние теги, проанализируем это условие, и сдвинем массив на нужное количество элементов.

Процедура сдвига
Оформим отдельную процедуру, которая будет сдвигать массив на указанное количество элементов с указанного элемента массива:

Удаление лишнего
Теперь, с помощью этой процедуры объединим следующие друг за другом интервалы . Напоминаю условие: конечное значение таких интервалов будет совпадать с началом следующего

Теперь переопределим размерность массивов, обрезав ненужные элементы (для того мы и сохраняли счетчик сдвигов в переменной shiftctr )
Примечание: Функция UBound (массив) возвращает количество его элементов, его размерность.

Все это я объединил в отдельную процедуру, куда передаю только сами теги, а параметры поиска устанавливаю перед ее выполнением.

Вставка тегов
Осталось только вставить теги. Но необходимо помнить, если мы в процессе работы что-нибудь добавим в текст, то нужно будет пересчитать «координаты» следующих символов. Если символы расположены после добавленных, то к их позиции приплюсуется длина добавленного текста.
В переменной TagLen будет содержаться длина открывающего и закрывающего тега, а переменная AllTagLen – накапливать суммарные длины всех вставленных тегов.

Конечно, макрос можно еще долго дорабатывать – например, сделать так, чтоб перед многострочным кодом вставлялись теги pre, для сохранения форматирования, сделать автоматическую вставку тегов a href (брать для них информацию из ссылок, заключенных в квадратные скобки), заменять специальные символы на последовательности HTML, и т.д. Но все это, во-первых, уж совсем специфично, а во-вторых, меня пока и так устраивает. Кое-что не влом и вручную подправить. Но может быть еще вернусь к теме.

Макрос целиком на pastebin

Vba excel жирный шрифт

Introduction to Fonts

A font is an art effect made of designed symbols used to represent letters and other characters on a cell or a group of cells. A font is characterized by various characteristics such as a name, a style and a size.

Microsoft Excel uses some default fonts to display the names of columns and rows on a worksheet. Another font is used by default to show the contents of cells. If you want to use a different font to display text in cells, you can changes these defaults. When changing the default font, in other words if you decide to change the default font, you should use only the most popular fonts that are more likely to be found on your user’s computers.

To assist you with setting the fonts of columns, the Ribbon is equipped with a Font section in the Home tab:

The Name of a Font

You can make a worksheet user-friendly by applying some fonts and colors to their content. A font is primarily known by its name. When starting a worksheet, Microsoft Office Excel 2007 applies a default font named Calibri to the cells. If you want, you can change it.

To visually change the font used by a cell or a group of cells:

  • Click the cell to activate it or select a group of cells. On the Ribbon, click Home. In the Font section:
    • Click the arrow of the Font combo box and select the desired font
    • Click the more options button . This would open the Format Cells dialog box with the Font tab activated. In the Font property page, use the Font combo box to select the desired font
  • Right-click a cell and click Format Cells. Select a group of cells then right-click the selection and click Format Cells. In the Format Cells dialog box, click the Font tab. In the Font property page, use the Font combo box to select the desired font

To programmatically specify the name of a font, refer to the cell or the group of cells on which you want to apply the font, access its Font object, followed by its Name property. Then assign the name of the font to the cell or group of cells.

Читать еще:  Как узнать среднее значение в excel

Practical Learning: Selecting a Font

  1. Change the code as follows (if you do not have the Rockwell Condensed font, use Times New Roman):

Return to Microsoft Excel and press Ctrl + Shift + W to see the result

  • Return to Microsoft Visual Basic
  • The Size of a Font

    Besides its name, a font is also known for its size. The size defines how much height and proportional width would be used to represent the characters of the selected font.

    To visually specify the font size used by a cell or a group of cells:

    • Click the cell to activate it or select a group of cells. On the Ribbon, click Home. In the Font section:
      • Click the arrow of the Font Size combo box and select the desired size
      • Click the more options button . In the Font property page of the Format Cells dialog box, use the Size combo box to select the desired size
    • Right-click a cell and click Format Cells. Select a group of cells then right-click the selection and click Format Cells. In the Format Cells dialog box, click the Font tab. In the Font property page, use the Size combo box to select the desired font

    When a font is installed, a set of font sizes is created in the Font Size combo box. You can use those numbers but you can also set a new one. To do this, instead of selecting a value in the Font Size combo box, type the desired number and press Enter or Tab. The operating system would calculate the size and apply it.

    To programmatically specify the font size of a cell or a group of cells, refer to that cell or the group of cells, access its Font object, followed by its Size property, and assign the desired value to it.

    Practical Learning: Setting the Font Size of a Cell

    1. Change the code as follows:

    Return to Microsoft Excel and press Ctrl + Shift + W to see the result

  • Return to Microsoft Visual Basic
  • The Style of a Font

    Another aspect of the appearance of a font is its style, which is a technique of drawing the characters of the text, depending on the font. This characteristic comes in four options:

    To visually change the font style of a cell or a group of cells:

    • Click the cell or select a group of cells on the worksheet. In the Home tab of the Ribbon, in the Font section,
    • Right-click a cell and click
    • Click the cell to activate it or select a group of cells. On the Ribbon, click Home. In the Font section:
      • Click the button that represents the desired style: Bold , Italic , or Underline
      • Click the more options button . In the Font property page of the Format Cells dialog box, select the desired option in the Font Style combo box
    • Right-click a cell and click Format Cells. Select a group of cells then right-click the selection and click Format Cells. In the Format Cells dialog box, click the Font tab. In the Font property page, select the desired style in the Font Style combo box

    You can specify more than one style on a cell or a group of cells. To do this, click the button of the desired style. When a style is valid for a control, when you click that control, the style button is highlighted: , , or . To remove a style, click the undesired button. To add a style to another style, simply click the desired button. Based on this, you can have one, two or three buttons highlighted in the combination of your choice.

    To support font styles, the Font object is equipped with various Boolean properties that are Bold, Italic, Underline, and Strikethrough. Therefore, to grammatically specify the font style of a cell or a group of cells, access the cell or the group of cells, access its Font object, followed by the desired style, and assign the desired Boolean value.

    Practical Learning: Formatting With Styles

    Настройка шрифта в Excel

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

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

    Изменение гарнитуры шрифта в Excel

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

    1. Выделите ячейку, к которой необходимо применить форматирование.
    2. Нажмите на стрелку рядом с полем Шрифт на вкладке Главная.
    3. В появившемся раскрывающемся списке выберите желаемый шрифт. Наводя курсор на различные варианты шрифтов, можно увидеть, как меняется текст в выделенной ячейке. Такая опция Excel называется интерактивным просмотром. В нашем примере мы остановимся на Georgia.
    4. Шрифт текста изменится на выбранный.

    При создании документов подчас необходимо, чтобы информация воспринималась как можно легче. В Excel существует ряд шрифтов, специально предназначенных для чтения. Помимо Calibri, стандартными шрифтами для чтения считаются Cambria, Times New Roman и Arial.

    Изменение размера шрифта в Excel

    1. Выберите ячейки, в которых требуется изменить размер шрифта.
    2. Нажмите на стрелку рядом с полем Размер шрифта на вкладке Главная.
    3. В появившемся раскрывающемся списке выберите необходимый размер шрифта. При наведении курсора на различные размеры, можно увидеть, как меняется текст в выделенной ячейке. В нашем примере мы остановимся на размере 16, чтобы сделать текст крупнее.
    4. Размер шрифта изменится в соответствии с выбранным.
    Читать еще:  Что такое диаграмма в excel

    Вы можете воспользоваться командами Увеличить размер шрифта и Уменьшить размер шрифта, или же просто ввести нужный размер с помощью клавиатуры.

    Изменение цвета шрифта в Excel

    1. Выделите ячейки, цвет шрифта в которых необходимо изменить.
    2. Нажмите стрелку рядом с командой Цвет текста на вкладке Главная. Появится палитра цветов.
    3. Выберите необходимый цвет. При наведении курсора на различные варианты цвета можно увидеть, как меняется выделенный текст. В нашем примере, мы выберем зеленый цвет.
    4. Цвет шрифта изменится на выбранный.

    Для доступа к расширенному списку цветов, используйте пункт Другие цвета в нижней части выпадающего меню команды Цвет текста.

    Команды Полужирный, Курсив и Подчеркнутый

    1. Выделите ячейки, содержимое которых необходимо отформатировать.
    2. Нажмите одну из команд: Полужирный (Ж), Курсив (К) или Подчеркнутый (Ч) на вкладке Главная. В качестве примера сделаем шрифт в выделенной ячейке полужирным.
    3. Выбранное начертание будет применено к тексту.

    Вы также можете воспользоваться сочетаниями клавиш для придания стиля тексту. Например, нажав комбинацию Ctrl+B на клавиатуре, вы сделаете выделенный текст жирным, комбинация Ctrl+I применит курсив, а Ctrl+U подчеркивание.

    Поиск на листе Excel

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

    Поиск перебором значений

    Довольно простой в реализации способ. Например, найти в колонке «A» ячейку, содержащую «123» можно примерно так:

    Минусами этого так сказать «классического» способа являются: медленная работа и громоздкость. А плюсом является его гибкость, т.к. таким способом можно реализовать сколь угодно сложные варианты поиска с различными вычислениями и т.п.

    Поиск функцией Find

    Гораздо быстрее обычного перебора и при этом довольно гибкий. В простейшем случае, чтобы найти в колонке A ячейку, содержащую «123» достаточно такого кода:

    Вкратце опишу что делают строчки данного кода:
    1-я строка: Выбираем в книге лист «Данные»;
    2-я строка: Осуществляем поиск значения «123» в колонке «A», результат поиска будет в fcell;
    3-я строка: Если удалось найти значение, то fcell будет содержать Range-объект, в противном случае — будет пустой, т.е. Nothing.

    Полностью синтаксис оператора поиска выглядит так:

    Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

    What — Строка с текстом, который ищем или любой другой тип данных Excel

    After — Ячейка, после которой начать поиск. Обратите внимание, что это должна быть именно единичная ячейка, а не диапазон. Поиск начинается после этой ячейки, а не с нее. Поиск в этой ячейке произойдет только когда весь диапазон будет просмотрен и поиск начнется с начала диапазона и до этой ячейки включительно.

    LookIn — Тип искомых данных. Может принимать одно из значений: xlFormulas (формулы), xlValues (значения), или xlNotes (примечания).

    LookAt — Одно из значений: xlWhole (полное совпадение) или xlPart (частичное совпадение).

    SearchOrder — Одно из значений: xlByRows (просматривать по строкам) или xlByColumns (просматривать по столбцам)

    SearchDirection — Одно из значений: xlNext (поиск вперед) или xlPrevious (поиск назад)

    MatchCase — Одно из значений: True (поиск чувствительный к регистру) или False (поиск без учета регистра)

    MatchByte — Применяется при использовании мультибайтных кодировок: True (найденный мультибайтный символ должен соответствовать только мультибайтному символу) или False (найденный мультибайтный символ может соответствовать однобайтному символу)

    SearchFormat — Используется вместе с FindFormat. Сначала задается значение FindFormat (например, для поиска ячеек с курсивным шрифтом так: Application.FindFormat.Font.Italic = True), а потом при использовании метода Find указываем параметр SearchFormat = True. Если при поиске не нужно учитывать формат ячеек, то нужно указать SearchFormat = False.

    Чтобы продолжить поиск, можно использовать FindNext (искать «далее») или FindPrevious (искать «назад»).

    Примеры поиска функцией Find

    Пример 1: Найти в диапазоне «A1:A50» все ячейки с текстом «asd» и поменять их все на «qwe»

    Обратите внимание : Когда поиск достигнет конца диапазона, функция продолжит искать с начала диапазона. Таким образом, если значение найденной ячейки не менять, то приведенный выше пример зациклится в бесконечном цикле. Поэтому, чтобы этого избежать (зацикливания), можно сделать следующим образом:

    Пример 2: Правильный поиск значения с использованием FindNext, не приводящий к зацикливанию.

    В ниже следующем примере используется другой вариант продолжения поиска — с помощью той же функции Find с параметром After. Когда найдена очередная ячейка, следующий поиск будет осуществляться уже после нее. Однако, как и с FindNext, когда будет достигнут конец диапазона, Find продолжит поиск с его начала, поэтому, чтобы не произошло зацикливания, необходимо проверять совпадение с первым результатом поиска.

    Пример 3: Продолжение поиска с использованием Find с параметром After.

    Следующий пример демонстрирует применение SearchFormat для поиска по формату ячейки. Для указания формата необходимо задать свойство FindFormat.

    Пример 4: Найти все ячейки с шрифтом «курсив» и поменять их формат на обычный (не «курсив»)

    Примечание: В данном примере намеренно не используется FindNext для поиска следующей ячейки, т.к. он не учитывает формат (статья об этом: https://support.microsoft.com/ru-ru/kb/282151)

    Коротко опишу алгоритм поиска Примера 4. Первые две строки определяют последнюю строку (lLastRow) на листе и последний столбец (lLastCol). 3-я строка задает формат поиска, в данном случае, будем искать ячейки с шрифтом Italic. 4-я строка определяет область ячеек с которой будет работать программа (с ячейки A1 и до последней строки и последнего столбца). 5-я строка осуществляет поиск с использованием SearchFormat. 6-я строка — цикл пока результат поиска не будет пустым. 7-я строка — меняем шрифт на обычный (не курсив), 8-я строка продолжаем поиск после найденной ячейки.

    Хочу обратить внимание на то, что в этом примере я не стал использовать «защиту от зацикливания», как в Примерах 2 и 3, т.к. шрифт меняется и после «прохождения» по всем ячейкам, больше не останется ни одной ячейки с курсивом.

    Свойство FindFormat можно задавать разными способами, например, так:

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

    Читать еще:  Закрепление областей в excel 2020

    Пример 5: Найти последнюю колонку и столбец, заполненные данными

    В этом примере используется UsedRange, который так же как и SpecialCells возвращает все используемые ячейки, в т.ч. и те, что были использованы ранее, а сейчас пустые. Функция Find ищет ячейку с любым значением с конца диапазона.

    При поиске можно так же использовать шаблоны, чтобы найти текст по маске, следующий пример это демонстрирует.

    Пример 6: Выделить красным шрифтом ячейки, в которых текст начинается со слова из 4-х букв, первая и последняя буквы «т», при этом после этого слова может следовать любой текст.

    Для поиска функцией Find по маске (шаблону) можно применять символы:
    * — для обозначения любого количества любых символов;
    ? — для обозначения одного любого символа;

    — для обозначения символов *, ? и

    . (т.е. чтобы искать в тексте вопросительный знак, нужно написать

    ?, чтобы искать именно звездочку (*), нужно написать

    * и наконец, чтобы найти в тексте тильду, необходимо написать

    Поиск даты с помощью Find

    Если необходимо найти текущую дату или какую-то другую дату на листе Excel или в диапазоне с помощью Find, необходимо учитывать несколько нюансов:

    • Тип данных Date в VBA представляется в виде #[месяц]/[день]/[год]#, соответственно, если необходимо найти фиксированную дату, например, 01 марта 2018 года, необходимо искать #3/1/2018#, а не «01.03.2018»
    • В зависимости от формата ячеек, дата может выглядеть по-разному, поэтому, чтобы искать дату независимо от формата, поиск нужно делать не в значениях, а в формулах, т.е. использовать LookIn:=xlFormulas

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

    Пример 7: Найти текущую дату на листе независимо от формата отображения даты.

    Пример 8: Найти 1 марта 2018 г.

    Искать часть даты — сложнее. Например, чтобы найти все ячейки, где месяц «март», недостаточно искать «03» или «3». Не работает с датами так же и поиск по шаблону. Единственный вариант, который я нашел — это выбрать формат в котором месяц прописью для ячеек с датами и искать слово «март» в xlValues.

    Тем не менее, можно найти, например, 1 марта независимо от года.

    Пример 9: Найти 1 марта любого года.

    Трюк №35. Как в таблице Excel выделить промежуточные итоги жирным шрифтом

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

    Когда вы работаете с таблицей, в которой есть промежуточные итоги, созданные командой Данные → Итоги (Data → Subtotals), иногда бывает трудно отличить итоги от других данных, поэтому читать таблицу тяжело. Это особенно часто случается, если промежуточные итоги были созданы для таблицы данных с множеством столбцов.

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

    Чтобы проверить эту проблему, введите некоторые данные, схожие с данными на рис. 2.19.

    Рис. 2.19. Данные на рабочем листе перед добавлением промежуточных итогов

    Теперь добавьте промежуточные итоги, выбрав команду Данные → Итоги (Data → Subtotals) и приняв в диалоговом окне Промежуточные итоги (Subtotals) значения параметров по умолчанию (просто щелкните кнопку ОК). На рис. 2.20 заголовки промежуточных итогов выделены жирным шрифтом, а соответствующие значения — нет. Так как в этой таблице только два столбца, ее нетрудно читать и выделять промежуточные итоги.

    Рис. 2.20. Данные на рабочем листе после добавления промежуточных итогов

    Однако чем больше столбцов в таблице, тем труднее визуально выделять промежуточные итоги. Эту проблему можно решить при помощи условного форматирования Excel. Используя в качестве примера рис. 2.19, попробуйте перед добавлением промежуточных итогов сделать следующее.

    Выделите ячейки А1:В9, следя за тем, чтобы ячейка А1 была активной. Выберите команду Главная → Условное форматирование (Home → Conditional Formatting), выберите пункт Формула (Formula Is) и введите следующую формулу: =RIGHT($A1,5)=»Total» , в русской версии Excel: =ПРАВСИМВ($А1;5)=»Тоtаl» . Теперь щелкните кнопку Формат (Format), перейдите на вкладку Шрифт (Font) и в поле Начертание (Font Style) выберите Полужирный (Bold). Щелкните кнопку ОК, затем еще раз щелкните кнопку ОК.

    Важным свойством формулы является использование абсолютной ссылки на столбец ($А) и относительной ссылки на строку (1). Так как выделение вы начали с ячейки Al, Excel автоматически изменит формулу для каждой ячейки. Например, в ячейках А2 и В2 формула условного форматирования будет выглядеть как =RIGHT($A2,5)=»Total» ( =ПРАВСИМВ($А2,5)=»Total» ), а в ячейках A3 и ВЗ — как =RIGHT($A3,5)=»Total» ( =ПРАВСИМВ($A3;5)=»Total» ). Добавьте промежуточные итоги. Необходимо помнить, что после удаления промежуточных итогов жирный шрифт также исчезнет.

    Трюк в трюке

    Единственный подвох в этом способе — то, что общий итог (Grand Total) выводится в том же стиле, что и промежуточные итоги. Было бы удобно отформатировать общий итог по-другому, чтобы он отличался от промежуточных итогов и был легко заметен. Мы сделаем это, используя тот же пример.

    Начните с необработанных данных. Выделите ячейки А1:В9, следя за тем, чтобы ячейка А1 была активной при выделении. Выберите команду Главная → Условное форматирование (Home → Conditional Formatting). Выберите пункт Формула (Formula Is) и введите следующую формулу: =$Al=»Grand Total» .

    Щелкните кнопку Формат (Format), перейдите на вкладку Шрифт (Font) и в поле Начертание (Font Style) выберите Полужирный (Bold). Щелкните кнопку ОК, а затем кнопку Добавить (Add), чтобы добавить второе условие форматирования. Выберите пункт Формула (Formula Is) и введите следующую формулу: =RIGHT($A1;5)=»Total» , в русской версии Excel: =ПРАВСИМВ($А1;5)=»Total» . Щелкните кнопку Формат (Format), перейдите на вкладку Шрифт (Font) и в поле Начертание (Font Style) выберите Полужирный курсив (Bold Italic). В поле Подчеркивание (Underline) выберите Одинарное, по значению (Single), щелкните кнопку ОК, а затем еще раз щелкните кнопку ОК. Теперь выберите команду Данные → Итоги (Data → Subtotals) и щелкните кнопку ОК, приняв значения по умолчанию.

    Чтобы улучшить читаемость промежуточных итогов, можно использовать любое форматирование.

    Ссылка на основную публикацию
    ВсеИнструменты
    Adblock
    detector
    ×
    ×