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