- •3 Семестр
- •Оглавление
- •Язык программирования Visual Basic for Application Основные средства и возможности vba Основные элементы vba
- •Основы программирования на vba Типы данных
- •Описание переменных
- •Допустимые имена
- •Инструкция Def Тип
- •Массивы
- •Динамические массивы
- •Функции и процедуры для работы с массивами
- •Константы
- •Тип данных, определенный пользователем
- •Операции vba
- •Приоритеты операций
- •Встроенные функции vba
- •Математические функции
- •Функции проверки типов
- •Функции преобразования форматов
- •Функции обработки строк
- •Функции времени и даты
- •Функции выбора
- •Функции, возвращающие строки
- •Встроенные диалоговые окна
- •Инструкции vba
- •Оператор присвоения
- •Перенос строки
- •Комментарии
- •Расположение нескольких операторов на одной строке
- •Операторы перехода и выбора
- •Операторы повтора
- •Условная компиляция
- •Процедура
- •Переход в подпрограмму и возвращение из подпрограммы
- •Вызов процедуры
- •Рекурсивные процедуры
- •Область определения переменной
- •Время жизни переменной
- •Процедуры обработки ошибок и отладка программ Разработка процедур, предотвращающих появление ошибок
- •Перехват и обработка ошибок
- •Свойства объекта Err
- •Методы объекта Err
- •Отладка программ
- •Ошибки компиляции
- •Ошибки выполнения
- •Логические ошибки
- •Инструкция Option Explicit
- •Пошаговое выполнение программ
- •Точка останова
- •Вывод значений свойств и переменных
- •Работа с файлами Типы файлов в vba
- •Открытие и закрытие файла
- •Ввод данных в файл последовательного доступа
- •Вывод данных из файла последовательного доступа
- •Работа с файлом произвольного доступа
- •Наиболее употребляемые инструкции и функции при работе с файлами
- •Объект FileSearch
- •Элементы управления и пользовательская форма Элементы управления
- •Режим конструктора
- •Установка свойств элемента управления
- •Редактор кода
- •Пользовательская форма UserForm
- •Семейство Controls
- •Создание пользовательской формы
- •Общие свойства элементов управления
- •Соглашения об именах
- •Общие методы и события элементов управления
- •Объект DataObject
- •Надпись
- •Заполнение списка
- •Выбор нескольких элементов из списка
- •Поле со списком
- •Полоса прокрутки и счетчик
- •Переключатель
- •Флажок и выключатель
- •Ссылки на ячейки и диапазоны
- •Набор страниц
- •Набор вкладок
- •Дополнительные элементы управления
- •Последовательность выбора элементов управления
- •Инициализация и отображение диалогового окна
- •Закрытие диалогового окна
- •Отображение встроенных диалоговых окон
- •Открытие документа
- •Объект Application
- •Свойства объекта Application
- •Методы объекта Application
- •События объекта Application
- •Объект Workbook и семейство Workbooks
- •Свойства объекта Workbook и семейства Workbooks
- •Методы объекта Workbook и семейства Workbooks
- •События объекта Workbook и семейства Workbooks
- •Объект Worksheet и семейство Worksheets
- •Свойства объекта Worksheet и семейства Worksheets
- •Методы объекта Worksheet и семейства Worksheet
- •События объекта Worksheet
- •Объекты Range и Selection
- •Адресация ячеек
- •Задание групп строк и столбцов с помощью объекта Range
- •Связь объекта Range и свойства Cells
- •Свойства и методы объекта Range
- •Программирование панели инструментов
- •Объект CommandBar и семейство CommandBars
- •Семейство CommandBarControls и объект CommandBarControl
- •Пример создания панели инструментов пользователя
- •Пример создания строки меню пользователя
- •Создание пользовательской панели инструментов вручную
- •Удаление элемента управления из панели инструментов вручную
- •Удаление пользовательской панели инструментов вручную
- •Назначение вручную макроса кнопке
- •Изменение и создание вручную изображения на кнопке
- •Программирование средств для работы со справочной информацией
- •Структура помощника
- •Типы помощника
- •Свойства объекта Assistant
- •Объект Balloon
Методы объекта Worksheet и семейства Worksheet
|
Evaluate |
Преобразует выражение в объект или значение. Используется при вводе формул и ячеек из диалоговых окон. В следующем примере в поле ввода первого появившегося ) диалогового окна вводится ссылка на ячейку, например A1, процедура считывает значение из этой ячейки и отображает его в диалоговом окне. После этого в поле ввода следующего диалогового окна надо ввести какое-нибудь арифметическое выражение, например sin(l) ^2. Процедура вычислит значение этого выражения и отобразит в диалоговом окне: Sub Два Примера ДляEvaluate ( ) ' ' Ввод адреса ячейки ' Ячейка = InputBox ( "Введите имя ячейки") ' ' Считывание значения из ячейки с указанным адресом ' Значение = Evaluate (Ячейка) .Value ' ' Вывод считанного значения в диалоговое окно ' MsgBox CStr (Значение) ' ' Ввод в диалоговое окно формулы, например, sin(1)^2 ' Функция = InputBox ( "Введите функцию" ) ' ' Вычисление значения по введенной формуле ' Значение = Evaluate (Функция) ' Вывод найденного значения в диалоговом окне ' MsgBox CStr (Значение) End Sub |
|
События объекта Worksheet
Событие |
Когда возникает событие |
BeforeClose |
При закрытии рабочей книги |
BeforePrint |
Перед печатью рабочей книги |
BeforeSave |
Перед сохранением рабочей книги |
Deactivate |
Когда рабочая книга теряет фокус |
NewSheet |
При добавлении нового листа |
Open |
При открытии рабочей книги |
SheetActivate |
При активизации любого рабочего листа |
Sheet Deactivate |
Когда рабочий лист теряет фокус |
Объекты Range и Selection
В иерархии Excel объект Range (диапазон) идет сразу после объекта worksheet. Объект Range является одним из ключевых объектов VBA. Объект Selection (выбор) возникает в VBA двояко — либо как результат работы метода Select, либо при вызове свойства selection. Тип получаемого объекта зависит от типа выделенного объекта. Чаще всего объект Selection принадлежит классу Range и при работе с ним можно использовать свойства и методы объекта Range. Интересной особенностью объектов Range и selection является то, что они не являются элементами никакого семейства объектов.
Адресация ячеек
При работе с объектом Range необходимо помнить, как в Excel ссылаются на ячейку рабочего листа. Имеются два способа ссылки на ячейки рабочего листа: относительная адресация (т. е. когда начало координат, задающее нумерацию строк и столбцов, связывается с объектом, вызвавшим Range) и абсолютная адресация.
Относительная адресация:
|
|
|
|
|
Формат А1 |
Имя ячейки состоит из имени столбца (их 256 — А, В, ..., Z, АВ, ..., HZ, IA, ..., IV) и номера (1, ...., 16384). |
|
|
|
Например, A1, C2 |
|
|
Формат R1C1 |
Адресация задается индексом строки и индексом столбца. Например, R1C1, R2C3 |
|
|
|
|
|
Абсолютная адресация:
|
|
|
|
|
Формат А1 |
Признаком абсолютной адресации является знак "$", предшествующий имени строки (абсолютной адресации на строку) или столбца (абсолютной адресации на столбец). Например, $А10, А$10 и $А$10 задают абсолютную адресацию на столбец А, строку 10 и ячейку А10 соответственно |
|
|
Формат R1C1 |
Указывается смещение по отношению к активной ячейке. Смещение приводится в квадратных скобках, причем знак указывает на направление смещения. Например, если активной ячейкой является касз, то R[i]C[-1] дает ссылку на ячейку кзс2 |
|
|
|
|
|
Адресация ячейки рабочего листа является лишь частью полного адреса ячейки, который в общем случае включает имя рабочего листа и адрес книги. При задании полного адреса за именем листа следует знак "!", а адрес книги заключается в скобки. Например,
А1
Лист2!А1
[МояКнига.хls]Лист2!А1
В первой строке данного примера дана относительная ссылка на ячейку AI активного рабочего листа, во второй — на ячейку AI рабочего листа листа активной книги, а в третьей на ячейку AI рабочего листа лист2 книги моякнига-xls текущего рабочего каталога.