VBA Excel. Программное создание границ ячеек
Опубликовано: 01.09.2018
Программное создание границ ячеек произвольного диапазона с помощью кода VBA Excel. Свойство Borders объекта Range. Создание границ одной ячейки. Код макроса.
Программное создание границ ячеек
Если записать макрос добавления границ к ячейкам какого-нибудь диапазона, то в тексте макроса будет сгенерировано очень много строк с указанием различных параметров. Создать сетку из границ ячеек с параметрами «по умолчанию» можно гораздо проще.
Курс Excel_Базовый - Урок №4. Формат ячеек!
'Для этого необходима всего одна строка: Range("A1:G7").Borders.LineStyle = True 'Кроме того, для создания границ можно использовать единственную строку с указанием 'какого-нибудь параметра, например, для создания сетки из синих границ: 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
Создание границ одной ячейки
Создать границы только для одной ячейки в VBA Excel можно следующим образом:
VBA Урок_9 | Структуры | Программирование для начинающих Просто и Доступно | Язык VBA
Range("A5").Borders.LineStyle = True Cells(2, 8).Borders.Color = vbBlue ActiveCell.Borders.LineStyle = xlDouble 'Удаление границ: ActiveCell.Borders.LineStyle = False
Пример кода записанного макроса
Запись макроса: включаем запись, выбираем диапазон «A1:E9», на панели инструментов выбираем значок «Все границы», останавливаем запись. И это все наши выполненные действия, а в результате получаем следующий код:
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Конечно, можно использовать в своих программах код, сгенерированный при записи макроса, который будет прекрасно работать. Вот только нужны ли в самописном коде такие нагромождения лишних строк?
Макросы можно и нужно использовать, когда вы не знаете название нужного свойства или его значения, а после записи макроса открываете модуль и все перед глазами. Это касается не только создания границ ячеек, но и всех остальных случаев, когда предполагаемые действия можно записать с помощью макроса.