Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

VBA Excel. Форматирование текста в ячейке (объект Font)

    Форматирование текста в ячейке при помощи кода VBA Excel. Объект Font и его основные свойства. Примеры изменения начертания строк в заданном диапазоне.

    В этой статье рассмотрены свойства шрифта (объекта Font), определяющие внешнее оформление (начертание) видимого значения ячейки. Это касается не только текста (строк), но и визуального начертания отображаемых дат и числовых значений.

    Формат отображаемого значения

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

    • рабочего листа по умолчанию;
    • установленный для диапазона пользователем;
    • примененный к диапазону из кода VBA Excel.

    Если ячейка содержит текстовое значение, его начертание можно форматировать по отдельным частям (подстрокам). Такое форматирование доступно как в ручном режиме на рабочем листе, так и из кода VBA Excel.

    У объекта Range есть свойство Font (шрифт), которое отвечает за форматирование (начертание) визуально отображаемого текста в ячейках рабочего листа. Его применение вызывает объект Font, который в свою очередь обладает собственным набором свойств, отвечающих за конкретный стиль начертания отображаемого значения.

    Основные свойства объекта Font

    Свойство Описание Значения
    Name наименование шрифта «Arial», «Calibri», «Courier New», «Times New Roman» и т.д.
    Size размер шрифта от 1 до 409 пунктов
    Bold полужирное начертание True, False
    Italic курсивное начертание True, False
    FontStyle заменяет Bold и Italic «обычный», «полужирный», «курсив», «полужирный курсив»
    Superscript надстрочный текст True, False
    Subscript подстрочный текст True, False
    Underline подчеркнутый текст True, False
    Color* цвет текста от 0 до 16777215

    *Color — это не единственное свойство, отвечающее за цвет отображаемого текста в ячейке. Оно также может принимать и другие значения, кроме указанных в таблице. Смотрите подробности в статьях Цвет текста (шрифта) в ячейке и Цвет ячейки (заливка, фон).

    Примеры форматирования текста

    Пример 1
    В этом примере ячейкам диапазона «A1:A3» присвоим шрифты разных наименований:

    Пример 2
    В этом примере рассмотрим применение одного свойства объекта Font к одной ячейке:

    Пример 3
    Форматирование диапазона из нескольких ячеек:

    Пример 4
    Пример форматирования шрифта в разных ячейках по одному свойству:

    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

    5 комментариев для “VBA Excel. Форматирование текста в ячейке (объект Font)”

    1. Алексей Леонидович

      Пример 2 не к одной ячейке, а к трём!!!! Где пример к одной???

      1. Евгений

        Добрый день, Алексей Леонидович!
        Во втором примере показано применение одного свойства объекта Font к одной ячейке.
        К ячейке «A5»:
        Range("A5").Font.Bold = True
        К ячейке «A6»:
        Range("A6").Font.FontStyle = "полужирный курсив"
        К ячейке «A7»:
        Range("A7").Font.Superscript = True

        Применение нескольких свойств объекта Font к одной ячейке может выглядеть следующим образом:

    2. Скажите пожалуйста, а есть ли способ подставлять вместо свойства ячейки (Bold, Underline, Italic) переменную чтобы в цикле последовательно менять свойства ячейки одной командой? Это упрощенный пример, так сказать в принципе, есть ли способ записи типа .Cells(1,1).Font.Переменная=True где Переменная это одно из Bold, Italic, Underline?
      With Worksheets("Конфигурация")
      For i = 1 To 3
      Select Case i
      Case 1
      s = "Bold"
      Case 2
      s = "Italic"
      Case 3
      s = "Underline"
      End Select
      .Cells(15, 1).Font.?s? = True
      Next i
      End With

      1. Евгений

        Здравствуйте, Сергей!
        Если заменить "Underline" на "Bold Italic" или "обычный", тогда можно так:

        С "Underline" такой фокус не проходит, но возвращает к обычному стилю.

        1. нет, увы. Спасибо конечно, что мимо не прошли, но я дал лишь упрощенную формулировку задачи. На самом деле я хочу работать с объектами WMI, коих, как известно огромное количество и у каждого куча свойств. Я не хочу писать многокилометровый код и все время добавлять строки. Я хочу вынести на лист excel список объектов и слева от каждого в колонках список свойств. И в цикле пробегать по объектам и по внутреннему циклу по свойствам, подставлять все по очереди и получать значения. И для добавления еще одного мне нужно будет только добавить на лист объект или свойство. В код при этом лазить не нужно будет.
          Но я уперся в это вот, нужно как-то подставлять в объект вместо свойства переменную. Для этого я и сделал этот крошечный пример. Здесь никто конечно не будет перебирать свойства в таком дурацком цикле, тем более, что свойства разные по формату, кому-то нужны цифры, кому-то булево значение. Так что этот пример смысла не имеет, но дает понять задачу.

    Обсуждение закрыто.