Excel макрос жирный шрифт

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

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

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

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

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

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

У объекта Range есть свойство 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» присвоим шрифты разных наименований:

Sub Primer1()

Range(«A1»).Font.Name = «Courier»

Range(«A1») = «Шрифт «Courier»»

Range(«A2»).Font.Name = «Verdana»

Range(«A2») = «Шрифт «Verdana»»

Range(«A3»).Font.Name = «Times New Roman»

Range(«A3») = «Шрифт «Times New Roman»»

End Sub

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

Sub Primer2()

Range(«A5»).Font.Bold = True

Range(«A5») = «Полужирное начертание»

Range(«A6»).Font.FontStyle = «полужирный курсив»

Range(«A6») = «Полужирный курсив»

Range(«A7»).Font.Superscript = True

Range(«A7») = «Надстрочное начертание»

End Sub

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

Sub Primer3()

  With Range(«A9:C11»)

    .Value = «Форматируем диапазон»

    .Font.Underline = True

    .Font.Color = 75962

  End With

End Sub

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

Sub Primer4()

Cells(1, 1) = «Свойство шрифта Bold = True»

Cells(1, 1).Font.Bold = True

Cells(2, 1) = «Свойство шрифта Color = xlGreen»

Cells(2, 1).Font.Color = xlGreen

Cells(3, 1) = «Свойство шрифта ColorIndex = 32»

Cells(3, 1).Font.ColorIndex = 32

Cells(4, 1) = «Свойство шрифта FontStyle = ««Bold Italic»«»

Cells(4, 1).Font.FontStyle = «Bold Italic»

Cells(5, 1) = «Свойство шрифта Italic = True»

Cells(5, 1).Font.Italic = True

Cells(6, 1) = «Свойство шрифта Name = ««Courier New»«»

Cells(6, 1).Font.Name = «Courier New»

Cells(7, 1) = «Свойство шрифта Size = 14»

Cells(7, 1).Font.Size = 14

Cells(8, 1) = «Свойство шрифта Subscript = True»

Cells(8, 1).Font.Subscript = True

Cells(9, 1) = «Свойство шрифта Superscript = True»

Cells(9, 1).Font.Superscript = True

Cells(10, 1) = «Свойство шрифта Underline = True»

Cells(10, 1).Font.Underline = True

End Sub

Written by Puneet for Excel 2007, Excel 2010, Excel 2013, Excel 2016, Excel 2019, Excel for Mac

Key Notes

  • To make changes in a font, you need to use the VBA Font object.
  • There is a total of 18 properties with the font object that you can access and make changes.

VBA Font Object

In VBA, there is a font object which you can use to change properties of the font from a cell, like, font color, font size, font type, and you can also apply bold and italic to the font.

Syntax

expression.font

To use it, first, you need to define the cell address, which you can specify in the following ways.

Selection.Font
Range("A1").Font
Cells(1, 1).Font
Range("A1:A5").Font

To change the color of the font, you have two different ways:

1. Using Color Constants

Excel has a few color constants that you can use to apply color to the font. For example, if you want to apply the red color to the font in cell A1, the code would be like the below:

Range("A1").Font.Color = vbRed

In the above code, after the font object, color is the property and you have used the vbRed constant that tells VBA to apply the red color to the cell A1. There is a total of eight constants that you can use:

  1. vbBlack: Black
  2. vbRed: Red
  3. vbGreen: Green
  4. vbYellow: Yellow
  5. vbBlue: Blue
  6. vbMagenta: Magenta
  7. vbCyan: Cyan
  8. vbWhite: White

2. Using RGB

You can also use the RGB color code to apply color to the font. RGB is the combination of red, green, and blue colors, where you can create a custom color using the code. Let’s say if you want to apply a combination of green and blue color to cell A1 the code would be:

Range("A1").Font.Color = RGB(0, 255, 255)

VBA Font Size

Font object also gives you access to the size property of the font. Let’s say you want to apply the font size of 16 to the font in the cell A1, the code would be:

Range("A1").Font.Size = 16

If you want to apply font size to all cells in a worksheet you can use the following code:

Cells.Font.Size = 16

And if only want to apply font size to cells where you have data, the code would be:

ActiveSheet.UsedRange.Font.Size = 16

Or to the selected cell.

Selection.Font.Size = 16

VBA Font Name

In the same way, you can also change the font name using the name property of the font object. Let’s say you want to apply the “Consolas” font the cell A1. The code would be:

Range("A1").Font.Name = "Consolas"

While using this property, you need to type the correct name of the font that you want to apply, and if somehow the name is incorrect, it won’t show you an error.

VBA Font Bold, Italic, and Underline

There are also properties that you can use to make the font bold, italic, and underline. Below are the codes that you need to write for this.

Range("A1").Font.Bold = True
Range("A1").Font.Italic = True
Range("A1").Font.Underline = True

With these properties, you need to define TRUE or FALSE. So if the font is already bold or italic and you want to remove it, then you need to use FALSE to remove them.

Other Useful Font Properties

Here add a few more properties that can be useful for you (Strikethrough, Subscript, and Superscript).

Range("A1").Font.Strikethrough = True
Range("A1").Font.Subscript = True
Range("A1").Font.Superscript = True

More Tutorials

    • Count Rows using VBA in Excel
    • Excel VBA Hide and Unhide a Column or a Row
    • Excel VBA Range – Working with Range and Cells in VBA
    • Apply Borders on a Cell using VBA in Excel
    • Find Last Row, Column, and Cell using VBA in Excel
    • Insert a Row using VBA in Excel
    • Merge Cells in Excel using a VBA Code
    • Select a Range/Cell using VBA in Excel
    • SELECT ALL the Cells in a Worksheet using a VBA Code
    • ActiveCell in VBA in Excel
    • Special Cells Method in VBA in Excel
    • UsedRange Property in VBA in Excel
    • VBA AutoFit (Rows, Column, or the Entire Worksheet)
    • VBA ClearContents (from a Cell, Range, or Entire Worksheet)
    • VBA Copy Range to Another Sheet + Workbook
    • VBA Enter Value in a Cell (Set, Get and Change)
    • VBA Insert Column (Single and Multiple)
    • VBA Named Range | (Static + from Selection + Dynamic)
    • VBA Range Offset
    • VBA Sort Range | (Descending, Multiple Columns, Sort Orientation
    • VBA Wrap Text (Cell, Range, and Entire Worksheet)
    • VBA Check IF a Cell is Empty + Multiple Cells

    ⇠ Back to What is VBA in Excel

    Helpful Links – Developer Tab – Visual Basic Editor – Run a Macro – Personal Macro Workbook – Excel Macro Recorder – VBA Interview Questions – VBA Codes

    Содержание

    1. Шрифт ячейки VBA — изменение цвета, размера, стиля и т. Д.
    2. Шрифт ячейки VBA
    3. Изменить цвет шрифта
    4. vbColor
    5. Цвет — RGB
    6. ColorIndex
    7. Размер шрифта
    8. Жирный шрифт
    9. Название шрифта
    10. Стиль ячейки
    11. Макросы для изменения формата ячеек в таблице Excel
    12. VBA-макрос: заливка, шрифт, линии границ, ширина столбцов и высота строк
    13. Описание VBA-макроса для формата ячеек таблицы Excel
    14. Модификация исходного кода макроса для форматирования
    15. VBA Excel. Форматирование текста в ячейке (объект Font)
    16. Формат отображаемого значения
    17. Основные свойства объекта Font
    18. Примеры форматирования текста
    19. 5 комментариев для “VBA Excel. Форматирование текста в ячейке (объект Font)”

    Шрифт ячейки VBA — изменение цвета, размера, стиля и т. Д.

    Шрифт ячейки VBA

    В VBA вы можете изменить свойства шрифта с помощью свойства шрифта VBA объекта Range. Введите следующий код в редактор VBA, и вы увидите список всех доступных вариантов:

    Ниже мы обсудим несколько наиболее распространенных свойств.

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

    Есть несколько способов установить цвета шрифта.

    vbColor

    Самый простой способ установить цвета — использовать vbColors:

    1 Диапазон («a1»). Font.Color = vbRed

    Однако количество доступных цветов очень ограничено. Это единственные доступные варианты:

    Цвет — RGB

    Вы также можете установить цвета на основе RGB (красный, зеленый, синий). Здесь вы вводите значения цвета от 0 до 255 для красного, зеленого и синего. Используя эти три цвета, вы можете сделать любой цвет:

    1 Диапазон («a1»). Font.Color = RGB (255,255,0)

    ColorIndex

    VBA / Excel также имеет свойство ColorIndex. Это делает вам доступными предварительно созданные цвета. Однако они хранятся в виде порядковых номеров, что затрудняет определение того, что это за цвет:

    1 Диапазон («a1»). Font.ColorIndex =…

    Мы написали статью о цветовых кодах VBA, включая список кодов VBA ColorIndex. Там вы можете узнать больше о цветах.

    Размер шрифта

    Это установит размер шрифта на 12:

    1 Диапазон («a1»). Размер шрифта = 12
    1 Диапазон («a1»). Размер шрифта = 16

    Жирный шрифт

    Установить полужирный шрифт ячейки легко:

    1 Диапазон («A1»). Font.Bold = True

    или очистить форматирование полужирным шрифтом:

    1 Диапазон («A1»). Font.Bold = False

    Название шрифта

    Чтобы изменить название шрифта, используйте Имя имущество:

    1 Диапазон («A1»). Font.Name = «Calibri»
    1 Диапазон («A1»). Font.Name = «Arial»
    1 Диапазон («A1»). Font.Name = «Times New Roman»

    Стиль ячейки

    Excel предлагает возможность создавать «стили» ячеек. Стили можно найти в Главная Лента> Стили:

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

    Лично для многих моделей, над которыми я работаю, я обычно создаю стиль ячейки «Вход»:

    1 Диапазон («a1»). Style = «Input»

    Используя стили, вы также можете легко определять типы ячеек на вашем листе. В приведенном ниже примере выполняется цикл по всем ячейкам на листе и изменяется любая ячейка со Style = «Input» на «InputLocked»:

    Источник

    Макросы для изменения формата ячеек в таблице Excel

    В данном примере описаны макросы для автоматического форматирования или спроса формата для ячеек таблиц Excel средствами VBA.

    VBA-макрос: заливка, шрифт, линии границ, ширина столбцов и высота строк

    В процессе запыления данных сотрудниками отдела на некоторых листах были изменены форматы ячеек:

    Необходимо сбросить форматирование ячеек и сделать так чтобы на всех таблицах планов выполнения работ были одинаковые форматы отображения данных. Формат ячеек для исходной таблицы должен быть закреплен за шаблоном, чтобы можно было сделать сброс и применять заданный стиль оформления в дальнейшем.

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

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

    Чтобы написать свой код макроса откройте специальный VBA-редактор в Excel: «РАЗРАБОТЧИК»-«Код»-«Visual Basic» или нажмите комбинацию клавиш ALT+F11:

    В редакторе создайте новый модуль выбрав инструмент «Insert»-«Module» и введите в него такой VBA-код макроса:

    Sub SbrosFormat()
    If TypeName(Selection) <> «Range» Then Exit Sub
    With Selection
    .HorizontalAlignment = xlVAlignCenter
    .VerticalAlignment = xlVAlignCenter
    .WrapText = True
    .Borders.LineStyle = xlContinuous
    .Borders.Weight = xlThin
    .Font.ColorIndex = xlColorIndexAutomatic
    .Interior.ColorIndex = xlColorIndexAutomatic
    .Columns.AutoFit
    .Rows.AutoFit
    End With
    End Sub

    Теперь если нам нужно сбросить форматирование таблицы на исходный формат отображения ее данных, выделите диапазон ячеек A1:E20 и запустите макрос: «РАЗРАБОЧТИК»-«Код»-«Макросы»-«SbrosFormat»-«Выполнить». Результат работы макроса изображен ниже на рисунке:

    Таблица приобрела формат, который определен макросом. Таким образом код VBA нам позволяет сбросить любые изменения формата ячеек на предустановленный автором отчета.

    Описание VBA-макроса для формата ячеек таблицы Excel

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

    1. Текст в значениях ячеек выравнивается по центру горизонтально и вертикально.
    2. Включен построчный перенос текста.
    3. Все границы ячеек получают черную обычной толщины непрерывную линию с черным цветом.
    4. Сброс цвета шрифта на авто.
    5. Удаляется любая заливка ячеек.
    6. Ширина столбцов автоматически настраивается под текст в ячейках.
    7. Автоматически настроить высоту строк по содержимому ячеек.

    Модификация исходного кода макроса для форматирования

    Если необходимо сделать так чтобы текст выравнивался не по центру относительно горизонтали, а по правую сторону ячейки, тогда измените константу xlHAlignCenter на xlHAlignRight. Она находиться в свойстве .HorizontalAlignment. Сделайте это следующим образом:

    Таким же образом можно выровнять текст по левую сторону изменив значение константы на xlHAlignLeft. Или можно выровнять положение текста по ширине ячейки используя константу xlHAlignJustify.

    Чтобы макрос выравнивал текст в ячейках по вертикали к низу, измените строку кода, отвечающую за данную настройку форматирования. Измените константу, которая присваивается к свойству VerticalAlignment в следующий способ:

    Если хотите выровнять текс к верху ячейки, тогда воспользуйтесь константой xlHAlignTop.

    Если нужно применить для границ ячеек толстую и пунктирную линию в синем цвете, смодифицируйте инструкцию, отвечающую за формат линий:

    Описание настройки форматирования для линий границ ячеек. Мы будем получать разные дополнительные типы линий границ если для свойства LineStyle присваивать такие константы:

    • xlDoshDot – применяется для рисования пунктирных линий в границах ячеек;
    • xlDouble – рисует двойную линию;
    • xlHairLine – рисует тонкую линию;
    • xlThick – для рисования очень толстой линии.

    Для настройки цвета линий Excel предлагает всего 8 констант для определенных цветов. Константы для настройки цвета линий границ для свойства Color:

    • vbBlack – черный;
    • vbWhite – белый;
    • vbRed – красный;
    • vbGreen –зеленый;
    • vbBlue – синий;
    • vbYellow – желтый;
    • vbMagenta – алый;
    • vbCyan – голубой.

    Но при необходимости присвоить линиям границ другие цвета можно вместо константы для свойства Color записать функцию RGB(). Достаточно лишь в аргументе этой функции указать код цвета по шкале от 0 и до 255.

    Если нужно применить толстую линию только для границ выделенного диапазона, тогда перед инструкцией End With добавьте следующую строку кода:

    .BorderAround xlContinuous, xlMedium, vbBlack

    Описание: В первом аргументе для метода BorderAround можно записать также другой стиль линии. Во втором – толщину линии, а в третьем – цвет. Константы, которые можно присвоить в качестве значений для этих аргументов можно использовать те же, которые мы использовали для свойств: LineStyle, Weight, Color.

    Если нужно экспонировать первую строку для выделенного диапазона с помощью жирного и курсивного шрифта значений ячеек. А также заполнить ячейки первой строки заливкой с голубым цветом, тогда в самом конце кода макроса перед последней инструкцией End Sub следует добавить несколько строк с VBA-кодом:

    Если хотите присвоить такой же формат для не только для первой строки, но и для первого столбца выделенного диапазона, тогда скопируйте и вставьте ниже эти 3 строчки кода. После в последних трех строках измените свойство Rows на Columns.

    .Columns (1).Font.Bold = True

    .Columns (1).Font.Italic = True

    .Columns (1).Interior.Color = vbCyan

    Если нужно задать особенный формат для экспонирования последней строки выделенного диапазона, тогда измените число 1 в аргументе свойства Rows на число всех выделенных строк .Rows.Count. Например, добавьте в конец кода еще такую строку:

    Полная версия модифицированного кода макроса выглядит так:

    Sub SbrosFormat()
    If TypeName(Selection) <> «Range» Then Exit Sub
    With Selection
    .HorizontalAlignment = xlVAlignCenter
    .VerticalAlignment = xlVAlignCenter
    .WrapText = True
    .Borders.LineStyle = xlDash
    .Borders.Color = vbBlue
    .Borders.Weight = xlMedium
    .Font.ColorIndex = xlColorIndexAutomatic
    .Interior.ColorIndex = xlColorIndexAutomatic
    .Columns.AutoFit
    .Rows.AutoFit
    .BorderAround xlContinuous, xlMedium, vbBlack
    .Rows(1).Font.Bold = True
    .Rows(1).Font.Italic = True
    .Rows(1).Interior.Color = vbCyan
    .Columns(1).Font.Bold = True
    .Columns(1).Font.Italic = True
    .Columns(1).Interior.Color = vbCyan
    .Rows(.Rows.Count).Font.Bold = True
    End With
    End Sub

    Пример работы измененного кода VBA-макроса:

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

    Источник

    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
    Пример форматирования шрифта в разных ячейках по одному свойству:

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

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

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

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

    Скажите пожалуйста, а есть ли способ подставлять вместо свойства ячейки (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

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

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

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

    Источник

    The best way to draw a user’s attention to a cell or some text within a cell is to make it look different from the rest of the text.

    One way to do this is to make the text bold, thereby highlighting it or stressing its importance.

    The ‘Bold’ button in the Excel Home tab is of course everyone’s go-to way of making any text bold. A lot of people also like to use the keyboard shortcut CTRL+B.

    However, you might need to make some text bold based on a certain condition, or only at the end of a calculation.

    Unfortunately, there’s no Excel function that you can use to make text bold. But it is possible to do this using VBA.

    In this tutorial, we will show you how to make text bold using VBA in a number of different use cases.

    To make any text bold in VBA, we can use the Font.Bold property of a Range or Cell.

    Let’s say you want to bold the text that is in cell A2 of your spreadsheet.

    Dataset with text to bold

    Here’s the code you can use to get this done:

    Cells(1,2).Font.Bold=True

    You  can also use the Range function to accomplish the same:

     Range("A2").Font.Bold = True
    Specified cell font is bold

    This will also work if you want to bold a whole range of cells, for example:

     Range("A2:A8").Font.Bold = True

    This will change cells in the range A1:A8 to bold.

    All cells in the specified range are bold

    Using the Visual Basic Immediate Window to Bold Text in Excel

    You can use the Visual Basic developer’s Immediate Window to quickly run one-line VBA codes, such as the ones we discussed in the previous section. 

    To run the code in the Immediate Window, simply follow the steps shown below:

    1. From the Developer Menu Ribbon, select Visual Basic.
    Click on Developer tab and then on Visual basic
    1. Once your VBA window opens, your Immediate Window should be at the bottom. If you cannot see it, then Click View>Immediate Window or press CTRL+G on the keyboard.
    Click on Immediate window
    1. Paste your line of code in the Immediate Window and press the Return key.
    Enter the code in the immediate window

    When you get back to your Excel window, you should see the result of the executed code.

    So if you used the line:

    Range("A2:A8").Font.Bold = True

    You should see all the cells in the range A2:A8 have the text converted to bold:

    All cells in the specified range are bold

    Writing a Visual Basic Module to Bold Text in Excel

    If you prefer writing a VBA Module to bold the text instead, then you can enclose the same line of code within a Sub procedure as shown below:

    Sub ConvertToBold()
    Range("A1:A8").Font.Bold = True
    End Sub

    Here’s what you have to do in order to use the above procedure:

    1. From the Developer Menu Ribbon, select Visual Basic.
    2. Once your VBA window opens, Click Insert->Module and paste the above code in the Module window.
    Click on Module
    1. To run the macro, go back to your Excel window and navigate to Developer->Macros.
    Click on Developer tab and then click on Macros
    1. Select the name of the module, which is ConvertToBold in our example.
    Select the Macro you want to run
    1. Click Run.

    You should find the cells in the range A2:A8 have the text converted to bold. 

    Some Practical Use-cases of the Font.Bold Property

    Let us see some practical applications of the Font.Bold property.

    How to Bold Selected Cells in Excel Using VBA

    Let’s see a small module that can help you bold only the cells that you selected:

    'Code by Steve from SpreadsheetPlanet.com
    Sub ConvertSelectedCellsToBold()
    Dim Rng As Range
    Dim myCell As Object
    Set Rng = Selection
    For Each myCell In Rng
       myCell.Font.Bold = True
    Next
    End Sub

    To run the code do the following:

    1. Select the cells that you want to bold.
    Select the cells you want to bold
    1. Copy the above code to your Visual Basic module window.
    2. Run the macro.
    3. You should find the contents of all your selected cells converted to bold.
    Selected cells are bold

    Explanation of the Code

    In this code, we stored the selected range of cells in the variable Rng.

    Then we used a for-loop to traverse over each cell (myCell) in the range, making the contents of each selected cell bold, using the line:

    myCell.Font.Bold = True

    How to Bold Cells Containing a Specific Text using VBA

    Now consider a scenario where you need to highlight all the cells that contain a specific text using VBA.

    This can be achieved by the following code:

    'Code by Steve from SpreadsheetPlanet.com
    Sub ConvertCellsWithSpecificTextToBold()
    Dim Rng As Range
    Dim myCell As Object
    Dim myUnion As Range
    Set Rng = Selection
    searchString = InputBox("Please Enter the Search String")
    For Each myCell In Rng
    If InStr(myCell.Text, searchString) Then
       myCell.Font.Bold = True
    End If
    Next
    End Sub

    To run the code do the following:

    1. Select the range of cells that you want to work with. 
    2. Copy the above code to your Visual Basic module window.
    3. Run the macro.
    4. You will see a message window that asks you to enter your search string. Type your search string in the input box. In our example, we entered the word “King”.
    enter the word you want to bold in the input box
    1. When you press the Return key, you should find all the cells that contain the word “King” highlighted in bold.
    Cells with the word King are bold

    Explanation of the Code

    In this code, we again stored the selected range of cells in the variable Rng. We used an InputBox to get the user’s search string input and we stored this text in the variable searchString.

    We then used a for-loop to traverse over each cell (myCell) in the range and we checked if the cell contained the search string (using the InStr function). If it did, then we made the contents of the cell bold.

    How to Find and Bold Specific Text in a Cell using VBA

    Now, what if you only want to make the particular search string bold, instead of the entire cell?

    For example, you might have a lot of data in your worksheet and you might want to bold only a particular word so that it stands out.

    This can be achieved using the following module code:

    'Code by Steve from SpreadsheetPlanet.com
    Sub ConvertSpecificTextToBold()
    Dim Rng As Range
    Dim myCell As Object
    Dim myUnion As Range
    Set Rng = Selection
    searchString = InputBox("Please Enter the Search String")
    For Each myCell In Rng
    If InStr(myCell.Text, searchString) Then
      myCell.Characters(WorksheetFunction.Find(searchString, myCell.Value), Len(searchString)).Font.Bold = True
    End If
    Next
    End Sub

    To run the code do the following:

    1. Select the range of cells that you want to work with. 
    2. Copy the above code to your Visual Basic module window.
    3. Run the macro.
    4. You will see a message window that asks you to enter your search string. Type your search string in the input box. In our example, we entered the word “King”.
    Enter the word you want to bold
    1. When you press the Return key, you should find only the word “King” highlighted in all your selected cells.
    Only the word gets highlighted

    Explanation of the Code

    In this code, we stored the selected range of cells in the variable Rng. We used an InputBox to get the user’s search string input and we stored this text in the variable searchString.

    We then used a for-loop to traverse over each cell (myCell) in the range and we checked if the cell contained the search string.

    If it did, then we used the WorksheetFunction.Find function to find the starting and ending position of the search string in the cell’s contents.

    The WorksheetFunction object is used as a container for Excel worksheet functions that can be used in VBA.

    So you can use the functions under this object the same way you would use regular functions in Excel. That means, the WorksheetFunction.Find function works the same way as Excel’s FIND function.

    The Find function lets you find a search string in another given string and returns the position of the string in the cell’s contents. We used the function as follows:

    WorksheetFunction.Find(searchString, myCell.Value)

    This means “return the position of searchString in myCell.Value”. This gives the starting position of our search string. To get the ending position of the string we used the length of the search string itself (Len(searchString)).

    We then used this information (starting and ending position of the search string) inside the Characters object.

    The Characters object represents a range of characters within the cell (myCell). You can use this Characters object to format specific characters within the cell.

    So you can set the Font.Bold property of the characters in your search string using the line:

    myCell.Characters(WorksheetFunction.Find(searchString, myCell.Value), Len(searchString)).Font.Bold = True

    Note: Once you change the font using VBA, you cannot undo the changes using the Undo button.

    How to Remove the Bold.Font Setting in VBA

    If you want to change the text font back by removing the bold setting, then all you need to do is set the Font.Bold property of the object to False.

    In this tutorial, we saw how to bold text using VBA.

    We showed you the basic syntax and then showed a few practical use cases where you might need to bold certain text in Excel using VBA.

    We hope this was helpful and easy to follow.

    Other Excel tutorials you may also like:

    • How to Copy Formatting In Excel (4 Easy Ways)
    • How to Flash an Excel Cell (Easy Step-by-Step Method)
    • How to Auto Format Formulas in Excel (3 Easy Ways)
    • How to Reverse a Text String in Excel (Using Formula & VBA)
    • Highlight Cell If Value Exists in Another Column in Excel
    • How to Set the Default Font in Excel (Windows and Mac)
    • How to Add Bullet Points in Excel
    • How to Rotate Text in Excel?

    В данном примере описаны макросы для автоматического форматирования или спроса формата для ячеек таблиц Excel средствами VBA.

    VBA-макрос: заливка, шрифт, линии границ, ширина столбцов и высота строк

    В процессе запыления данных сотрудниками отдела на некоторых листах были изменены форматы ячеек:

    запыления планов работ.

    Необходимо сбросить форматирование ячеек и сделать так чтобы на всех таблицах планов выполнения работ были одинаковые форматы отображения данных. Формат ячеек для исходной таблицы должен быть закреплен за шаблоном, чтобы можно было сделать сброс и применять заданный стиль оформления в дальнейшем.

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

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

    Чтобы написать свой код макроса откройте специальный VBA-редактор в Excel: «РАЗРАБОТЧИК»-«Код»-«Visual Basic» или нажмите комбинацию клавиш ALT+F11:

    Код Visual Basic.

    В редакторе создайте новый модуль выбрав инструмент «Insert»-«Module» и введите в него такой VBA-код макроса:

    Sub SbrosFormat()
    If TypeName(Selection) <> "Range" Then Exit Sub
    With Selection
    .HorizontalAlignment = xlVAlignCenter
    .VerticalAlignment = xlVAlignCenter
    .WrapText = True
    .Borders.LineStyle = xlContinuous
    .Borders.Weight = xlThin
    .Font.ColorIndex = xlColorIndexAutomatic
    .Interior.ColorIndex = xlColorIndexAutomatic
    .Columns.AutoFit
    .Rows.AutoFit
    End With
    End Sub

    VBA-код макроса.

    Теперь если нам нужно сбросить форматирование таблицы на исходный формат отображения ее данных, выделите диапазон ячеек A1:E20 и запустите макрос: «РАЗРАБОЧТИК»-«Код»-«Макросы»-«SbrosFormat»-«Выполнить». Результат работы макроса изображен ниже на рисунке:

    сбросить форматирование таблицы на исходный формат.

    Таблица приобрела формат, который определен макросом. Таким образом код VBA нам позволяет сбросить любые изменения формата ячеек на предустановленный автором отчета.

    

    Описание VBA-макроса для формата ячеек таблицы Excel

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

    1. Текст в значениях ячеек выравнивается по центру горизонтально и вертикально.
    2. Включен построчный перенос текста.
    3. Все границы ячеек получают черную обычной толщины непрерывную линию с черным цветом.
    4. Сброс цвета шрифта на авто.
    5. Удаляется любая заливка ячеек.
    6. Ширина столбцов автоматически настраивается под текст в ячейках.
    7. Автоматически настроить высоту строк по содержимому ячеек.

    Модификация исходного кода макроса для форматирования

    Если необходимо сделать так чтобы текст выравнивался не по центру относительно горизонтали, а по правую сторону ячейки, тогда измените константу xlHAlignCenter на xlHAlignRight. Она находиться в свойстве .HorizontalAlignment. Сделайте это следующим образом:

    .HorizontalAlignment = xlHAlignRight.

    Таким же образом можно выровнять текст по левую сторону изменив значение константы на xlHAlignLeft. Или можно выровнять положение текста по ширине ячейки используя константу xlHAlignJustify.

    Чтобы макрос выравнивал текст в ячейках по вертикали к низу, измените строку кода, отвечающую за данную настройку форматирования. Измените константу, которая присваивается к свойству VerticalAlignment в следующий способ:

    Если хотите выровнять текс к верху ячейки, тогда воспользуйтесь константой xlHAlignTop.

    Если нужно применить для границ ячеек толстую и пунктирную линию в синем цвете, смодифицируйте инструкцию, отвечающую за формат линий:

    .Borders.LineStyle = xlDash

    .Borders.Color = vbBlue

    .Borders.Weight = xlMedium

    Описание настройки форматирования для линий границ ячеек. Мы будем получать разные дополнительные типы линий границ если для свойства LineStyle присваивать такие константы:

    • xlDoshDot – применяется для рисования пунктирных линий в границах ячеек;
    • xlDouble – рисует двойную линию;
    • xlHairLine – рисует тонкую линию;
    • xlThick – для рисования очень толстой линии.

    Для настройки цвета линий Excel предлагает всего 8 констант для определенных цветов. Константы для настройки цвета линий границ для свойства Color:

    • vbBlack – черный;
    • vbWhite – белый;
    • vbRed – красный;
    • vbGreen –зеленый;
    • vbBlue – синий;
    • vbYellow – желтый;
    • vbMagenta – алый;
    • vbCyan – голубой.

    Но при необходимости присвоить линиям границ другие цвета можно вместо константы для свойства Color записать функцию RGB(). Достаточно лишь в аргументе этой функции указать код цвета по шкале от 0 и до 255.

    Если нужно применить толстую линию только для границ выделенного диапазона, тогда перед инструкцией End With добавьте следующую строку кода:

    .BorderAround xlContinuous, xlMedium, vbBlack

    Описание: В первом аргументе для метода BorderAround можно записать также другой стиль линии. Во втором – толщину линии, а в третьем – цвет. Константы, которые можно присвоить в качестве значений для этих аргументов можно использовать те же, которые мы использовали для свойств: LineStyle, Weight, Color.

    Если нужно экспонировать первую строку для выделенного диапазона с помощью жирного и курсивного шрифта значений ячеек. А также заполнить ячейки первой строки заливкой с голубым цветом, тогда в самом конце кода макроса перед последней инструкцией End Sub следует добавить несколько строк с VBA-кодом:

    .Rows(1).Font.Bold = True

    .Rows(1).Font.Italic = True

    .Rows(1).Interior.Color = vbCyan

    Если хотите присвоить такой же формат для не только для первой строки, но и для первого столбца выделенного диапазона, тогда скопируйте и вставьте ниже эти 3 строчки кода. После в последних трех строках измените свойство Rows на Columns.

    .Columns (1).Font.Bold = True

    .Columns (1).Font.Italic = True

    .Columns (1).Interior.Color = vbCyan

    Если нужно задать особенный формат для экспонирования последней строки выделенного диапазона, тогда измените число 1 в аргументе свойства Rows на число всех выделенных строк .Rows.Count. Например, добавьте в конец кода еще такую строку:

    .Rows(.Rows.Count).Font.Bold = True

    Полная версия модифицированного кода макроса выглядит так:

    Sub SbrosFormat()
    If TypeName(Selection) <> "Range" Then Exit Sub
    With Selection
    .HorizontalAlignment = xlVAlignCenter
    .VerticalAlignment = xlVAlignCenter
    .WrapText = True
    .Borders.LineStyle = xlDash
    .Borders.Color = vbBlue
    .Borders.Weight = xlMedium
    .Font.ColorIndex = xlColorIndexAutomatic
    .Interior.ColorIndex = xlColorIndexAutomatic
    .Columns.AutoFit
    .Rows.AutoFit
    .BorderAround xlContinuous, xlMedium, vbBlack
    .Rows(1).Font.Bold = True
    .Rows(1).Font.Italic = True
    .Rows(1).Interior.Color = vbCyan
    .Columns(1).Font.Bold = True
    .Columns(1).Font.Italic = True
    .Columns(1).Interior.Color = vbCyan
    .Rows(.Rows.Count).Font.Bold = True
    End With
    End Sub

    Пример работы измененного кода VBA-макроса:

    Пример после изменений в коде.

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

    Содержание

    1. Формат отображаемого значения
    2. Применение стилей к ячейкам листа
    3. VBA-макрос: заливка, шрифт, линии границ, ширина столбцов и высота строк
    4. Вывод сообщений о числовых значениях цветов
    5. Выравнивание по горизонтали
    6. Основные свойства объекта Font
    7. Синтаксис и параметры
    8. Именные форматы даты и времени
    9. Именованные форматы чисел
    10. Символы для форматов даты и времени
    11. Заливка ячейки цветом в VBA Excel
    12. Создание новых стилей
    13. Выравнивание по вертикали
    14. Зачем нужны именованные стили
    15. Описание VBA-макроса для формата ячеек таблицы Excel
    16. Использование предопределенных констант
    17. Изменение существующих стилей

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

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

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

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

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

    Применение стилей к ячейкам листа

    В Excel изначально установлено множество встроенных стилей. Найти их можно в меню Стили ячеек, которая расположена на вкладке Главная -> Стили.

    Откроется галерея стилей (рисунок справа).

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

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

    В процессе запыления данных сотрудниками отдела на некоторых листах были изменены форматы ячеек:

    Необходимо сбросить форматирование ячеек и сделать так чтобы на всех таблицах планов выполнения работ были одинаковые форматы отображения данных. Формат ячеек для исходной таблицы должен быть закреплен за шаблоном, чтобы можно было сделать сброс и применять заданный стиль оформления в дальнейшем.

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

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

    Чтобы написать свой код макроса откройте специальный VBA-редактор в Excel: «РАЗРАБОТЧИК»-«Код»-«Visual Basic» или нажмите комбинацию клавиш ALT+F11:

    В редакторе создайте новый модуль выбрав инструмент «Insert»-«Module» и введите в него такой VBA-код макроса:

    SubSbrosFormat()
    IfTypeName(Selection) <>"Range"Then Exit Sub
    WithSelection
    .HorizontalAlignment = xlVAlignCenter
    .VerticalAlignment = xlVAlignCenter
    .WrapText =True
    .Borders.LineStyle = xlContinuous
    .Borders.Weight = xlThin
    .Font.ColorIndex = xlColorIndexAutomatic
    .Interior.ColorIndex = xlColorIndexAutomatic
    .Columns.AutoFit
    .Rows.AutoFit
    End With
    End Sub

    Теперь если нам нужно сбросить форматирование таблицы на исходный формат отображения ее данных, выделите диапазон ячеек A1:E20 и запустите макрос: «РАЗРАБОЧТИК»-«Код»-«Макросы»-«SbrosFormat»-«Выполнить». Результат работы макроса изображен ниже на рисунке:

    Таблица приобрела формат, который определен макросом. Таким образом код VBA нам позволяет сбросить любые изменения формата ячеек на предустановленный автором отчета.

    Вывод сообщений о числовых значениях цветов

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

    Пример кода 2:

    Sub ColorTest2()

    MsgBox Range(“A1”).Interior.Color

    MsgBox Range(“A4:D8”).Interior.Color

    MsgBox Range(“C12:D17”).Cells(4).Interior.Color

    MsgBox Cells(3, 6).Interior.Color

    End Sub

    Вместо вывода сообщений можно присвоить числовые значения цветов переменным, объявив их как Long.

    Выравнивание по горизонтали

    Для выравнивания текста в ячейках рабочего листа по горизонтали в VBA Excel используется свойство HorizontalAlignment объекта Range. Оно может принимать следующие значения:

    Выравнивание Константа Значение
    По левому краю xlLeft -4131
    По центру xlCenter -4108
    По правому краю xlRight -4152

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

    Пример 1
    Заполним три первые ячейки листа Excel текстом, соответствующим предполагаемому выравниванию. Затем применим к ним выравнивание по горизонтали, а в ячейках ниже выведем соответствующие значения констант.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    Sub Primer1()

    ‘Заполняем ячейки текстом

    Range(“A1”) = “Левая сторона”

    Range(“B1”) = “Центр ячейки”

    Range(“C1”) = “Правая сторона”

    ‘Применяем горизонтальное выравнивание

    Range(“A1”).HorizontalAlignment = xlLeft

    Range(“B1”).HorizontalAlignment = xlCenter

    Range(“C1”).HorizontalAlignment = xlRight

    ‘Выводим значения констант

    Range(“A2”) = “xlLeft = “ & xlLeft

    Range(“B2”) = “xlCenter = “ & xlCenter

    Range(“C2”) = “xlRight = “ & xlRight

    End Sub

    Основные свойства объекта 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 – это не единственное свойство, отвечающее за цвет отображаемого текста в ячейке. Оно также может принимать и другие значения, кроме указанных в таблице. Смотрите подробности в статье Цвет текста (шрифта) в ячейке.

    Синтаксис и параметры

    Format(Expression, [FormatExpression], [FirstDayOfWeek], [FirstWeekOfYear])

    • Expression – любое допустимое выражение (переменная), возвращающее числовое значение или строку (обязательный параметр).
    • FormatExpression – выражение формата, именованное или содержащее инструкции из специальных символов (необязательный параметр).
    • FirstDayOfWeek – константа, задающая первый день недели (необязательный параметр).
    • FirstWeekOfYear – константа, задающая первую неделю года (необязательный параметр).

    Именные форматы даты и времени

    Имя формата Описание
    General Date Стандартное отображение даты и времени в соответствии с параметрами системы.
    Long Date Длинный формат даты.
    Medium Date Средний формат даты.
    Short Date Краткий формат даты.
    Long Time Длинный формат времени.
    Medium Time Средний формат времени.
    Short Time Краткий формат времени.

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

    Sub FormatDateTime()

    MsgBox “General Date: “ & Format(Now, “General Date”) & vbNewLine _

    & vbNewLine & “Long Date: “ & Format(Now, “Long Date”) & vbNewLine _

    & vbNewLine & “Medium Date: “ & Format(Now, “Medium Date”) & vbNewLine _

    & vbNewLine & “Short Date: “ & Format(Now, “Short Date”) & vbNewLine _

    & vbNewLine & “Long Time: “ & Format(Now, “Long Time”) & vbNewLine _

    & vbNewLine & “Medium Time: “ & Format(Now, “Medium Time”) & vbNewLine _

    & vbNewLine & “Short Time: “ & Format(Now, “Short Time”)

    End Sub

    Скорее всего, результат будет таким:

    Именованные форматы чисел

    Имя формата Описание
    General Number Стандартное отображение числа без знака разделителя групп разрядов.
    Currency Денежный формат.
    Fixed Отображение числа без знака разделителя групп разрядов с двумя цифрами после разделителя целой и дробной части.
    Standard Отображение числа со знаком разделителя групп разрядов и с двумя цифрами после разделителя целой и дробной части.
    Percent Процентный формат: отображение числа, умноженного на 100, со знаком процента (%), добавленного справа.
    Scientific Отображение числа в экспоненциальном виде.
    Yes/No Возвращается «Нет», если число равно 0, иначе отображается «Да».
    True/False Возвращается «Ложь», если число равно 0, иначе отображается «Истина».
    On/Off Возвращается «Выкл», если число равно 0, иначе отображается «Вкл».

    Проверяем работу именованных форматов на числах 2641387.7381962 и 0 с помощью кода VBA Excel:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    Sub FormatNumber()

    Dim n As Double

    n = 2641387.7381962

    ‘n = 0

    MsgBox “Форматируемое число = “ & n & vbNewLine _

    & vbNewLine & “General Number: “ & Format(n, “General Number”) & vbNewLine _

    & vbNewLine & “Currency: “ & Format(n, “Currency”) & vbNewLine _

    & vbNewLine & “Fixed: “ & Format(n, “Fixed”) & vbNewLine _

    & vbNewLine & “Standard: “ & Format(n, “Standard”) & vbNewLine _

    & vbNewLine & “Percent: “ & Format(n, “Percent”) & vbNewLine _

    & vbNewLine & “Scientific: “ & Format(n, “Scientific”) & vbNewLine _

    & vbNewLine & “Yes/No: “ & Format(n, “Yes/No”) & vbNewLine _

    & vbNewLine & “True/False: “ & Format(n, “True/False”) & vbNewLine _

    & vbNewLine & “On/Off: “ & Format(n, “On/Off”)

    End Sub

    Получаем следующий результат:

    Вместо вопросительного знака в отображении числа в формате Currency, по идее, должен быть знак валюты (₽ или руб.).

    Символы для форматов даты и времени

    Символ Описание
    Точка (.) Разделитель компонентов даты (день, месяц, год). Используется при отображении месяца в виде числа.
    Пробел Разделитель компонентов даты (день, месяц, год). Используется при отображении месяца прописью.
    Двоеточие (:) Разделитель компонентов времени (часы, минуты, секунды).
    d День в виде числа без нуля в начале (1–31).
    dd День в виде числа с нулем в начале (01–31).
    m Месяц в виде числа без нуля в начале (1–31). Если (m) следует после (h) или (hh), отображаются минуты.
    mm Месяц в виде числа с нулем в начале (01–31). Если (mm) следует после (h) или (hh), отображаются минуты.
    mmm Месяц прописью в сокращенном виде (янв–дек).
    mmmm Полное название месяца (январь–декабрь).
    y День года в виде числа (1–366).
    yy Год в виде 2-значного числа (00–99).
    yyyy Год в виде 4-значного числа (1900–9999).
    h Часы в виде числа без нуля в начале (0–23).
    hh Часы в виде числа с нулем в начале (00–23).
    n (m) Минуты в виде числа без нуля в начале (0–59).
    nn (mm) Минуты в виде числа с нулем в начале (00–59).
    s Секунды в виде числа без нуля в начале (0–59).
    ss Секунды в виде числа с нулем в начале (00–59).

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

    Sub DataIsD()

    MsgBox “d: “ & Format(Now, “d”) & vbNewLine _

    & vbNewLine & “dd: “ & Format(Now, “dd”) & vbNewLine _

    & vbNewLine & “ddd: “ & Format(Now, “ddd”) & vbNewLine _

    & vbNewLine & “dddd: “ & Format(Now, “dddd”) & vbNewLine _

    & vbNewLine & “ddddd: “ & Format(Now, “ddddd”) & vbNewLine _

    & vbNewLine & “dddddd: “ & Format(Now, “dddddd”)

    End Sub

    Заливка ячейки цветом в VBA Excel

    Пример кода 1:

    Sub ColorTest1()

    Range(“A1”).Interior.Color = 31569

    Range(“A4:D8”).Interior.Color = 4569325

    Range(“C12:D17”).Cells(4).Interior.Color = 568569

    Cells(3, 6).Interior.Color = 12659

    End Sub

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

    Есть один интересный нюанс: если присвоить свойству .Interior.Color отрицательное значение от -16777215 до -1, то цвет будет соответствовать значению, равному сумме максимального значения палитры (16777215) и присвоенного отрицательного значения. Например, заливка всех трех ячеек после выполнения следующего кода будет одинакова:

    Sub ColorTest11()

    Cells(1, 1).Interior.Color = 12207890

    Cells(2, 1).Interior.Color = 16777215 + (12207890)

    Cells(3, 1).Interior.Color = 4569325

    End Sub

    Проверено в Excel 2016.

    Создание новых стилей

    Если встроенных стилей Excel не достаточно, то можно создать собственные стили. Это достаточно просто сделать:

    1. Выберите любую ячейку и отформатируйте ее обычным способом так как вам нравится. Форматирование этой ячейки в дальнейшим мы сохраним как именованный стиль. Вы можете использовать любое доступное форматирование из диалогового окна Форматирование ячеек.
    2. Перейдите на вкладку Главная -> Стили ячеек и выберите команду Создать стиль ячейки. Откроется диалоговое окно Стиль.
    3. Выберите Имя стиля, которое будет в дальнейшем будете использовать.
    4. Выберите опции, которые будут применяться к выбранному стилю (по умолчанию отмечены все опции). Если нет необходимости в какой то опции, например вы не хотите изменять шрифт ячейки – то снимите выбор.
    5. Нажмите кнопку OK.

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

    Выравнивание по вертикали

    Для выравнивания текста в ячейках рабочего листа по вертикали в VBA Excel используется свойство VerticalAlignment объекта Range. Оно может принимать следующие значения:

    Выравнивание Константа Значение
    По верхнему краю xlTop -4160
    По центру xlCenter -4108
    По нижнему краю xlBottom -4107

    Точно так же, как и по горизонтали, при выравнивании по вертикали свойству VerticalAlignment можно присваивать как значение из константы, так и непосредственно ее числовое значение.

    Пример 2
    Заполним три первые ячейки третьей строки листа Excel текстом, соответствующим предполагаемому выравниванию. Затем применим к ним выравнивание по вертикали, а в ячейках ниже выведем соответствующие значения констант.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    Sub Primer2()

    ‘Заполняем ячейки текстом

    Range(“A3”) = “Верх”

    Range(“B3”) = “Центр”

    Range(“C3”) = “Низ”

    ‘Применяем вертикальное выравнивание

    Range(“A3”).VerticalAlignment = xlTop

    Range(“B3”).VerticalAlignment = xlCenter

    Range(“C3”).VerticalAlignment = xlBottom

    ‘Выводим значения констант

    Range(“A4”) = “xlTop = “ & xlTop

    Range(“B4”) = “xlCenter = “ & xlCenter

    Range(“C4”) = “xlBottom = “ & xlBottom

    End Sub

    Зачем нужны именованные стили

    Идея именованных стилей заключается в следующем:

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

    Стили Excel позволяют отформатировать следующие атрибуты:

    • числовой формат (например, число, короткий формат даты, формат телефонного номера и т.п.);
    • выравнивание (по вертикали и горизонтали);
    • шрифт (название, размер, цвет и пр.);
    • граница (тип линии, цвет границы);
    • заливка (цвет фона, узор);
    • защита (защищаемая ячейка, скрытие формул).

    Описание VBA-макроса для формата ячеек таблицы Excel

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

    1. Текст в значениях ячеек выравнивается по центру горизонтально и вертикально.
    2. Включен построчный перенос текста.
    3. Все границы ячеек получают черную обычной толщины непрерывную линию с черным цветом.
    4. Сброс цвета шрифта на авто.
    5. Удаляется любая заливка ячеек.
    6. Ширина столбцов автоматически настраивается под текст в ячейках.
    7. Автоматически настроить высоту строк по содержимому ячеек.

    Использование предопределенных констант

    В VBA Excel есть предопределенные константы часто используемых цветов для заливки ячеек:

    Предопределенная константа Наименование цвета
    vbBlack Черный
    vbBlue Голубой
    vbCyan Бирюзовый
    vbGreen Зеленый
    vbMagenta Пурпурный
    vbRed Красный
    vbWhite Белый
    vbYellow Желтый
    xlNone Нет заливки

    Присваивается цвет ячейке предопределенной константой в VBA Excel точно так же, как и числовым значением:

    Пример кода 3:

    Range(“A1”).Interior.Color = vbGreen

    Изменение существующих стилей

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

    1. Перейти на вкладку Главная -> Стили ячеек.
    2. Щелкнуть правой кнопкой мыши по стилю, который хотите изменить и выбрать команду Изменить.
    3. Откроется диалоговое окно Стиль, в котором указано применяемое к ячейке форматирование.
    4. Нажмите на кнопку Формат, и в появившемся диалоговом окне Формат ячеек задайте необходимое форматирование. Например, чтобы изменить размер шрифта перейдите на вкладку Шрифт, задайте нужный размер и нажмите кнопку ОК.
    5. Нажмите еще раз кнопку ОК, чтобы закрыть окно Стиль и применить форматирование к изменяемому стилю.

    Источники

    • https://vremya-ne-zhdet.ru/vba-excel/formatirovaniye-teksta-v-yacheyke/
    • https://micro-solution.ru/excel/formatting/formatting-styles
    • https://exceltable.com/vba-macros/makrosy-dlya-formatirovaniya-yacheek
    • https://vremya-ne-zhdet.ru/vba-excel/tsvet-yacheyki-zalivka-fon/
    • https://vremya-ne-zhdet.ru/vba-excel/vyravnivaniye-teksta-v-yacheyke/
    • https://vremya-ne-zhdet.ru/vba-excel/funktsiya-format/
     

    andreyka33

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

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

    #1

    28.08.2017 10:48:43

    Здравствуйте !

    Есть текст в ячейках в диапазоне и в этих текстах встречается значение «//»
    После «//» весь текст дб жирным до конца строки в ячейке  — кусок макроса такой

    Код
    Sub ЖирныйТекст()
    Dim LastRow As Long, r As Long
    LastRow = Cells(Rows.Count, 2).End(xlUp).Row
    For r = 2 To LastRow
    
    'как в этом месте прописать данное условие ?
    If Cells(r, 2) Like "//" '''''''''''.Font.Bold 
    
    End If
    Next
    End Sub
    
     

    kuklp

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

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

    E-mail и реквизиты в профиле.

    Используйте не like а instr.

    Я сам — дурнее всякого примера! …

     

    webley

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

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

    #3

    28.08.2017 10:58:29

    Код
        If Cells(r, 2) Like "*//*" Then
            Cells(r, 2).Characters(InStr(1, Cells(r, 2), "//") + 2, Len(Cells(r, 2))).Font.Bold = True
        End If
     

    V

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

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

    #4

    28.08.2017 10:59:18

    тоже пригодится

    Код
    Cells(r, 2).Characters(Start:=10, Length:=12).Font.FontStyle = "полужирный"

    10 и 12 меняете на свои. как определить их решать вам.

    Изменено: V28.08.2017 10:59:49

     

    kuklp

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

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

    E-mail и реквизиты в профиле.

    #5

    28.08.2017 11:08:41

    Код
            n = InStr(1, Cells(r, 2), "//")
            If n Then Cells(r, 2).Characters(n + 3).Font.Bold = True

    ;)

    Я сам — дурнее всякого примера! …

     

    andreyka33

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

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

    #6

    28.08.2017 11:09:54

    вот так заработало как надо — спасибо большое  всем кто откликнулся !

    Код
    Sub ЖирныйТекст()
    Dim LastRow As Long, r As Long
    LastRow = Cells(Rows.Count, 2).End(xlUp).Row
    For r = 2 To LastRow
     
    If Cells(r, 2) Like "*//*" Then
    Cells(r, 2).Characters(InStr(1, Cells(r, 2), "//") + 2, Len(Cells(r, 2))).Font.Bold = True
    End If
     
    Next 
    End Sub

         

     

    webley

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

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

    Код kuklp, конечно, поизящнее будет, только не Characters(n + 3), а Characters(n + 2)

     

    andreyka33

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

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

    #8

    12.09.2017 13:57:51

    все бы хорошо но только в тексте ячейки вместо одинарного «//» еще встречается «http://» — а это ( «http:// до первого «//» или  «http:// просто)нужно исключить из выделения
    пробую макрос но дает ошибку в строке Cells(r, 21).Characters(Mid$(Cells(r, 21), p1 + 0, p2 — p1 — 1)).Font.Bold = False

    Код
    Sub ЖирныйТекст()
    Dim LastRow As Long, r As Long, n As String,, p1 As String, p2 As String
    LastRow = Cells(Rows.Count, 2).End(xlUp).Row
    For r = 4 To LastRow
    n = InStr(1, Cells(r, 21), "*//")
    If n Then Cells(r, 21).Characters(n + 0).Font.Bold = True
        p1 = InStr(Cells(r, 21), "http://")
        p2 = InStr(Cells(r, 21), "//")
        If p2 > p1 Then  
        Cells(r, 21).Characters(Mid$(Cells(r, 21), p1 + 0, p2 - p1 - 1)).Font.Bold = False
        End If
    End Sub 
    

    Изменено: andreyka3312.09.2017 14:08:03

     

    Equio

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

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

    Приведите, пожалуйста, пример строки, в которой есть «http://» c указанием номера позиции, начиная с которой текст должен быть жирным.

     

    Hugo

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

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

    Решение влоб — сперва заменить (в перменной конечно) «http://» например на «wwwwwww», затем искать «//»

    Изменено: Hugo12.09.2017 14:11:19

     

    andreyka33

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

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

    нет в строках номера позиции  — в разных ячейках все по разному

     

    Equio

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

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

    А Вы приведите пример одной (любой) ячейки, и конкретно для неё укажите, начиная с какой позиции должно быть жирным.

     

    andreyka33

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

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

    например в тексте
    1)» пппппппппппппппп   сайт    

    http://белая-ночь.ru

      текст1  текст2   текст3  //текст4 текст5″
    должно быть выделено жирным только  //текст4 текст5
    2) в таком варианте
    » пппппппппппппппп  

    http://белая-ночь.ru

      текст1  текст2   текст3  текст4 текст5″
    ничего не выделяется жирным

    Изменено: andreyka3312.09.2017 14:23:11

     

    Hugo

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

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

    Ну так мой алгоритм как раз  «в кассу».

     

    andreyka33

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

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

    мб   http://  мб https://  а вдруг редиректа нету ….

     

    Hugo

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

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

    Ну замените все возможные варианты, их ведь всего ничего… Ну а на нет и суда нет :)

     

    Equio

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

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

    Чуть подробнее распишу предложенный выше алгоритм:
    1. С помощью Replace заменяете в ячейке «http://» на любые семь символов, не содержащие «//»  (семь, потому что в «http://» — семь символов), например «wwwwwww»; «https://» заменяете на 8 символов; результат присваиваете переменной S.
    2. Далее делаете всё так же, как и раньше, за исключением того, что для определения наличия «//» и для определения номера позиции обращаетесь к переменной S, а не к ячейке.  

     

    andreyka33

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

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

    #18

    12.09.2017 16:32:09

    до конца не понял алгоритм и как его реализовать
    сделал так для лок задачи

    Код
    Sub ЖирныйТекст()
    Dim LastRow As Long, r As Long, n As String,, p1 As String, p2 As String
    LastRow = Cells(Rows.Count, 2).End(xlUp).Row
    For r = 4 To LastRow
    Cells(r, 21) = Application.WorksheetFunction.Trim(Cells(r, 21))
    Cells(r, 21).Replace What:="http://", Replacement:="www.", LookAt:=xlPart, SearchOrder _
    :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    Cells(r, 21).Replace What:="https://", Replacement:="www.", LookAt:=xlPart, SearchOrder _
    :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
     Cells(r, 21).Font.Bold = False
    n = InStr(1, Cells(r, 21), "//")
    If n Then Cells(r, 21).Characters(n + 0).Font.Bold = True
    End Sub

    Изменено: andreyka3312.09.2017 17:02:48

     

    Equio

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

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

    #19

    12.09.2017 19:42:57

    Код
    For r = 4 To LastRow
        S = Replace(Replace(Cells(r, 2), "http://", "wwwwwww"), "https://", "wwwwwwww")
        n = InStr(S, "//")
        If (n > 0) Then
            Cells(r, 2).Characters(n + 2).Font.Bold = True
        End If
    Next r
     

    andreyka33

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

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

    #20

    12.09.2017 21:00:33

    Благодарю Equio за помощь !

    В VBA вы можете изменить свойства шрифта с помощью свойства шрифта VBA объекта Range. Введите следующий код в редактор VBA, и вы увидите список всех доступных вариантов:

    Ниже мы обсудим несколько наиболее распространенных свойств.

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

    Есть несколько способов установить цвета шрифта.

    vbColor

    Самый простой способ установить цвета — использовать vbColors:

    1 Диапазон («a1»). Font.Color = vbRed

    Однако количество доступных цветов очень ограничено. Это единственные доступные варианты:

    Цвет — RGB

    Вы также можете установить цвета на основе RGB (красный, зеленый, синий). Здесь вы вводите значения цвета от 0 до 255 для красного, зеленого и синего. Используя эти три цвета, вы можете сделать любой цвет:

    1 Диапазон («a1»). Font.Color = RGB (255,255,0)

    ColorIndex

    VBA / Excel также имеет свойство ColorIndex. Это делает вам доступными предварительно созданные цвета. Однако они хранятся в виде порядковых номеров, что затрудняет определение того, что это за цвет:

    1 Диапазон («a1»). Font.ColorIndex =…

    Мы написали статью о цветовых кодах VBA, включая список кодов VBA ColorIndex. Там вы можете узнать больше о цветах.

    Размер шрифта

    Это установит размер шрифта на 12:

    1 Диапазон («a1»). Размер шрифта = 12

    или до 16:

    1 Диапазон («a1»). Размер шрифта = 16

    Жирный шрифт

    Установить полужирный шрифт ячейки легко:

    1 Диапазон («A1»). Font.Bold = True

    или очистить форматирование полужирным шрифтом:

    1 Диапазон («A1»). Font.Bold = False

    Название шрифта

    Чтобы изменить название шрифта, используйте Имя имущество:

    1 Диапазон («A1»). Font.Name = «Calibri»
    1 Диапазон («A1»). Font.Name = «Arial»
    1 Диапазон («A1»). Font.Name = «Times New Roman»

    Стиль ячейки

    Excel предлагает возможность создавать «стили» ячеек. Стили можно найти в Главная Лента> Стили:

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

    Лично для многих моделей, над которыми я работаю, я обычно создаю стиль ячейки «Вход»:

    1 Диапазон («a1»). Style = «Input»

    Используя стили, вы также можете легко определять типы ячеек на вашем листе. В приведенном ниже примере выполняется цикл по всем ячейкам на листе и изменяется любая ячейка со Style = «Input» на «InputLocked»:

    1234567 Тусклая ячейка как диапазонДля каждой ячейки в ActiveSheet.CellsЕсли Cell.Style = «Input», тогдаCell.Style = «InputLocked»Конец, еслиСледующая ячейка

    Вы поможете развитию сайта, поделившись страницей с друзьями

    Изменение размера шрифта в одной ячейке

    Skorpika

    Дата: Воскресенье, 28.12.2014, 18:00 |
    Сообщение № 1

    Группа: Пользователи

    Ранг: Новичок

    Сообщений: 32


    Репутация:

    0

    ±

    Замечаний:
    20% ±


    Excel 2003 и 13

    Спецы, подскажите.
    Можно ли при выводе текста тектстбокса в ячейку листа экселя, сделать разные фрагменты текста разного размера и «жирности»
    К примеру ТextBox=»Иван Иванов«, при этом в ячейке должно получиться Сеlls(1,1)= «Иван Иванов» и «Иванов» Другим размером шрифта (Большего). Или формат текста буде таким каким задан в ячейке (1, 1) по умолчанию. Вручную изменить размер шрифта фрагмента ячейки вроде прокатывает.

     

    Ответить

    wild_pig

    Дата: Воскресенье, 28.12.2014, 18:11 |
    Сообщение № 2

    Группа: Проверенные

    Ранг: Обитатель

    Сообщений: 516


    Репутация:

    97

    ±

    Замечаний:
    0% ±


    2003, 2013

    И макросом прокатит. Что нужно выделять — второе слово, может весь текст после первого, а может этот пример это «пример»?

    Сообщение отредактировал wild_pigВоскресенье, 28.12.2014, 18:13

     

    Ответить

    Skorpika

    Дата: Воскресенье, 28.12.2014, 18:34 |
    Сообщение № 3

    Группа: Пользователи

    Ранг: Новичок

    Сообщений: 32


    Репутация:

    0

    ±

    Замечаний:
    20% ±


    Excel 2003 и 13

    Там по итогу получается текстбох из 20-30 строк (шрифт прямой 10 размера), и вот последняя — подпись начальника «Самый главный начальник ____________ Иванов И.И.» (вот ее бы шрифт 12, кривой и жирный). И отделить её от текста пока нет возможности.
    [moder]Читаем Правила форума. Прикладываем файл с примером[/moder]

    Сообщение отредактировал SkorpikaВоскресенье, 28.12.2014, 18:35

     

    Ответить

    Skorpika

    Дата: Воскресенье, 28.12.2014, 20:05 |
    Сообщение № 4

    Группа: Пользователи

    Ранг: Новичок

    Сообщений: 32


    Репутация:

    0

    ±

    Замечаний:
    20% ±


    Excel 2003 и 13

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

    К сообщению приложен файл:

    7037055.xls
    (29.0 Kb)

    Сообщение отредактировал SkorpikaВоскресенье, 28.12.2014, 20:06

     

    Ответить

    SkyPro

    Дата: Воскресенье, 28.12.2014, 20:28 |
    Сообщение № 5

    Группа: Друзья

    Ранг: Старожил

    Сообщений: 1206


    Репутация:

    255

    ±

    Замечаний:
    0% ±


    2010

    Запишите макрорекордером форматирование куска текста, при помощи instrrev найдите последнюю «.» , и с этого места примените записанное.

    [vba]

    Код

    ‘делает «жирным» текст после последней «точки» в ячейке. Принимает в качестве аргумента ячейку.
    Sub setBold(rCell As Range)
         Dim strt&
         With rCell
             strt = InStrRev(.Value, «.») + 1
             If strt > 0 Then .Characters(Start:=strt, Length:=Len(.Value)).Font.FontStyle = «полужирный»
         End With
    End Sub

    ‘Пример использования
    Sub setBoldFirstCell()
         setBold ActiveCell
    End Sub

    [/vba]


    skypro1111@gmail.com

    Сообщение отредактировал SkyProВоскресенье, 28.12.2014, 20:37

     

    Ответить

    Pelena

    Дата: Воскресенье, 28.12.2014, 20:36 |
    Сообщение № 6

    Группа: Админы

    Ранг: Местный житель

    Сообщений: 18797


    Репутация:

    4284

    ±

    Замечаний:
    ±


    Excel 2016 & Mac Excel

    Была похожая тема
    По аналогии как-то так
    [vba]

    Код

    Private Sub CommandButton1_Click()
           Dim iStart&, sSearchString
           With Sheets(«Лист1»)
               .Cells(1, 1) = TextBox1.Value
               sSearchString = «Заместитель чегото там»
               If .Cells(1, 1) Like «*» & sSearchString & «*» Then
                   iStart = InStr(.Cells(1, 1).Value, sSearchString)
                   With .Cells(1, 1).Characters(Start:=iStart, Length:=Len(.Cells(1, 1).Value) — iStart + 1).Font
                       .Bold = True
                       .Italic = True
                       .Size = 12
                   End With
               End If
               .Range(«A1:C3»).PrintOut Copies:=1
           End With
    End Sub

    [/vba]

    К сообщению приложен файл:

    3195935.xls
    (39.5 Kb)


    «Черт возьми, Холмс! Но как??!!»
    Ю-money 41001765434816

     

    Ответить

    Skorpika

    Дата: Воскресенье, 28.12.2014, 20:48 |
    Сообщение № 7

    Группа: Пользователи

    Ранг: Новичок

    Сообщений: 32


    Репутация:

    0

    ±

    Замечаний:
    20% ±


    Excel 2003 и 13

    Спс за рекодер. instrrev — к сожалению для меня пока с другой планеты, а вот посчитать количество знаков в ячейке (оно всегда переменное), и изменить исключительно последние требуемые (а их количество с конца одинаково) это уже вроде решаемо. попробую. кстати, как посчитать кол-во знаков в ячейке?
    [vba]

    Код

    Sub Макрос2()

    ‘ Макрос2 Макрос
    ‘ Макрос записан 28.12.2014 (SkorpikaCom)

               With Cells(13, 1).Characters(Start:=1, Length:=33).Font
             .Name = «Times New Roman»
             .FontStyle = «курсив»
             .Size = 11
             .Strikethrough = False
             .Superscript = False
             .Subscript = False
             .OutlineFont = False
             .Shadow = False
             .Underline = xlUnderlineStyleNone
             .ColorIndex = xlAutomatic
         End With
         With Cells(13, 1).Characters(Start:=34, Length:=105).Font
             .Name = «Times New Roman»
             .FontStyle = «полужирный курсив»
             .Size = 11
             .Strikethrough = False
             .Superscript = False
             .Subscript = False
             .OutlineFont = False
             .Shadow = False
             .Underline = xlUnderlineStyleNone
             .ColorIndex = xlAutomatic
         End With
    End Sub

    [/vba]

    Сообщение отредактировал SkorpikaВоскресенье, 28.12.2014, 20:51

     

    Ответить

    RAN

    Дата: Воскресенье, 28.12.2014, 21:01 |
    Сообщение № 8

    Группа: Друзья

    Ранг: Экселист

    Сообщений: 5645

    instrrev — к сожалению для меня пока с другой планеты

    Не, на Планету, тем паче не друой конец ходить не надо.
    [vba][/vba]
    Токмо с другого конца. F1 расскажет подробнее.


    Быть или не быть, вот в чем загвоздка!

     

    Ответить

    Skorpika

    Дата: Воскресенье, 28.12.2014, 21:12 |
    Сообщение № 9

    Группа: Пользователи

    Ранг: Новичок

    Сообщений: 32


    Репутация:

    0

    ±

    Замечаний:
    20% ±


    Excel 2003 и 13

    RAN, :) спс за помощь в прошлые разы, но сейчас тут твой ответ для меня пока на клингонском.
    Решил пока как смог
    Len(Cells(13, 1)) — считает знаки в ячейке, соответственно

    …. Cells(13, 1).Characters(Start:=…, Length:=….).Font….
    Длинна Х
    старт Len(Cells(13, 1))-X (X=надо посчитать кол-во символов в последней строке)
    кстати, ересь с фэлсами в коде я так понимаю можно убрать?

    Сообщение отредактировал SkorpikaВоскресенье, 28.12.2014, 21:44

     

    Ответить

    RAN

    Дата: Воскресенье, 28.12.2014, 22:46 |
    Сообщение № 10

    Группа: Друзья

    Ранг: Экселист

    Сообщений: 5645

    ересь с фэлсами в коде я так понимаю можно убрать

    Можно, наверное.
    А что это такое, если не секрет?


    Быть или не быть, вот в чем загвоздка!

     

    Ответить

    Gustav

    Дата: Воскресенье, 28.12.2014, 23:56 |
    Сообщение № 11

    Группа: Друзья

    Ранг: Старожил

    Сообщений: 2398


    Репутация:

    985

    ±

    Замечаний:
    0% ±


    начинал с Excel 4.0, видел 2.1

    внутри виза после сайза = 11 можно всё безболезненно убрать


    МОИ: Ник, Tip box: 41001663842605

     

    Ответить

    RAN

    Дата: Понедельник, 29.12.2014, 00:09 |
    Сообщение № 12

    Группа: Друзья

    Ранг: Экселист

    Сообщений: 5645

    Gustav, :D


    Быть или не быть, вот в чем загвоздка!

     

    Ответить

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