Найти в Дзене
Doc

#4 Как научиться программировать в Excel. Работа с содержимым ячейки

Оглавление

В предыдущих статьях мы начали изучать объектную модель VBA Excel. С помощью которых научились с помощью VBA работать с приложением Excel, рабочей книгой и рабочими листами и ячейками.

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

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

1. Работа с содержимым ячеек

Свойства:

Characters - с помощью этого свойства вы можете получить доступ к каждому символу в ячейке для его редактирования, но не для его изменения.

Пример - в ячейке A1 два символа текста, начиная с третьего, цвет шрифта - красный, начертание - полужирное

Sub РедакторСимволов()
With Range("A1").Characters(3, 2)
.Font.Bold = True
.Font.Color = RGB(255, 0, 0)
End With
End Sub
Результат выполнения кода
Результат выполнения кода

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

Value - данное свойство показывает содержимое ячейки. Если в ячейке расположена формула, то данное свойство покажет результат действия формулы. Также используя это свойство можно задать новое значение ячейки.

Пример:

...'показать значение ячейки
MsgBox Range("A1").Value
...
Результат команды выведен в диалоговом окне
Результат команды выведен в диалоговом окне

Методы

AddComment - добавление комментария в ячейку.

Пример:

...'добавить комментарий к ячейке A1
Range("A1").AddComment "Новое примечание к ячейке А1"
...

Прочитать про вставку в комментарий к ячейке изображений можно в этой статье, а видео посмотреть здесь:

AutoFill - автоматическое заполнение диапазона

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

Sub дниНедели()
Range("A1") = "понедельник"
Range("A1").AutoFill Range("A1:A7"), xlFillDays
End Sub
Результат выполнения кода
Результат выполнения кода

Clear - удаление всего содержимого ячейки, в том числе форматирование и примечание

Пример:

...очистить содержимое диапазона
Range("A1:B10").Clear
...

ClearComments - удаление примечания в ячейке (диапазона ячеек)

...удалить комментарии в диапазоне ячеек
Range("A1:B10").ClearComments
...

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

...удалить только содержимое ячеек ( без комментариев и форматирования)
Range("A1:B10").ClearContents
...

2. Форматирование ячеек

Чтобы более детально ознакомиться с возможностями языка VBA по форматированию ячеек, можно воспользоваться средством "записи макросов". Все ваши действия будут записываться программой, а вы сможете ознакомиться с кодом самостоятельно. Чтобы включить "запись" нужно нажать на кнопку в левом нижнем окне программы Excel.

-4

2.1. Свойства

Borders - коллекция, которая представляет границы ячейки (диапазона)

Пример - для диапазона B5:D10 установить следующие границы: сплошная линия, цвет RGB (80,200,0) и толщина = 3 пунктам

Sub ГраницыДиапазона()
Range("B5:D10").Borders.LineStyle = xlContinuous
Range("B5:D10").Borders.Color = RGB(80, 200, 0)
Range("B5:D10").Borders.Weight = 3
End Sub

Результат на картинке

-5

ColumnWidth - с помощью этого свойства можно получить или установить ширину столбца.

Пример:

...
Range("A1:D4").ColumnWidth = 20
...

Font - свойство описывающее параметры шрифта.

Sub СвойствоШрифта()
With Range("B4:B6").Font
.Bold = True ' - 1 - полужирное начертание
.Name = "Arial" ' - 2 - наименование шрифта
.Size = 16 ' 3 - размер шрифта равный 16 пт
End With
End Sub
-6

RowHeight - высота строки

Range("A3").RowHeight = 24

Hidden - свойство с помощью которого можно управлять видимостью строки (столбца)

Range("A3").EntireRow.Hidden = True

Свойство EntireRow расширяет диапазон на всю строку, в которой расположена, в данном случае ячейка А3

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

Range("A3:B4").HorizontalAlignment = xlHAlignCenter

Interior - "интерьер" ячейки (цвет заливки и т.д.)

Вставьте в редактор VBA следующий код и вы получите палитру цветов как на картинке

Sub Палитра()
Dim i As Integer
For i = 1 To 56
If i <= 28 Then
Cells(i, 1) = i
Cells(i, 2).Interior.ColorIndex = i
Else
Cells(i - 28, 4) = i
Cells(i - 28, 5).Interior.ColorIndex = i
End If
Next i
End Sub
Цифра рядом с цветной ячейкой указывает на индекс этого цвета - ColorIndex
Цифра рядом с цветной ячейкой указывает на индекс этого цвета - ColorIndex

VerticalAlignment - свойство вертикального выравнивания содержимого ячеек

Range("A3:B4").VerticalAlignment= xlVAlignCenter

WrapText - свойство для разрешения или отмены переноса текста. В примере перенос текста разрешается.

Range("A3").WrapText= True

2.2. Методы

ClearFormats - удаление форматирования ячеек диапазона

Range("B4").ClearFormats

AutoFit - изменение ширины столбцов по ширине введенного текста

Sub АвтоШирина()
Range("B4").EntireColumn.AutoFit
End Sub

Если статья Вам понравилась - ставьте лайки и подписывайтесь на канал. Дальше будет интересней!!!