Обращение к листам и ячейкам
Обращение к листам рабочей книги производится с помощью коллекции WorkSheets объекта WorkBook. Каждый член этой коллекции представляет собой объект WorkSheet. К члену этой коллекции можно обратиться по его порядковому номеру, например:
App.WorkBooks[1].WorkSheets[1].Name := _ 'Страница 1';
Приведенный выше пример иллюстрирует, как можно изменить имя листа рабочей книги.
К листу рабочей книги можно обратиться и по имени, например:
App.WorkBooks[1].WorkSheets['Sheet1'].Name := _ 'Страница 1';
Обращение к отдельным ячейкам листа производится с помощью коллекции Cells объекта WorkSheet. Например, добавить данные в ячейку B1 можно следующим образом:
App.WorkBooks[1].WorkSheets['Sheet1'].Cells[1,2].Value:='25';
Здесь первая из координат ячейки указывает на номер строки, вторая - на номер столбца.
Добавление формул в ячейки производится аналогичным способом:
App.WorkBooks[1].WorkSheets['Sheet1'] _ .Cells[3,2].Value := ' =SUM(B1:B2)';
Очистить ячейку можно с помощью метода ClearContents.
Форматирование текста в ячейках производится с помощью свойств Font и Interior объекта Cell и их подсвойств. Например, следующий фрагмент кода выводит текст в ячейке красным жирным шрифтом Courier кегля 16 на желтом фоне:
App.WorkBooks[1].WorkSheets[1].Cells[3,2].Interior _ .Color := clYellow; App.WorkBooks[1].WorkSheets[1].Cells[3,2].Font _ .Color := clRed; App.WorkBooks[1].WorkSheets[1].Cells[3,2] _ .Font.Name := 'Courier'; App.WorkBooks[1].WorkSheets[1].Cells[3,2] _ .Font.Size := 16; App.WorkBooks[1].WorkSheets[1].Cells[3,2] _ .Font.Bold := True;
Application | Excel.Application, Excel.Application.9 | С помощью этого программного идентификатора создается экземпляр приложения без открытых рабочих книг | |||
WorkBook | Excel.AddIn | С помощью этого программного идентификатора создается экземпляр расширения (add-in) Excel (имеющиеся расширения доступны с помощью пункта меню Tools | Add-Ins) | |||
Excel.Chart, Excel.Chart.8 | Рабочая книга, созданная с помощью этих программных идентификаторов, состоит из двух листов - одного для диаграммы, другого - для данных, на основе которых она построена | ||||
Excel.Sheet, Excel.Sheet.8 | Рабочая книга, созданная с помощью этих программных идентификаторов, состоит из одного листа |
Вместо свойства Color можно использовать свойство ColorIndex, принимающее значения от 1 до 56; таблицу соответствий значений этого свойства реальным цветам можно найти в справочном файле VBAXL9.CHM.
Обратиться к текущей ячейке можно с помощью свойства ActiveCell объекта Excel.Application, а узнать местоположение ячейки можно с помощью свойства Address объекта Cell, например:
ShowMessage(App.ActiveCell.Address);
Помимо обращения к отдельным ячейкам, можно манипулировать прямоугольными областями ячеек с помощью объекта Range, например:
App.WorkBooks[1].WorkSheets[2].Range['A1:C5'] _ .Value := 'Test'; App.WorkBooks[1].WorkSheets[2].Range['A1:C5'] _ .Font.Color := clRed;
Приведенный выше код приводит к заполнению прямоугольного участка текстом и к изменению цвета шрифта ячеек.
Объект Range также часто используется для копирования прямоугольных областей через буфер обмена. Ниже приведен пример, иллюстрирующий копирование такой области:
App.WorkBooks[1].WorkSheets[2].Range['A1:C5'].Copy; App.WorkBooks[1].WorkSheets[2].Range['A11:C15'].Select; App.WorkBooks[1].WorkSheets[2].Paste;
Обратите внимание на то, что диапазон, куда копируются данные, предварительно выделяется с помощью метода Select.
Отметим, что примерно таким же образом можно копировать данные и из других приложений (например, из Microsoft Word).
Довольно часто при автоматизации Excel используются его возможности, связанные с построением диаграмм. Ниже мы рассмотрим, как это сделать.