Программное создание границ ячеек произвольного диапазона с помощью кода 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:
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:
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:
Result:
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:
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)
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
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 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!
Learn More!
Содержание
- Объект Borders (Excel)
- Замечания
- Примеры
- Свойства
- См. также
- Поддержка и обратная связь
- Borders object (Excel)
- Remarks
- Examples
- Properties
- See also
- Support and feedback
- Объект Border (Excel)
- Замечания
- Пример
- Свойства
- См. также
- Поддержка и обратная связь
- VBA Excel. Программное создание границ ячеек
- Программное создание границ ячеек
- Создание границ одной ячейки
- Пример кода записанного макроса
- Создание и удаление диагональных линий
- Расположение границ ячеек и диапазонов
- Толщина границ ячеек и диапазонов
- Стили границ (типы линий)
- Метод Range.BorderAround (Excel)
- Синтаксис
- Параметры
- Возвращаемое значение
- Примечания
- Пример
- Поддержка и обратная связь
Объект 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 и обратная связь.
Источник