Similar presentations:
Visual Basic
1.
РХТУ им. Д.И. МенделееваКаф. ИКТ
Курс создал: ст. преп. A.М. Васецкий
1
2. Рекомендованная литература
Основная литература:Гарнаев А.Ю., Рудикова Л.В., «Microsoft Office Excel 2010.
Разработка приложений», СПБ, БХВ-Петербург, 514 с
Дополнительная литература:
Уокенбах Дж., Microsoft Excel 2010. Библия пользователя,
Диалектика, 912 c.
А. Н. Тихомиров, П. В. Колосков, Р. Г. Прокди, «Весь Office
2010. 8 книг в 1. Полное руководство», М.: Наука и техника,
2011, 632 c.
http://office.microsoft.com/ru-ru/support/FX101851541.aspx# , от
3.12.2012
2
3. Введение
Visual Basic for Applications являетсяединой средой разработки приложений
во всех программах Microsoft Office.
Основные принципы работы в среде
VBA и в среде Visual Basic идентичны.
В данном курсе рассматривается
версия VBA для MS Office 2003, однако
используемые коды можно применять и
в более новых версиях MS Office
3
4.
1. C помощью VBA можно записывать2.
3.
последовательности повторяющихся
команд, характерных для какого-либо
приложения, и назначать правила, в
соответствии с которым эти
последовательности (процедуры VBA)
будут вызываться в приложении.
Средствами VBA можно обеспечить
диалог с пользователем, обрабатывая
реакцию пользователя на события в
приложении.
С помощью VBA можно разрабатывать
приложения, одновременно применяющие
компоненты нескольких программ.
4
5. Основные термины
Модуль. Контейнер для текста программы на языке VBA.Подпрограмма. Один из двух типов макросов. Другой тип
макроса – это функция (Функция возвращает единственное
значение)
Пользовательская форма (UserForm). Контейнер,
содержащий элементы управления для пользовательского
диалогового окна, а также текст программы на языке VBA
для манипуляции этими элементами управления.
Процедура. Еще одно название макроса. VBA-процедура
может быть подпрограммой или функцией.
Текст (код) программы. Команды языка VBA, которые
помещаются на лист модуля при записи макроса. Текст
программы на языке VBA можно также ввести вручную.
Элементы управления (Controls). Элементы
пользовательской формы (или рабочего листа), с помощью
которых можно осуществлять управление чем-либо. К ним
относятся кнопки, флажки и списки.
5
6. Основные понятия
При объектно-ориентированном программированиипрактически все компоненты среды разработки являются
объектами. В Excel VBA-объектом считается любой
элемент приложения – ячейка, лист, рабочая книга,
диаграмма. Фактически объектом является и само
приложение Excel. Объекты могут включать области ячеек,
рамки ячеек, окна, сценарии, стили, и т.д. Каждый класс
объектов имеет свое множество свойств, функций и
событий.
При добавлении объекта на рабочий лист, создается
экземпляр класса объектов, и объекту присваиваются те
значения свойств, которые определены в этом классе. По
умолчанию экземпляры одного и того ж класса имеют имя,
которое состоит из имени родительского класса и
порядкового номера. Свойства каждого экземпляра одного
и того же класса инициализируются одними и теми же
значениями, за исключением свойства Name.
6
7. Основные понятия
Свойство является атрибутом объекта,описывающим, как объект выглядит (его цвет,
размер и местоположение) и как он действует
(является ли видимым, ссылается ли на другой
объект). Когда создаётся объект, Excel выполняет
процедуру создания экземпляра этого объекта.
Данная процедура, хранимая в классе объектов,
присваивает значения всем свойствам, что
позволяет вам сразу же работать с объектом.
Чтобы в макросе VBA присвоить свойству новое
значение, необходимо лишь создать оператор
присваивания, в котором слева от знака равенства
будут указаны имя и свойство объекта, а справа –
новое значение (имя.свойство = значение).
7
8. Основные понятия
Метод – это действие, которое может быть выполненонад объектом. Методы реализуются посредством
выполнения процедуры, которая является членом класса
объектов. Синтаксис вызова метода таков; имя объекта и
имя метода, разделенные точкой. К примеру, для того
чтобы использовать метод Protect для защиты объекта
Sheet от внесения изменений, следует ввести такую
команду: Sheet.Protect
События
Когда пользователь взаимодействует с определенным
объектом на рабочем листе, совершается событие.
Каждый класс объектов имеет собственную группу
событий, на которые объекты данного класса реагируют.
Так, рабочая книга имеет событие NewSheet, которое
выполняется всякий раз, когда пользователь добавляет в
нее новый лист.
8
9. Макросы
В Excel существует возможность создаватьсобственные макросы и таким образом
автоматизировать выполнение основных операций.
Макрос представляет собой последовательность
команд и функций, записанных в модуле VBA.
Есть два способа создания макроса: записывать
свои действия во время работы с листом Excel или
же написать макрос, используя редактор VBA.
Наиболее простым способом создания
макрокоманды является ее запись с помощью
макрорекордера. Макрорекордер протоколирует все
выполняемые пользователем действия и
представляет их в виде VBA-кода.
9
10. Вызов макрорекордера
Этапы записи макросаЗапуск макрорекордера;
присвоение макросу имени;
выполнение записываемых
операций;
завершение записи.
10
11. Абсолютная и относительная адресация
Обычно Excel при записи макроса используетабсолютную адресацию (ссылка на конкретную
ячейку). Однако, во многих случаях, например,
когда неизвестно, с какой точно ячейкой
(диапазоном) будут проводиться действия
необходимо использовать относительную
адресацию. В таком случае, действия будут
зависеть от того, какая ячейка является
активной
Режим абсолютной/
относительной адресации
включается/выключается
кнопкой на панели
рекордера во время записи
макроса
11
12. Макросы. Окно проекта
Макрос начинается соператора Sub. За ним
следует имя макроса,
которое служит для
идентификации такового.
После имени идет текст
макроса, который можно
редактировать, а также
снабжать
комментариями.
В начале каждого
комментария должен
стоять символ апострофа
('). Завершается макрос
оператором End Sub.
12
13. Среда программирования. Окно проекта
Окно проектарасположено в верхнем
левом углу клиентской
области. Содержит
иерархический список
элементов проекта,
напоминающий дерево
папок, Существует один
проект для каждой
На втором уровне находятся
книги, открытой в
Объекты Excel
Модули
данный момент.
Формы
Элементы окна
Модули класса
называются узлами
13
14. Объект ThisWorkbook (ЭтаКнига)
Под каждым узлом объекта Microsoft Excelрасполагается узел с именем ThisWorkbook. Он
представляет книгу проекта и ее код (также называемый
модулем кода), который сохраняет события для книги. В
этот компонент можно также поместить независимую
процедуру, которая обычно входит в состав стандартных
модулей.
События инициируют запуск определенных процедур.
С книгами Excel связано 19 событий.
Примеры событий:
Open - возникает при открытии книги;
BeforeClose - наступает в момент закрытия книги;
NewSheet - наступает при добавлении в книгу
нового листа;
BeforePrint - наступает перед распечаткой книги
или части ее содержимого.
14
15.
Объекты SheetПод каждым узлом объекта Microsoft Excel
также располагаются узлы для каждого листа
книги. При этом лист содержит таблицу или
диаграмму, и, кроме того, в его состав входит
компонент, включающий код событий. В этот
компонент можно также поместить
независимые процедуры, которые обычно
находятся в стандартном модуле.
Стандартные модули
Модули содержат процедуры (функции и
подпрограммы). Это могут быть макросы,
которые запускаются пользователем, или
служебные программы, используемые
другими программами.
15
16. Объекты UserForm (Формы)
Существует возможность создания собственныхдиалоговых окон пользователя, которые называются
формами, или UserForm.
Кроме формы и элементов управления объект
UserForm содержит код на языке VBA. Например,
командной кнопке соответствует событие Click,
наступающее после щелчка пользователя на кнопке.
16
17. Модули классов
Модули классов содержат код,относящийся к нестандартным объектам.
Объектная модель Excel включает
множество встроенных объектов (их число
почти достигает 200), таких как книги,
листы, диаграммы, шрифты и т. п. При
этом существует возможность создавать
нестандартные объекты и присваивать им
определенные свойства. Это делается
путем помещения соответствующего кода
в модуль классов.
17
18. Меню редактора VBA
1819. Меню Edit
Открывает список в List Properties/ Methods,отображая свойства и методы объекта, имя которого
только что ввели. Когда курсор вставки находится
на пустом месте в List Properties/Methods эта
команда открывает список глобально доступных
свойств и методов.
List Constants
Открывает список в Code Window, отображающий
(список констант) допустимые константы для свойства, которое только
что ввели с предшествующим знаком "=".
List Properties/
Methods
(список
свойств/методов)
Открывает всплывающее окно подсказки,
отображающее правильный синтаксис для
процедуры, функции или метода, который только
что ввели в Code Window.
Parameter Info
Открывает всплывающее окно подсказки,
(параметры)
отображающее параметры (называемые также
аргументами) процедуры, функции или оператора.
Complete Word
Редактор заканчивает вводимое слово, как только
(завершить слово) обнаружит достаточно символов для распознания
ключевого слова
Quick Info
(сведения)
19
20. Меню Options
2021. Окно Properties
Окно Properties дает доступ кизменению свойств объекта. Его можно
использовать для изменения свойств
объекта даже при отсутствии
выполняемого кода, то есть в период
проектирования. Некоторые свойства
предназначены только для чтения
Большинство свойств можно менять
как в период проектирования, так и во
время выполнения кода.
21
22. Окно Immediate
Окно имеет две основные функции.Во-первых, можно послать в него
выходные данные с помощью команды
Debug.Print.
Второй основной функцией данного
окна является выполнение команд.
22
23. Окно просмотра объектов (Object Browser)
В окне приводится список всехимеющихся объектов, которые
можно использовать в проекте
Вызов – View>Object browser
(F2)
Окно состоит из 3-х частей
Проект/Библиотека - В этом
раскрывающемся списке можно
выбрать различные проекты и
библиотеки объектов. Выбор в
списке строк <Все библиотеки>
отображает список объектов всех
библиотек.
23
24. Object Browser
Список Классы. После выбора израскрывающегося списка
Проект/Библиотека
просматриваемой библиотеки,
например VBA, все классы объектов
выбранной библиотеки выводятся в
списке Классы.
Список Компоненты. После
выбора класса из списка Классы
просматриваемой библиотеки,
например, все компоненты
выбранного класса выводятся в
списке Компоненты. При
выделении строки в этом списке в
нижней части окна Просмотр
объектов приводится
дополнительная информация о
выбранном компоненте.
24
25. Отладка кода
F8 – шаг с заходом. Приводит к пошаговомувыполнению подпрограммы или функции.
Shift + F8 – шаг с обходом. Приводит к
моментальному выполнению подпрограммы
(функции) целиком.
Ctrl + Shift + F8 – шаг с выходом. Выполнение
остановится на инструкции, следующей за вызовом.
Ctrl + F8 – выполнение кода до места расположения
курсора.
F5 – выполнение кода.
Ctrl + Break – прерывание выполнения кода.
Shift + F9 – появляется диалоговое окно Quick
Watch, позволяющее наблюдать за изменением
определенной переменной в процессе выполнения
кода.
F9 – точка останова. Будет создано место, в котором
нормальное выполнение программы
приостанавливается. Это полезно, если требуется
быстро выполнить код до определенной инструкции, а
затем перейти в пошаговый режим отладки кода.
Ctrl + Shift + F9 – снять все точки останова.
25
26. Режимы работы
Среда программирования можетработать в одном из режимов:
Проектирование
Выполнение (Run - F5)
Прерывание – может
вызваться пользователем
(CTRL+Break) в случае, если
программа зависла, или
программой, при обнаружении
ошибки в ходе выполнения кода,
а также при достижении
специальной команды кода
(Stop) или точки останова
(Breakpoint). Также этот режим
вызывается оператором Watch
26
27. Рекомендации по вводу кода программы
1. Программа должна быть снабжена2.
3.
4.
5.
необходимым количеством комментариев.
(Заголовок, описание параметров и т.п.)
Отсутствие комментариев сильно усложняет
понимание кода.
Комментарий начинается с символа
апострофа «´»
Длинные строки целесообразно разбивать на
несколько с целью повышения
читабельности.
Символ переноса строки «_»
Код программы должен быть
структурирован при помощи отступов. Это
делает код намного более удобочитаемым.
27
28. Импорт и экспорт файлов
Код макросов хранится в файлеExcel. Однако при необходимости
можно организовать импорт/экспорт
модулей с использованием меню
«File»
Импорт/экспорт осуществляется
для каждого модуля индивидуально.
28