- •2.1. Алфавит и словарь языка
- •2.2. Переменные
- •2.3. Константы
- •2.4. Строковые переменные
- •2.5. Массивы
- •2.6. Пользовательские типы данных
- •2.7. Операции VBA
- •2.8. Объектная модель Excel
- •2.8.1. Свойства и методы объектов
- •2.8.2. Отображение объектной модели Excel
- •2.8.2.1. Иерархия объектной модели
- •2.8.2.2. Ссылка на объекты в коде VBA
- •2.8.3. Работа с объектами
- •2.8.3.1. Задание свойств объекта
- •2.8.3.2. Использование методов объекта
- •2.8.3.3. Переменные-объекты
- •2.8.3.4. Коллекции
- •2.8.3.5. Метод Add
- •2.8.3.6. Свойство Count
- •2.8.4. Свойства и методы основных объектов Excel
- •2.8.4.1. Объект Application
- •2.8.4.2. Объект Worksheet
- •2.8.4.3. Объект Range
- •2.8.5. Просмотр объектов
- •2.8.6. Использование справочной системы
- •2.8.6.1. Использование функциональной клавиши F1
- •2.8.6.2. Использование помощника
- •2.9. Ввод и вывод данных
- •2.9.3. Метод InputBox
- •2.9.4. Объединение текстовых строк
- •2.10. Концепция событий Excel
- •2.10.1. Типы событий Excel
- •2.10.2. События объекта Workbook
- •2.10.3. События объекта Worksheet
- •2.10.4. События объекта Application
- •2.10.5. События объекта UserForm
- •2.10.6. События, не связанные с конкретными объектами
- •2.10.6.1. Метод OnKey
- •2.10.6.2. Событие OnTime
- •2.11. Формы пользователя
- •2.11.1. Свойства, методы и события экранных форм
- •2.11.1.1. Некоторые свойства форм
- •2.11.1.2. Некоторые методы форм
- •2.11.1.3. Некоторые события форм
- •2.11.2. Элементы управления
- •2.11.2.1. Элемент управления Label (Надпись)
- •2.11.2.1.1. Окно свойств формы
- •2.11.2.2. Элемент управления CommandButton (Кнопка)
- •2.11.2.3. Элемент управления TextBox (Текстовое поле)
- •2.11.2.4. Элемент управления ComboBox (комбинированный список)
- •2.11.2.5. Элемент управления ListBox (список)
- •2.11.2.6. Элемент управления CheckBox (Флажок)
- •2.11.2.7. Элемент управления ToggleButton (Выключатель)
- •2.11.2.8. Элемент управления OptionButton (Переключатель)
- •2.11.2.9. Элемент управления Image (Рисунок)
- •2.11.2.12. Элемент управления RefEdit (Поле со свёртыванием)
- •2.11.2.13. Элементы управления на рабочем листе
- •2.12. Инструкции VBA
- •2.12.1. Оператор присваивания
- •2.12.2. Инструкция Set
- •2.12.3. Циклы
- •2.12.3.1. Инструкция For… Next
- •2.12.3.2. Инструкция While…Wend
- •2.12.3.3. Инструкция Do... Loop
- •2.12.3.4. Инструкция For Each…Next
- •2.12.4. Инструкции перехода
- •2.12.4.1. Инструкция условного перехода If…Then…Else
- •2.12.4.2. Инструкция Select…Case
- •2.12.4.3. Инструкция безусловного перехода GoTo
- •2.12.4.4. Инструкции перехода к обработчику ошибок On Error
- •2.12.4.5. Инструкции прерывания выполнения блока Exit
- •2.13. Функции VBA
- •2.13.1. Встроенные функции
- •2.13.1.1. Математические функции
- •2.13.1.2. Функции преобразования данных
- •2.13.1.3. Функции даты и времени
- •2.13.1.4. Строковые функции
- •2.13.1.5. Примеры использования функций VBA
- •2.13.1.5.1. Удаление ненужных символов
- •2.13.1.5.2. Определение длины строки
- •2.13.1.5.3. Сравнение и поиск строк
- •2.13.1.5.4. Выделение части строки
- •2.13.1.5.5. Форматирование значений данных
- •2.13.2. Функции, определённые пользователем
- •2.14. Файлы VBA
- •2.14.1. Типы файлов в VBA
- •2.14.2. Открытие и закрытие файла
- •2.14.3. Ввод данных в файл последовательного доступа
- •2.14.4. Вывод данных из файла последовательного доступа
- •2.14.5. Работа с файлом произвольного доступа
- •2.15. Создание процедуры
- •2.16. Выполнение процедуры
- •2.17. Сохранение процедуры
- •2.18. Запись последовательности действий пользователя
- •2.19. Просмотр кода макроса
- •3.1. Тестирование и отладка как этап разработки приложений
- •3.1.1. Отладка
- •3.1.1.1. Режим останова
- •3.1.1.2. Использование окна Immediate
- •3.1.1.2.1. Просмотр значений в окне Immediate
- •3.1.1.3. Пошаговое выполнение программ
- •3.1.2. Исправление ошибок
- •Библиографический список
- •Оглавление
22
2.8.2.Отображение объектной модели Excel
Для освоения способов управления Excel с помощью VBA необходимо ознакомиться с объектной моделью Excel. Объектная модель описывает объекты приложения и связи между ними. В объектной модели Excel представлено более 100 объектов. В большинстве случаев используются не более 20 объектов. Для отображения всех объектов Excel нужно выполнить следующие действия.
1.Открыть новую рабочую книгу.
2.Нажать комбинацию клавиш <Alt+F11>, чтобы открыть редактор
Visual Basic.
3.На вкладке Введите вопрос ответов ввести текст: Microsoft Excel Objects.
4.Нажать клавишу <Enter> и в списке тем щелкнуть на теме Microsoft Excel Object. Отобразится диаграмма объектной модели (рис. 1).
5.Щелкнуть на стрелке, направленной влево, над строкой Microsoft Excel Objects (стрелка окрасится в голубой цвет). Отобразятся объекты уровня рабочего листа (рис. 2).
Рис. 1. Объектная модель Excel
23
Рис. 2. Объектная модель Worksheet (Рабочий лист)
Вершиной иерархии объектной модели Excel является объект Application (Приложение). На следующем уровне иерархии объектной модели находится объект WorkBook (Рабочая книга), который совпадает с файлом рабочей книги Excel. Объект WorkBook содержит объекты более низкого уровня, в частности объект Worksheet (Рабочий лист). Объект Worksheet, в свою очередь, состоит из других объектов (рис. 2).
Среди более 100 объектов Excel в программировании на VBA большей частью используются следующие:
24
Application (Приложение)
WorkBook (Рабочая книга)
Worksheet (Рабочий лист)
Range (Диапазон)
Chart (Диаграмма)
Объект Application представляет саму программу Excel.
Объект WorkBook представляет рабочую книгу Excel, т.е. файл Excel. Объект Worksheet (Рабочий лист) – отдельная страница в рабочей книге, имеющая индивидуальное имя и предназначенная для хранения
данных и выполнения вычислений.
Рабочий лист в свою очередь состоит из ячеек. Ячейки представляет объект Range, который может состоять из одной или нескольких ячеек.
Одним из часто используемых объектов является объект Chart (Диаграмма). Все, действия, которые можно выполнить с диаграммами в Excel, можно запрограммировать в VBA.
2.8.2.1. Иерархия объектной модели
На вершине объектная модель Excel находится объект Application. Под этим объектом расположены другие объекты, среди которых находится WorkBook. В терминологии объектно-ориентированного программирования такое подчинение одного объекта другому называется вложением,
т.е. объект WorkBook вложен в объект Application, а объект Worksheet – в объект WorkBook.
2.8.2.2. Ссылка на объекты в коде VBA
Концепция вложения объектов широко используется при создании ссылок на объекты в коде VBA. Для полного определения объекта необходимо указать последовательно все уровни иерархии объектной модели. Например, чтобы сослаться на ячейку А1 на рабочем листе Лист1 рабочей книги Книга1, надо применить следующий код:
Application.Workbooks("Книга1").Worksheets("Лист1").Range("A1")
Если в программе нет ссылки на другое активное приложение, то объект Application можно не указывать, и предыдущая ссылка может быть представлена так:
Workbooks("Книга1").Worksheets("Лист1").Range("A1")
Если активной является Книга1, то объект Книга1 можно не указывать, и предыдущая ссылка может быть представлена так:
Worksheets("Лист1").Range("A1")
Аналогично, если активным листом является Лист1, то ссылка может быть записана так:
Range("A1")