Range(Cells(2, 3), Cells(5, 6)).Select

Доступ к ячейкам Листа Excel, ввод вывод данных в ячейки,

Оформление вида ячеек

(Лекция 2 часа)

 

Ввод вывод данных в ячейки Листа Excel осуществляется посредством свойств Cells (ячейки) и Range (диапазон ячеек). В свою очередь свойства Cells и Range являются объектами и содержат вложенные свойства такие, как Volue (значение), Interior (интерьер, оформление), formula (формула), Select (выбор) и другие.

Объект Cells и его свойство Cells можно рассматривать как базовый объект и основное свойство Листа Excel. Доступ к ячейке посредством свойства Cells осуществляется через индексы R (Row – строка) и C (Column – столбец). Для того чтобы выбрать некоторую ячейку достаточно в свойстве Cells указать RC адрес необходимой ячейки и выбрать свойство Select.

Пример:

Cells(2,3).Select

 

Выполнение указанной строки программы передаст фокус указателя мыши (выделит ячейку) на ячейку находящуюся на пересечении 2 – строки и 3 – го столбца активного листа Excel.

 

Свойство Range позволяет получить доступ к ячейке посредством символьного адреса.

 

Пример:

Range(“C2”).Select

 

Выполнение указанной строки программы передаст фокус указателя мыши на ячейку находящуюся на пересечении 2 – строки и 3 – го столбца активного листа Excel, т.е. будет выбрана ячейка [С2].

Обратите внимание на тот факт, что символьный адрес ячейки является строкой (текстом) и заключается в кавычки.

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

 

Пример:

Range(“C2:F5”).Select

 

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

 

Пример:

Range(Cells(2, 3), Cells(5, 6)).Select

 

 

Запись в ячейку некоторых данных можно осуществить как с использованием вложенных свойств Value, Value2 и Formula так и без их использования. Применение вложенных свойств несколько повышает быстродействие операций или обуславливется точностью вычислений. Например, для записи значения числа (e) в память ячейки с высокой точностью (12 байт) следует применить свойство Value2.

 

Пример:

Range(“A1”).Value2 = Exp(1) [2,718281828]

 

Обратите внимание на тот факт, что отображение значения числа (e) вычисленного с обычной точностью будет иметь то же количество знаков, что и отображение значения вычисленного с обычной (8 байт) точностью. Однако в оперативной памяти ячейки, значение вычисленное с высокой точностью будет содержать больше разрядов после запятой на 4 байта. Одинаковое представление числа в ячейке определяется форматом вывода значения.

 

Пример:

Cells(2,1).Volue = Exp(1) [2,718281828]

 

Если возникает необходимость выполнить вычисление непосредственно в ячейке или воспользоваться функциями, представленными в мастере функций Excel необходимо применить свойство Formula.

 

Пример:

Range("A1").Formula = "=Sin(0.5)"

 

Приведенная выше программная строка (свойство Formula) передает управление на связанное с ячейкой поле ввода формул (Parser - вычислитель). Таким образом, запись формулы в программе выглядит эквивалентно вводу формул в Excel. Так как любое поле ввода имеет тип “строка”, то запись выражения необходимо взять в кавычки.

 

В связи с тем, что объект Cellsсодержит большое количество методов, ряд из которых реализуют интерпретацию выражений, для записи данных в ячейки и считывания данных из ячеек вложенные свойства Volue и Formula можно не применять. В практической работе можно использовать следующие программные строки.

Пример:

Cells(2,1) = Exp(1)

Range("A1") = "=Sin(0.5)"

Range(“A3”) = Range(“A1”) + Cells(2,1)

Cells(4,1) = Range(“A3”)*Cells(2,1)^2

Применение свойств Range и Cells в практической работе имеет ряд особенностей. Свойство Range целесообразно применять в случаях, когда заведомо известно (определено) в какую ячейку необходимо записать некоторые данные или из какой ячейки выбрать необходимые данные. Свойство Cells удобно использовать для ввода вывода массивов данных или когда адрес ячейки вычисляется (задан в виде ссылки).

Помимо ввода и вывода данных в ячейки можно программно оформить внешний вид ячейки и диапазона ячеек. Оформление внешнего вида ячеек осуществляется посредством свойства Interior (интерьер) и вложенных в него свойств Color (цвет), ColorIndex (индекс цвета), Pattern (узор) и др. Указанные свойства имеют предопределенные значения. Например, свойству Color можно присвоить значение цвета посредством символического имени, соответствующего двоичному коду в шестнадцатеричном представлении:

 

vbBlack &H000000 Черный

vbRed &H0000FF Красный

vbGreen &H00FF00 Зеленый

vbYellow &H00FFFF Желтый

vbBlue &HFF0000 Синий

vbMagenta &HFF00FF Розовый

vbCyan &HFFFF00 Голубой

vbWhite &HFFFFFF Белый

 

Пример:

Range("A1:A10").Interior.Color = vbGreen

 

Также можно непосредственно задать значение цвета в шестнадцатеричном коде.

 

Пример:

Range("B1:B10").Interior.Color = &HFF0000

 

Особенностью применения свойства Interior в свойстве Cells для ранних версий Excel, например Office97, является обязательный предварительный выбор ячейки.

 

Пример:

Cells(1, 1).Select

Cells(1, 1).Interior.Color = &HFF0000

Cells(1, 2).Select

Cells(1, 2).Interior.Color = vbGreen

 

Цвет ячейки (диапазона ячеек) можно определить через индекс палитры цветов. Для этого достаточно воспользоваться свойством ColorIndex. Палитра цветов ячеек содержит 40 значений, которые представлены индексами в диапазоне [0-39].

 

Пример:

Cells(1, 1).Select

Cells(1, 1).Interior.ColorIndex = 3 ‘ Красный

Range("A2").Interior.ColorIndex = 5 ‘ Синий

 

Определить цвет ячейки (диапазона ячеек) можно также путем присвоения свойству Color десятичного значения.

 

Пример:

 

Cells(1, 1).Select

Cells(1, 1).Interior.Color = 255 ‘красный

Range("a2").Interior.Color = 16711680 ‘синий

 

Ячейки (диапазон ячеек) можно залить узором. В VBA предопределены 20 видов узоров, а именно: xlPatternAutomatic, xlPatternChecker, xlPatternCrissCross, xlPatternDown, xlPatternGray16, xlPatternGray25, xlPatternGray50, xlPatternGray75, xlPatternGray8, xlPatternGrid, xlPatternHorizontal, xlPatternLightDown, xlPatternLightHorizontal, xlPatternLightUp, xlPatternLightVertical, xlPatternNone, xlPatternSemiGray75, xlPatternSolid, xlPatternUp, xlPatternVertical.

 

Пример:

 
 

Range("A5").Interior.Pattern = xlPatternCrissCross

 

 

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

 

Пример:

Range("A6") = "Текст"

Range("A6").Font.Name = "Arial"

Range("A6").Font.Color = vbBlue

Range("A6").Font.Size = 12

Range("A6").Font.Bold = True

Range("A6").Font.Italic = True

 

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

Пример:

Range("A6") = "Текст"

With Range("A6").Font

.Name = "Arial": .Color = vbBlue: .Size = 12

.Bold = True: .Italic = True