Vba excel borders linestyle

Программное создание границ ячеек произвольного диапазона с помощью кода VBA Excel. Свойство Borders объекта Range. Создание границ одной ячейки. Код макроса.

Программное создание границ ячеек

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

‘Для этого необходима всего одна строка:

Range(«A1:G7»).Borders.LineStyle = True

‘Вместо ключевого слова True можно

‘использовать константу xlContinuous:

Range(«A1:G7»).Borders.LineStyle = xlContinuous

‘Кроме того, для создания границ ячеек можно

‘использовать единственную строку с указанием

‘какого-нибудь параметра, например,

‘для создания сетки из синих границ:

Range(«A1:G7»).Borders.Color = vbBlue

‘или для создания сетки из границ в виде двойных линий:

Range(«A1:G7»).Borders.LineStyle = xlDouble

‘Чтобы применить при создании границ два

‘параметра, придется использовать уже две

‘строки кода, например, для создания сетки

‘из границ в виде жирных красных линий:

Range(«A1:G7»).Borders.Weight = xlThick

Range(«A1:G7»).Borders.Color = vbRed

‘Удалить границы можно с помощью строки:

Range(«A1:G7»).Borders.LineStyle = False

‘Вместо ключевого слова False можно

‘использовать константу xlNone:

Range(«A1:G7»).Borders.LineStyle = xlNone

Создание границ одной ячейки

Создать границы ячейки (только для одной ячейки) в VBA Excel можно следующим образом:

Range(«A5»).Borders.LineStyle = True

Cells(2, 8).Borders.Color = vbBlue

ActiveCell.Borders.LineStyle = xlDouble

‘Удаление границ:

ActiveCell.Borders.LineStyle = False

Пример кода записанного макроса

Запись макроса: включаем запись, выбираем диапазон «A1:E9», на панели инструментов выбираем значок «Все границы», останавливаем запись. И это все наши выполненные действия, а в результате получаем следующий код:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

Sub Макрос1()

    Range(«A1:E9»).Select

‘Отображается левая граница диапазона

    With Selection.Borders(xlEdgeLeft)

        .LineStyle = xlContinuous

        .ColorIndex = 0

        .TintAndShade = 0

        .Weight = xlThin

    End With

‘Отображается верхняя граница диапазона

    With Selection.Borders(xlEdgeTop)

        .LineStyle = xlContinuous

        .ColorIndex = 0

        .TintAndShade = 0

        .Weight = xlThin

    End With

‘Отображается нижняя граница диапазона

    With Selection.Borders(xlEdgeBottom)

        .LineStyle = xlContinuous

        .ColorIndex = 0

        .TintAndShade = 0

        .Weight = xlThin

    End With

‘Отображается правая граница диапазона

    With Selection.Borders(xlEdgeRight)

        .LineStyle = xlContinuous

        .ColorIndex = 0

        .TintAndShade = 0

        .Weight = xlThin

    End With

‘Отображаются внутренние вертикальные линии

    With Selection.Borders(xlInsideVertical)

        .LineStyle = xlContinuous

        .ColorIndex = 0

        .TintAndShade = 0

        .Weight = xlThin

    End With

‘Отображаются внутренние горизонтальные линии

    With Selection.Borders(xlInsideHorizontal)

        .LineStyle = xlContinuous

        .ColorIndex = 0

        .TintAndShade = 0

        .Weight = xlThin

    End With

End Sub

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

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

Создание и удаление диагональных линий

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

‘Создание диагональных линий:

Range(«A1:G7»).Borders(xlDiagonalDown).LineStyle = True

Range(«A1:G7»).Borders(xlDiagonalUp).LineStyle = True

‘Удаление диагональных линий:

Range(«A1:G7»).Borders(xlDiagonalDown).LineStyle = xlNone

Range(«A1:G7»).Borders(xlDiagonalUp).LineStyle = xlNone

Расположение границ ячеек и диапазонов

Расположение границ по краям и внутри ячеек и диапазонов описывают константы из коллекции XlBordersIndex.

Список констант XlBordersIndex:

Константа Значение Описание
xlDiagonalDown 5 Диагональная линия от верхнего левого угла к нижнему правому углу в каждой ячейке диапазона.
xlDiagonalUp 6 Диагональная линия от нижнего левого угла к правому верхнему углу в каждой ячейке диапазона.
xlEdgeBottom 9 Граница по нижнему краю диапазона.
xlEdgeLeft 7 Граница по левому краю диапазона.
xlEdgeRight 10 Граница по правому краю диапазона.
xlEdgeTop 8 Граница по верхнему краю диапазона.
xlInsideHorizontal 12 Горизонтальные границы для всех ячеек в диапазоне, за исключением внешних границ диапазона.
xlInsideVertical 11 Вертикальные границы для всех ячеек в диапазоне, за исключением внешних границ диапазона.

‘Отображаем у выделенной ячейки нижнюю границу с толщиной и стилем по умолчанию (xlThin и xlContinuous)

ActiveCell.Borders(xlEdgeBottom).LineStyle = True

ActiveCell.Borders(xlEdgeBottom).LineStyle = 1

Толщина границ ячеек и диапазонов

Толщину границ по краям и внутри ячеек и диапазонов описывают константы из коллекции XlBorderWeight.

Список констант XlBorderWeight:

Константа Значение Описание
xlHairline 1 Очень тонкая граница
xlThin 2 Тонкая граница (по умолчанию)
xlMedium -4138 | 3* Граница средней толщины
xlThick 4 Толстая граница

* У меня, в Excel 2016, константе xlMedium соответствует не только числовое значение -4138, но и 3.

‘Отображаем у выделенной ячейки нижнюю границу в виде толстой линии

ActiveCell.Borders(xlEdgeBottom).Weight = xlThick

Стили границ (типы линий)

Стили границ по краям и внутри ячеек и диапазонов описывают константы из коллекции XlLineStyle.

Список констант XlLineStyle:

Константа Значение Описание
xlContinuous 1 Непрерывная линия
xlDash -4115 Штриховая линия
xlDashDot 4 Чередование точек и тире
xlDashDotDot 5 Чередование двух точек и тире
xlDot -4118 Пунктирная линия
xlDouble -4119 Двойная линия
xlLineStyleNone -4142 Нет границы (удаление границы)
xlSlantDashDot 13 Линия, разрезанная двойными слешами

Применяем разные типы линий к разным сторонам выделенного диапазона:

Sub Primer()

    With Selection

        .Borders(xlEdgeTop).LineStyle = xlDash

        .Borders(xlEdgeTop).Weight = xlMedium

        .Borders(xlEdgeRight).LineStyle = xlDouble

        .Borders(xlEdgeBottom).LineStyle = xlDot

        .Borders(xlEdgeLeft).LineStyle = xlDashDot

    End With

End Sub

Какие могут быть границы в сочетаниях типа линии и ее толщины, вы можете видеть в диалоговом окне «Формат ячеек» на вкладке «Граница».


title keywords f1_keywords ms.prod api_name ms.assetid ms.date ms.localizationpriority

Borders.LineStyle property (Excel)

vbaxl10.chm181077

vbaxl10.chm181077

excel

Excel.Borders.LineStyle

a057234d-0442-3fd7-5547-b19451774c0e

04/13/2019

medium

Borders.LineStyle property (Excel)

Returns or sets the line style for the border. Read/write XlLineStyle, xlGray25, xlGray50, xlGray75, or xlAutomatic.

Syntax

expression.LineStyle

expression A variable that represents a Borders object.

Example

This example puts a border around the chart area and the plot area of Chart1.

With Charts("Chart1") 
 .ChartArea.Border.LineStyle = xlDashDot 
 With .PlotArea.Border 
 .LineStyle = xlDashDotDot 
 .Weight = xlThick 
 End With 
End With

[!includeSupport and feedback]

In this article I will explain how you can modify border thickness and style using VBA for Excel. For more information about creating borders please see Excel VBA, Create Border. In that article I’ve explained how you can create a border for the different sections of a range of cells (i.e top edge, left edge, …)  Therefore I’m assuming readers are familiar with the basics of creating a border.

Jump To:

  • Border Line Styles, .LineStyle
  • Border Line Thickness, .Weight
  • Example

You can download the code and file related to this article here.


Border Line Styles, .LineStyle:

Basically we’ve got 6 different border line styles:

  • Continuous (xlContinuous)
  • Dot, (xlDot)
  • DashDotDot, (xlDashDotDot)
  • Dash, (xlDash)
  • SlantDashDot, (xlSlantDashDot)
  • Double, (xlDouble)

You can see them in the figure below:

Excel VBA Line Styles
The borders were created using the code below:

Sub main()
Dim i As Integer
i = 1
Range(Cells(i, 3), Cells(i, 5)).Borders(xlEdgeBottom).LineStyle _
= xlContinuous
i = 3
Range(Cells(i, 3), Cells(i, 5)).Borders(xlEdgeBottom).LineStyle _
= xlDot
i = 5
Range(Cells(i, 3), Cells(i, 5)).Borders(xlEdgeBottom).LineStyle _
= xlDashDot
i = 7
Range(Cells(i, 3), Cells(i, 5)).Borders(xlEdgeBottom).LineStyle _
= xlDash
i = 9
Range(Cells(i, 3), Cells(i, 5)).Borders(xlEdgeBottom).LineStyle _
= xlSlantDashDot
i = 11
Range(Cells(i, 3), Cells(i, 5)).Borders(xlEdgeBottom).LineStyle _
= xlDouble
End Sub

The code above is equivalent to the code below:

Sub main()
Range("C1:E1").Borders(xlEdgeBottom).LineStyle = xlContinuous
Range("C3:E3").Borders(xlEdgeBottom).LineStyle = xlDot
Range("C5:E5").Borders(xlEdgeBottom).LineStyle = xlDashDot
Range("C7:E7").Borders(xlEdgeBottom).LineStyle = xlDash
Range("C9:E9").Borders(xlEdgeBottom).LineStyle = xlSlantDashDot
Range("C11:E11").Borders(xlEdgeBottom).LineStyle = xlDouble
End Sub


Border Line Thickness, .Weight:

There are 3 different border line thicknesses available:

  • Thin
  • Medium
  • Thick

The different thicknesses can be seen in the figure below:

Excel VBA, Line  Thickness
The code below was used to generate these lines:

Sub main()
Range("C1:E1").Borders(xlEdgeBottom).LineStyle = xlContinuous
Range("C1:E1").Borders(xlEdgeBottom).Weight = xlThin

Range("C3:E3").Borders(xlEdgeBottom).LineStyle = xlContinuous
Range("C3:E3").Borders(xlEdgeBottom).Weight = xlMedium

Range("C5:E5").Borders(xlEdgeBottom).LineStyle = xlContinuous
Range("C5:E5").Borders(xlEdgeBottom).Weight = xlThick

End Sub


Example:

In this example the user selects the line style and line weight using drop down lists in cells A2 and B2. Upon selecting a new value from the drop down lists, the border on the bottom edge of the cells C4:F4 is updated:

Excel VBA, Example, Border, Line style

Excel VBA, Example, Border, Line Thickness
Result:

Excel VBA, Example
The drop down list is created using data validation. For more information about creating drop down lists in Excel please see Excel VBA Drop Down Lists.

The code used for this example can be seen below:

'exectues when the user makes changes to the sheet
Private Sub worksheet_change(ByVal target As Range)
'set line style
If Cells(2, 1) = "Continuous" Then
    Range("C4:F4").Borders(xlEdgeBottom).LineStyle = xlContinuous
ElseIf Cells(2, 1) = "Dot" Then
    Range("C4:F4").Borders(xlEdgeBottom).LineStyle = xlDot
ElseIf Cells(2, 1) = "Dash" Then
    Range("C4:F4").Borders(xlEdgeBottom).LineStyle = xlDash
ElseIf Cells(2, 1) = "DashDotDot" Then
    Range("C4:F4").Borders(xlEdgeBottom).LineStyle = xlDashDotDot
ElseIf Cells(2, 1) = "Dash" Then
    Range("c4:F4").Borders(xlEdgeBottom).LineStyle = xlSlantDashDot
ElseIf Cells(2, 1) = "SlantDashDot" Then
    Range("c4:F4").Borders(xlEdgeBottom).LineStyle = xlDouble
End If

'set the border thickness
If Cells(2, 2) = "Thin" Then
    Range("C4:F4").Borders(xlEdgeBottom).Weight = xlThin
ElseIf Cells(2, 2) = "Medium" Then
    Range("C4:F4").Borders(xlEdgeBottom).Weight = xlMedium
ElseIf Cells(2, 2) = "Thick" Then
    Range("C4:F4").Borders(xlEdgeBottom).Weight = xlThick
End If

End Sub

The main function for this example is a worksheet_change event handler. The event handler executes when the user selects a new value from the drop down lists:

Private Sub worksheet_change(ByVal target As Range)
...
End Sub

The first part of the code checks which value was chosen from the drop down list in cell A2 and adjusts the border style of the bottom edge of the range C4:F4 accordingly:

If Cells(2, 1) = "Continuous" Then
    Range("C4:F4").Borders(xlEdgeBottom).LineStyle = xlContinuous
ElseIf Cells(2, 1) = "Dot" Then
...
End If

The second part of the code checks which value was chosen from the drop down list in cell B2 and adjusts the border thickness of the bottom edge of the range C4:F4 accordingly:

If Cells(2, 2) = "Thin" Then
    Range("C4:F4").Borders(xlEdgeBottom).Weight = xlThin
ElseIf Cells(2, 2) = "Medium" Then
...
End If

You can download the code and file related to this article here.

See also:

  • Excel VBA, Create Border
  • Excel VBA, Format Cells and Ranges Using the Macro Recorder
  • Excel VBA Border Colors
  • Excel VBA, Remove Border
  • Excel VBA, Get Border Properties
  • Excel VBA Borders

If you need assistance with your code, or you are looking for a VBA programmer to hire feel free to contact me. Also please visit my website  www.software-solutions-online.com

Return to VBA Code Examples

In this Article

  • Formatting Borders
    • Top Border – Double Line
    • Other Cell Borders
    • Inside Borders
    • LineStyle

This tutorial will show how to adjust cell border settings in VBA.

Formatting Borders

Top Border – Double Line

First let’s look at an example of how to set a blue, thick, doubled top border to the cell B3 on Sheet1:example border

Sub ExampleSetBorder()

 With Worksheets("Sheet1").Range("B3").Borders(xlEdgeTop)
  .LineStyle = xlDouble
  .Weight = xlThick
  .ColorIndex = 5
 End With

End Sub

Notice we use a With Statement to simplify our coding.

We access the the top border with .Borders(xlEdgeTop).

Other Cell Borders

Instead you can access other borders, including diagonals:

Worksheets("Sheet1").Range("B2").Borders(xlEdgeTop).Color = RGB(128, 0, 0)
Worksheets("Sheet1").Range("B2").Borders(xlEdgeRight).Color = RGB(0, 255, 0)
Worksheets("Sheet1").Range("B2").Borders(xlEdgeBottom).Color = RGB(0, 0, 128)
Worksheets("Sheet1").Range("B2").Borders(xlEdgeLeft).Color = RGB(255, 0, 0)
Worksheets("Sheet1").Range("B2").Borders(xlDiagonalDown).Color = RGB(0, 0, 0)
Worksheets("Sheet1").Range("B2").Borders(xlDiagonalUp).Color = RGB(0, 0, 0)

border example2

Inside Borders

You can also adjust horizontal (xlInsideHorizontal) and vertical (xlInsideVertical) borders for all cells in a range:

With Worksheets("Sheet1").Range("B2:C6").Borders(xlInsideHorizontal)
 .LineStyle = xlDashDotDot
 .Weight = xlMedium
 .ColorIndex = 3
End With

inside horizontal borders

LineStyle

The LineStyle property can be changed to xlContinuous, xlDot, xlDash, xlDashDot, xlDashDotDot, xlDouble, xlSlantDashDot and xlLineStyleNone.

The Weight property can be either xlHariline, xlThin, xlMedium and xlThick. You will have this result with the code below:

Worksheets("Sheet1").Range("C3").Borders(xlEdgeTop).Weight = xlHairline
Worksheets("Sheet1").Range("C3").Borders(xlEdgeBottom).Weight = xlHairline
Worksheets("Sheet1").Range("D3").Borders(xlEdgeTop).Weight = xlThin
Worksheets("Sheet1").Range("D3").Borders(xlEdgeBottom).Weight = xlThin
Worksheets("Sheet1").Range("E3").Borders(xlEdgeTop).Weight = xlMedium
Worksheets("Sheet1").Range("E3").Borders(xlEdgeBottom).Weight = xlMedium
Worksheets("Sheet1").Range("F3").Borders(xlEdgeTop).Weight = xlThick
Worksheets("Sheet1").Range("F3").Borders(xlEdgeBottom).Weight = xlThick

border weight

Border colors can be set as ColorIndex or Color (RGB, serial number or vbColor). See more information about color settings here.

You can add borders around a range with a one-line command as well:

Range("B5:C7").BorderAround LineStyle:=xlContinuous, Weight:=xlThick, Color:=vbRed

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
vba save as

Learn More!

Содержание

  1. Объект Borders (Excel)
  2. Замечания
  3. Примеры
  4. Свойства
  5. См. также
  6. Поддержка и обратная связь
  7. Borders object (Excel)
  8. Remarks
  9. Examples
  10. Properties
  11. See also
  12. Support and feedback
  13. Объект Border (Excel)
  14. Замечания
  15. Пример
  16. Свойства
  17. См. также
  18. Поддержка и обратная связь
  19. VBA Excel. Программное создание границ ячеек
  20. Программное создание границ ячеек
  21. Создание границ одной ячейки
  22. Пример кода записанного макроса
  23. Создание и удаление диагональных линий
  24. Расположение границ ячеек и диапазонов
  25. Толщина границ ячеек и диапазонов
  26. Стили границ (типы линий)
  27. Метод Range.BorderAround (Excel)
  28. Синтаксис
  29. Параметры
  30. Возвращаемое значение
  31. Примечания
  32. Пример
  33. Поддержка и обратная связь

Объект Borders (Excel)

Коллекция из четырех объектов Border , представляющих четыре границы объекта Range или объекта Style .

Замечания

Используйте свойство Borders , чтобы вернуть коллекцию Borders , которая содержит все четыре границы. Можно применить разные границы к каждой стороне ячейки или диапазона. Дополнительные сведения о применении границ к диапазону ячеек см. в разделе Свойство Range.Borders .

Вы можете задать свойства границы для отдельной границы только с помощью объектов Range и Style . Другие объекты с границами, такие как полосы ошибок и линии рядов, имеют границу, которая обрабатывается как одна сущность, независимо от того, сколько сторон она имеет. Для этих объектов необходимо возвращать и задавать свойства для всей границы в виде единицы. Дополнительные сведения см. в разделе Объект Border .

Примеры

В следующем примере двойная граница добавляется в ячейку A1 на одном листе.

Используйте border (index), где индекс определяет границу, чтобы вернуть один объект Border . Индекс может быть одной из следующих констант XlBordersIndex : xlDiagonalDown, xlDiagonalUp, xlEdgeBottom, xlEdgeLeft, xlEdgeRight, xlEdgeTop, xlInsideHorizontal или xlInsideVertical.

В следующем примере задается красный цвет нижней границы ячеек A1:G1.

В следующем примере создается тонкая граница вокруг всех ячеек в диапазоне.

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

Свойства

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Borders object (Excel)

A collection of four Border objects that represent the four borders of a Range object or Style object.

Use the Borders property to return the Borders collection, which contains all four borders. You can apply different borders to each side of a cell or range. For more information how to apply borders to a range of cells, see Range.Borders property.

You can set border properties for an individual border only with Range and Style objects. Other bordered objects, such as error bars and series lines, have a border that’s treated as a single entity, regardless of how many sides it has. For these objects, you must return and set properties for the entire border as a unit. For more information, see the Border object.

Examples

The following example adds a double border to cell A1 on worksheet one.

Use Borders (index), where index identifies the border, to return a single Border object. Index can be one of the following XlBordersIndex constants: xlDiagonalDown, xlDiagonalUp, xlEdgeBottom, xlEdgeLeft, xlEdgeRight, xlEdgeTop, xlInsideHorizontal, or xlInsideVertical.

The following example sets the color of the bottom border of cells A1:G1 to red.

The following example generates a thin border around all cells in the range.

The following example changes only the inner cell borders of the range.

Properties

See also

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Источник

Объект Border (Excel)

Представляет границу объекта.

Замечания

Большинство обрамленных объектов (все, кроме объектов Range и Style ) имеют границу, которая обрабатывается как одна сущность независимо от того, сколько сторон она имеет. Вся граница должна возвращаться в виде единицы.

Используйте свойство Border , например из объекта TrendLine , чтобы вернуть объект Border для объекта этого типа.

Обратите внимание, что визуальные свойства объекта Border заблокированы; то есть изменение одного свойства может вызвать изменения в другом. В большинстве случаев индуцированные изменения служат для того, чтобы сделать границу видимой (что может быть или не желательно). Однако возможны другие (более неожиданные) результаты.

Ниже приведен пример взаимоблокировки с непредвиденными результатами. В этом примере задание свойства Weight границы в значение xlThick приводит к тому, что свойство LineStyle станет xlSolid, несмотря на то, что ранее было установлено значение xlDashDotDot.

Пример

В следующем примере изменяется тип и стиль линии тренда на активной диаграмме.

Объекты Range и Style имеют четыре дискретные границы — левую, правую, верхнюю и нижнюю, которые можно возвращать по отдельности или в виде группы. Используйте свойство Borders , чтобы вернуть коллекцию Borders , которая содержит все четыре границы и обрабатывает границы как единицу. В следующем примере двойная граница добавляется в ячейку A1 на одном листе.

Используйте border (index), где индекс определяет границу, чтобы вернуть один объект Border . В следующем примере задается цвет нижней границы ячеек A1:G1.

Индекс может быть одной из следующих констант XlBordersIndex : xlDiagonalDown, xlDiagonalUp, xlEdgeBottom, xlEdgeLeft, xlEdgeRight, xlEdgeTop, xlInsideHorizontal или xlInsideVertical.

Свойства

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

VBA Excel. Программное создание границ ячеек

Программное создание границ ячеек произвольного диапазона с помощью кода VBA Excel. Свойство Borders объекта Range. Создание границ одной ячейки. Код макроса.

Программное создание границ ячеек

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

Создание границ одной ячейки

Создать границы ячейки (только для одной ячейки) в VBA Excel можно следующим образом:

Пример кода записанного макроса

Запись макроса: включаем запись, выбираем диапазон «A1:E9», на панели инструментов выбираем значок «Все границы», останавливаем запись. И это все наши выполненные действия, а в результате получаем следующий код:

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

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

Создание и удаление диагональных линий

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

Расположение границ ячеек и диапазонов

Расположение границ по краям и внутри ячеек и диапазонов описывают константы из коллекции XlBordersIndex.

Список констант XlBordersIndex:

Константа Значение Описание
xlDiagonalDown 5 Диагональная линия от верхнего левого угла к нижнему правому углу в каждой ячейке диапазона.
xlDiagonalUp 6 Диагональная линия от нижнего левого угла к правому верхнему углу в каждой ячейке диапазона.
xlEdgeBottom 9 Граница по нижнему краю диапазона.
xlEdgeLeft 7 Граница по левому краю диапазона.
xlEdgeRight 10 Граница по правому краю диапазона.
xlEdgeTop 8 Граница по верхнему краю диапазона.
xlInsideHorizontal 12 Горизонтальные границы для всех ячеек в диапазоне, за исключением внешних границ диапазона.
xlInsideVertical 11 Вертикальные границы для всех ячеек в диапазоне, за исключением внешних границ диапазона.

Толщина границ ячеек и диапазонов

Толщину границ по краям и внутри ячеек и диапазонов описывают константы из коллекции XlBorderWeight.

Список констант XlBorderWeight:

Константа Значение Описание
xlHairline 1 Очень тонкая граница
xlThin 2 Тонкая граница (по умолчанию)
xlMedium -4138 | 3* Граница средней толщины
xlThick 4 Толстая граница

* У меня, в Excel 2016, константе xlMedium соответствует не только числовое значение -4138, но и 3.

Стили границ (типы линий)

Стили границ по краям и внутри ячеек и диапазонов описывают константы из коллекции XlLineStyle.

Список констант XlLineStyle:

Константа Значение Описание
xlContinuous 1 Непрерывная линия
xlDash -4115 Штриховая линия
xlDashDot 4 Чередование точек и тире
xlDashDotDot 5 Чередование двух точек и тире
xlDot -4118 Пунктирная линия
xlDouble -4119 Двойная линия
xlLineStyleNone -4142 Нет границы (удаление границы)
xlSlantDashDot 13 Линия, разрезанная двойными слешами

Применяем разные типы линий к разным сторонам выделенного диапазона:

Источник

Метод Range.BorderAround (Excel)

Добавляет границу в диапазон и задает свойства Color, LineStyle и Weight объекта Border для новой границы. Variant.

Синтаксис

expression. BorderAround (LineStyle, Weight, ColorIndex, Color, ThemeColor)

выражение: переменная, представляющая объект Range.

Параметры

Имя Обязательный или необязательный Тип данных Описание
LineStyle Необязательный Variant Одна из констант XlLineStyle , задающая стиль линии для границы.
Weight (Вес) Необязательный XlBorderWeight Вес границы.
ColorIndex Необязательный XlColorIndex Цвет границы в виде индекса текущей цветовой палитры или как константы XlColorIndex .
Color Необязательный Variant Цвет границы в виде значения RGB.
ThemeColor Необязательный Variant Цвет темы в качестве индекса текущей цветовой темы или значения XlThemeColor .

Возвращаемое значение

Примечания

Необходимо указать только одно из следующих значений: ColorIndex, Color или ThemeColor.

Можно указать lineStyle или Weight, но не оба варианта. Если не указать ни один из аргументов, Microsoft Excel использует стиль строки и вес по умолчанию.

Этот метод описывает весь диапазон без его заполнения. Чтобы задать границы всех ячеек, необходимо задать свойства Color, LineStyle и Weight для коллекции Borders . Чтобы очистить границу, необходимо задать для свойства LineStyle значение xlLineStyleNone для всех ячеек в диапазоне.

Пример

В этом примере вокруг диапазона A1:D4 на листе Sheet1 добавляется толстая красная граница.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Понравилась статья? Поделить с друзьями:
  • Vba excel boolean это что
  • Vba excel autofilter criteria all
  • Vba excel autofill range with
  • Vba excel ascii код символа
  • Vba excel asc код