СОЗДАНИЕ ПРИЛОЖЕНИЙ НА ЯЗЫКЕ VISUAL BASIC FOR APPLICATIONS
Характеристика языка VBA
Операторы языка VBA
Работа с файлами
Диалоговые окна
ХАРАКТЕРИСТИКА ЯЗЫКА VBA
Основные понятия
Visual Basic for Applications (VBA) является общей языковой платформой для всех приложений (Excel 5.0, Word 6.0, Mail, Power Point). VBA соблюдает основной синтаксис и правила программирования языков-диалектов Basic (BASICA, GW-BASIC). Концепция и синтаксис языка VBA рассмотрены в данной главе применительно к Excel 5.0.
Visual Basic for Applications(VBA) – развитая система визуального программирования для создания прикладных программ в среде Microsoft Office.
С помощью VBA можно создавать объекты управления графического интерфейса пользователя, задавать и изменять свойства объектов, подключать к ним соответствующий программный код. Методика программирования с использованием средств VBA сводится к следующему:
создание объектов управления и контроля (диалоговые окна, пиктограммы, меню);
разработка процедур, используемых при вызове объектов.
Прикладные программы на языке VBA оперируют со следующими понятиями:
объект управления и контроля - экранные формы, графические элементы внутри форм, в том числе текстовые окна, линейки прокрутки, пиктограммы, окна-списки, командные кнопки и др.;
свойство (параметр) – характеристика или атрибут объекта управления;
значение свойства;
событие – действие, которое распознается объектом управления;
метод доступа - аналогичное понятиям функция, оператор, который воздействует всегда на объект;
процедура – подпрограммы и функции, произвольная последовательность операторов VBA; процедуры делятся на событийные (запускаются при наступлении событий) и общие процедуры.
Программы на языке VBA для приложений, функционирующих в среде Excel 5.0, создаются двумя способами:
в автоматическом режиме как результат построения клавишной макрокоманды (см. подразд. 19.1);
в неавтоматическом режиме путем создания программного кода.
Ниже рассматривается вариант традиционного программирования на языке VBA применительно к Excel 5.0.
Для создания программного модуля в составе рабочей книги выполняется команда меню ВСТАВКА, Макросс указанием типа макроса – Модуль. При этом создается новый рабочий лист со стандартным именем Модуль и порядковым номером программного модуля в рабочей книге. Имя модульного листа можно изменить.
При работе с модулем на экран выводится новая панель инструментов Visual Basic (рис. 19.20).
Рис. 19.20.Панель инструментов
Первый ряд кнопок панели (слева направо):
<Вставка Модуля> - вставляет в активную рабочую книгу новый программный модуль;
<Редактор Меню> - редактирование строк и команд меню рабочей книги;
<Просмотр Объектов> – просмотр списка доступных в текущей рабочей книге процедур, модулей, объектов и их свойств.
Второй ряд кнопок:
<Выполнить Макрос> - выбор нужного макроса для запуска через окно диалога Макрос;
<Шаг Макроса> – пошаговое выполнение выбранного макроса (шаг – одна строка кода);
<Продолжить Макрос> – возобновление выполнения макроса после его останова;
<Остановить Макрос> – останов выполнения или записи макроса;
<Записать Макрос> – ввод через окно диалога Макрос имени нового макроса и его запись.
Третий ряд кнопок:
<Точки Прерывания> – установление (снятие) точки прерывания для строки процедуры;
<Наблюдение> – указание в окне диалога выражения VBA для наблюдения его значений;
<Вход в Процедуру> – выполнение следующей строки кода процедуры VBA;
<Выход из Процедуры> - выполнение следующей строки кода процедуры VBA с приостановкой.
Экран модуля используется для записи строк программы на языке VBA.
Основные наборы (классы объектов), с которыми работает программа на языке VBA в среде Excel 5.0, представлены в табл. 19.3.
Таблица 19.3. Перечень наборов VBA Excel 5.0
Имя набора | Вид объектов в наборе |
Sheets Workbooks Worksheets Charts Range | Все листы любых типов в рабочей книге Все текущие открытые рабочие книги Все таблицы в рабочей книге Все листы диаграмм в рабочей книге Диапазон ячеек таблицы (строк, столбцов, несмежных ячеек, трехмерных выделений) |
Доступ к компоненту набора осуществляется двумя способами:
1) по номеру компонента
Пример 19.5.
Workbooks("Имя_книги").Worksheets(2)
2) по имени компонента
Пример 19.6.
Workbooks ("Имя_книги").Worksheets ("Имя-лиcтa")
Наборы обладают следующими свойствами:
Count – определяет число компонентов в наборе;
Name – определяет имя компонента;
Parent – определяет имя объекта, включающего набор.
Для добавления и удаления компонентов набора используют методы Add и Delete.
Отдельные ячейки таблицы доступны через объект Range и следующие методы:
1. Cell – в качестве аргументов указываются два целых числа, определяющих местоположение отдельной ячейки таблицы – Cell (число1; число2)
Пример 19.7.
Cell(l;2).Value=5
Присваивает ячейке В2 текущего рабочего листа активной рабочей книги значение 5;
Cells(2, l).Formula= "=SUM(B1:B5)"
Записывает в ячейку А2 формулу суммирования значений в ячейках В1:В5.
2. Range – работа с прямоугольной областью ячеек, в качестве аргументов используется одна или две ссылки на ячейки таблицы в стиле А1:
Range ("A2";"G10")
Range ("f4")
либо на блок ячеек по их имени.
Пример 19.8.
Worksheets("PRIMTR"). Range("A10"; "F12").Value=10
Присвоение блоку ячеек постоянного значения 10.
Range("D15").Value = "Test"
Присвоение ячейке текущего рабочего листа активной рабочей книги значения "Test".
Range("Criteria").ClearContents
Очистка содержимого именованного блока ячеек текущего рабочего листа активной рабочей книги.
Примечание.Можно использовать форму записи Range(Cells(1; 1); Cells(2; 2)).
3. Offset – в качестве аргументов передаются два числа, указывающие местоположение ячейки относительно верхнего левого угла указанной области. При записи макросов с относительными ссылками макрорекордер использует данный метод для указания выбора.
Пример 19.9.
Selection.Offset(2, 5). Select
Относительно текущей ячейки, например, А1, происходит смещение в ячейку F3.
["Адрес_ячейки"] – краткая ссылка на ячейку по ее адресу.
4. Union – метод множественного выделения областей ячеек – Union (область1; область2).
Каждую область формируют с помощью метода Range.
Пример 19.10.
Union(Range(Cells(l; l);Cells(2; 2)); Range(Cells(5; 5); Cells(7; 7)).Select
Выделяет области ячеек: А1:В2, E5:G7.
Дата добавления: 2015-11-28; просмотров: 962;