- •Алгоритмизация и программирование на vba: основы программирования
- •Содержание
- •Лабораторная работа 1 Создание программы на vba
- •Цель работы
- •Общие сведения
- •Языки программирования
- •Объекты
- •События
- •Порядок выполнения работы
- •Содержание отчёта
- •Контрольные вопросы
- •Лабораторная работа 2 Реализация линейных алгоритмов в vba
- •Синтаксис:
- •Аргументы:
- •Инструкция DefТип
- •Константы
- •Допустимые имена
- •Инструкции vba
- •Форматирование строк программы
- •Перенос инструкции
- •Размещение инструкций в одну строку
- •Комментарии
- •Операции в vba
- •Арифметические
- •Строковые
- •Синтаксис:
- •Операции отношения
- •Логические операции.
- •Приоритеты операций
- •Встроенные функции vba
- •Математические функции
- •Функции проверки типов
- •Функции преобразования форматов
- •Синтаксис:
- •Аргументы:
- •Функции обработки строк
- •Функции времени и даты
- •Функции, возвращающие строки
- •Встроенные диалоговые окна
- •Синтаксис:
- •Аргументы:
- •Синтаксис:
- •Аргументы:
- •Работы с данными Host приложений.
- •Анализ макросов
- •Обращение к объектам.
- •Оператор «With».
- •Задание
- •Содержание отчёта
- •Контрольные вопросы
- •Пример выполнения работы Задание:
- •Текст программы:
- •Индивидуальные задания
События
Событие представляет собой действие, распознаваемое объектом (например, щелчок кнопкой мыши, нажатие клавиши или вызов программы на VBAиз меню макросов), для которого можно запрограммировать отклик. События возникают в результате действий пользователя или программы, или же они могут быть вызваны системой.
Суть программирования на VBA как раз и заключается в этих двух понятиях: событие и отклик на него. Если пользователь производит какое-то воздействие на систему, скажем, нажимает кнопку, тогда в качестве отклика выполняется код созданной пользователем процедуры. Если такой отклик не создан, т. е. не написана соответствующая процедура, то система никак не реагирует на данное событие, и оно остается безответным. Таким образом, действия, происходящие в системе, являются событиями, а отклики на них — процедурами. Этот специальный вид процедур, генерирующих отклик на события, называется процедурами обработки событий. В целом программирование на VBA состоит в создании кода программ, которые генерируют прямо или косвенно отклики на события.
Порядок выполнения работы
ЗапуститеMicrosoftWord.
Создайте новый документ и дайте ему имя, выбрав пункт Файл -> Сохранить как (Error: Reference source not found).
Для запуска встроенного редактораVBAвыберите пункты Сервис -> Макрос -> РедакторVisualBasic(Error: Reference source not found), или нажмитеAlt-F11.
В редакторе VisualBasicпри запуске отображается окно Менеджера проектов и окно Свойств объектов (Error: Reference source not found).
Окно менеджера проектов содержит дерево открытых в данный момент шаблонов и документов (Error: Reference source not found), и как минимум, там должны присутствовать:
шаблонnormal.dot, открываемый при запускеwordпо умолчанию
открытые в данный момент документы
Окно Свойств объектов (Error: Reference source not found) содержит свойства объекта текущего выбора из окна менеджера проектов.
Для того чтобы написать программу на VisualBasic, необходимо вставить модуль в документ.
Выберите проект, содержащий созданный вами документ (имя документасодержится в скобках) (Error: Reference source not found) .
Выберите команды Insert->Moduleв меню редактораVisualBasic(Error: Reference source not found), или, нажав на соответствующем проекте в менеджере проектов правой кнопкой мыши, выберете соответствующие команды в контекстном меню (Error: Reference source not found). Редактор добавит новый модуль в проект и откроет окно Редактора кода (Error: Reference source not found) созданного модуля, в котором можно написать программу.
Переименуйте новый модуль, дав ему имя HelloWorld. Для этого:
В менеджере проектов выберите новый модуль (Error: Reference source not found).
В окне Свойств измените свойство Name(Error: Reference source not found).
Напишите первую программу «HelloWorld»:
Перейдите в окно кода
Введите следующие строки: SubHelloWorld()MsgBox"Hello,World!"EndSubНа экране это будет выглядеть примерно так: (Error: Reference source not found):
Строка SubHelloWorld() означает начало процедуры с именемHelloWorld, которая не использует внешних параметров.
СтрокаEndSubозначает окончание процедуры и появляется автоматически.
Команды, располагаемые между этими строками, составляют тело процедуры, и выполняются последовательно.
В данном случае, тело процедуры состоит из одной команды. Команда MsgBox"Hello,World!" приводит к выводу на экран окна с надписьюHello,World!.
После набораMsgBoxредакторVBAвыведет подсказку с перечислением параметров, которые можно передавать в процедуруMsgBox(Error: Reference source not found).
Запустите программу на выполнение, выбрав пункт меню Run->RunSub/UserForm(Error: Reference source not found) , или нажав кнопку на панели инструментов.
По командеMsgBox"Hello,World!" в программе будет выведено окно, содержащее выводимый текст (Error: Reference source not found).
Перейдите в созданный документ.
Выберите пункт меню Сервис -> Макрос -> Макросы (Error: Reference source not found)
Всписке макросов выберитеHelloWorld(Error: Reference source not found) и нажмите на кнопку выполнить.
Выполнится написанная программа (Error: Reference source not found).
Измените вторую строку на MsgBox"Hello,World!",vbYesNo,"Окно приветствия" Выполните программу и посмотрите, что изменилось в результате.
Сохраните документ. Вместе с ним сохранится всё, что входит в проект. Чтобы сохранить модуль отдельно от документа воспользуйтесь пунктом меню File->ExportFile…
Напишите программу с использованием объектной модели MSWord.
Создайте в имеющемся модуле процедуру без параметров.
Введите в тело процедуры строку: ThisDocument.PageSetup.LeftMargin= 300 (Можно воспользоваться появляющимся списком (Error: Reference source not found))
ThisDocumentозначает обращение к документу проекта (вы можете это видеть в окне менеджера проектов (Error: Reference source not found)).
PageSetupозначает обращение к параметрам страницы текущего документа.
LeftMargin– параметр «отступ слева».
Параметру присваивается значение 300 (пунктов).
На следующей строке наберите команду ThisDocument.Activate, которая сделает документ проекта активным.
Наберите команду Selection.TypeText"Hello,world"Selection– обращение к выделенному фрагменту документа или к позиции курсора.TypeText– процедура вывода строки текста. Строка текста записывается в качестве параметра.
Запустите программу и убедитесь, что с документом проекта была выполнена запрограммированная вами последовательность действий.