Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОПП_Лекция№1(2014)

.pdf
Скачиваний:
9
Добавлен:
30.05.2015
Размер:
4.11 Mб
Скачать

ОФИСНОЕ ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ

Лекция №1

Тема: Введение в офисное программирование

Лектор: Андреева В.В.

Введение в офисное программирование

Офисное программирование — это процесс разработки приложений, предназначенных для автоматизации офисной деятельности с использованием специализированных пакетов (MS Office, MS Excel,

MS PowerPoint, MS Access и т.д.).

В офисной среде программный проект неразрывно связан с

документом, хранится как часть документа и не может существовать независимо от него.

Основной задачей офисного программирования является изменение типового документа, путем расширения его дополнительными пользовательскими функциями.

Для ее решения офисная среда представляет совокупность библиотек классов, которые составляют каркас текстовых документов, электронных таблиц, презентаций, баз данных и приложений.

Офисное программирование может применятся как для настройки отдельных документов, так и для решения задач автоматизации офисной деятельности, даже масштаба предприятия.

Visual Basic для приложений (Visual Basic for Application, VBA) это инструмент разработки приложений, который позволяет создавать программные продукты для MS Office, например, для оформления документов, редактирование текстов или анализа данных электронных таблиц.

С помощью VBA можно:

создать собственное диалоговое окно и придать ему требуемый внешний вид; создать макросы, расширяющие функциональные возможности

приложения, в которое встроен VBA; изменить меню приложения Microsoft Office; управлять другим приложением Microsoft Office

объединить данные из нескольких приложений Microsoft Office в одном документе;

и т.д.

Введение в офисное программирование

Разработка приложений для MS Office тесно связана с парадигмой

объектно-ориентированногопрограммирования.

Все документы в MS Office являются объектами, наделенными собственными наборами свойств (характеристик объекта), методов (подпрограмм управления свойствами) и событий (подпрограмм, обрабатывающих изменения состояния объекта в результате некоторых действий).

Все объекты приложения MS Office образуют иерархическую структуру, которая определяет связь между ними и способ доступа. Такая структура называется объектноймоделью (рис.1).

Любое приложение MS Office имеет свою объектнуюмодель.

В виде объектов представлены все доступные разработчику элементы офисных программ.

Знание структуры объектных моделей Office позволяет создавать функциональные приложения, выполняющие необходимую обработку данных и подготовку документов.

Рис1. ИерархиявстроенныхобъектовVBA

Компоненты объектной модели каждого приложения MS Office объектыи семейства – размещаются библиотеках. Существуют:

1.стандартная библиотека объектов VBA;

2.стандартная библиотека Office;

3.библиотеки объектов Word, Excel, Access и прочие объектные библиотеки, предоставляющие различные функциональные возможности.

Основные библиотеки

Word – библиотека, задающая основу документов Word. Здесь хранится класс, задающий корневой объект Word.Application, классы объектов, вложенных в корневой объект.

Office – библиотека объектов, общих для всех приложений MS Office. Например, CommandBar – классы, определяющие инструментальные панели, и классы других общих объектов.

VBA – библиотека классов, связанных с языком VBA. Здесь хранятся все стандартные функции и константы, встроенные в язык.

Project – проект по умолчанию, связанный с документом. Классы, созданные программистом в этом проекте, методы, свойства – все это доступно для просмотра так же, как и объекты классов, встроенных в стандартные библиотеки.

Normal – проект, доступный для всех документов Word. Здесь могут храниться функции и классы, используемые всеми документами Word.

Среда разработки VBA

Для создания офисных приложений в MS Office имеется интегрированная среда разработки (Integrated Development Environment, IDE).

VBA IDE – это набор инструментов разработки программного обеспечения, таких как редактор Visual Basic (Visual Basic Editor, VBE), средства отладкии т.д.

Вызов VBA IDE из любого приложения выполняется через комбинацию клавиш

Alt+F11или меню "Сервис/Макрос/РедакторVisualBasic".

Структура VBE

VBE – это стандартное интерфейсное окно, содержащее меню, панели инструментов, элементы, которые применяются при создании проектов VBA.

Основными (открывающимися по умолчанию) являются три окна: окно проекта,

окносвойств и окно редактирования кода. Рис.2.

Окно

Главное меню и

проектов

панель

 

 

инструментов

Редактор

кода

Окно

свойств

Назначение компонентов VBE

Project(Проект)- отображает все открытые проекты, а также их составляющих: модулей; Toolbox(Панельэлементов)- Содержит элементы управления для конструирования форм; UserForm- для создания форм путем размещения на них элементов управления;

Code(Программа)- для просмотра, написания и редактирования программы на языке VBA; Properties(Свойства)– для свойств выделенных объектов; для задания новых значений свойств; ObjectBrowser(Просмотробъектов)- отображает классы, свойства, методы, события и константы;

Краткаяхарактеристикикомпонентов VBE

Окнопроекта(Project)

Проект – это совокупность всех программных модулей, связанных с документом MS Office. ОкноProject (Проект) может содержать модули следующих видов:

Объекты основного приложения. Проекты VBA выполняются совместно с другими приложениями. Приложение, в котором разрабатывается и выполняется проект VBA, называется основным.

Модули форм. В VBA имеется возможность создавать пользовательские формы, предназначенные для ввода или вывода данных, а также процедуры обработки событий, возникающие в этих формах.

Модули кода. Модульность - один из основных принципов парадигмы структурного программирования. Каждый модуль содержат пользовательские процедуры и функции.

Модули классов. VBA позволяет создавать и использовать собственные объекты. Описание объектов включается в модули класса.

С помощью окна проекта можно добавить или удалить какой-либо объект из проекта.

Модуликода добавляются в проект командой "Вставить/Модуль"; Формысоздаются командой "Вставить/UserForm";

Модуликлассадобавляются командой "Вставить/Модулькласса";

Окносвойств(Properties)

Список свойств выделенного объекта выводится в окне Properties (Свойства)

Окнопросмотраобъектов(ObjectBrowser)

Окно Object Browser (Просмотр объектов) предназначено для просмотра объектов, доступныхпри создании программы.

Окно Code (Окно редактирования кода) представляет собой текстовый редактор, предназначенный для написания и редактирования кода процедур приложения. Код внутри модуля организован в виде отдельных разделов для каждого объекта, программируемого в модуле.

Переключение между разделами выполняется путем выбора значений из списка "Object"("Объект"), который находится в левом верхнем углу окна.

Каждый раздел может содержать несколько процедур, которые можно выбрать из списка "Procedure" ("Процедура") в правом верхнем углу.

Окноредактированияформ (UserForm)

Для создания диалоговых окон и т.д. используются формы. При добавлении формы в проект на экране появляется пустая форма с панелью инструментов Toolbox (Панель элементов). Конструирование визуального интерфейса для приложения заключается в переносе на форму управляющих элементов с панели инструментов, с последующем написанием обработчиков событий для визуальных компонент.

Синтаксис VBA

Алфавит VBA - включает следующий набор символов:

a)прописные (A - Z) и строчные (а - z) буквы латинского алфавита;

b)цифры от 0 до 9;

c)знаки арифметических операций (в порядке возрастания приоритета): +, -, *, /,

|,^;

d)знаки операций отношения: =, <, >;>=,<=,<>;

e)знаки препинания и разделители: <пробел>,<переводстроки>,_ . : ; ( );

f)- апостроф является символом комментария.

Идентификаторы в VBA представляют собой произвольную последовательность букв и цифр длиной до 255 символов, может включать также символы подчеркивания и цифр. В качестве идентификаторов нельзя использовать зарезервированные слова языка и имена библиотечных объектов. Пробелы в идентификаторах недопустимы. Примеры идентификаторов: Counter,i, Mas,j1 и т.п.

Типыданных-определяет диапазон возможных значений переменной, количество памяти для ее размещения и набор допустимых операций.

Тип данных

Описаниеи диапазонзначений

Array

Массив переменных любого встроенного типа данных

Boolean

True (истина) или False (ложь)

Byte

Положительное число от 0 до 255

Currency

Используется для денежных вычислений с фиксированным количеством десятичных

знаков. От -922 337 203 685 477,5808 до 922 337 203 685 477,5807

 

Date

Дата и время. Диапазон дат: от 01.01.0100 г. до 31.12.9999 г. Диапазон времени: от

00:00:00 до 23:59:59

 

Decimal

Десятичноепредставление данных в целочисленной или вещественнойформе

 

Число с плавающей точкой двойной точности. Отрицательные числа: от -

Double

1,79769313486232Е+308до -4,94065645841247Е-324.Положительные числа:

 

4,94065645841247Е-324до 1,79769313486232Е+308

Integer

Целое число от -32 768 до 32 767

Long

Длинное целое число от -2 147 483 648 до 2 147 483 647

Object

Ссылка на объект

 

Число с плавающей точкой обычной точности. Отрицательные числа от -

Single

3,402823Е+38 до 1,401298Е-45. Положительные числа от 1,401298Е-45 до

 

3,402823Е+38

String

(переменной Длина строки от 0 до, приблизительно, 2 миллиардов символов

длины) String*N

(фиксированной от 0 до ~65 000 символов; N –фиксированнаядлина;

длины)

Можетиспользоваться для хранения любого типа данных, кроме строк

Variant

фиксированной длины. Диапазон зависит от фактически сохраняемых данных.

Синтаксис VBA

Переменные

VBA поддерживает 2 способа объявления переменных:

Неявный - переменная создается при первом ее появлении в коде в любом операторе VBA (обычно в операторе присваивания).

Явный - имя и тип переменной определяются до первого обращения.

Явное объявление переменных предпочтительнее, так как:

1)ускоряет выполнение кода;

2)уменьшается количество ошибок;

3)код становится более понятным.

Оператор Dim для явного объявления переменных; Упрощенный синтаксис:

Dim<имя_переменной>As <тип>

Если тип не назначен, переменной присваивается тип Variant.

Примеры: Dim N As Integer Dim S As String Dim U As Variant

Массивы.Упрощенный синтаксис:

Dim<имя_переменной>(<список_индексов>)As <тип>,

где в списке индексов через запятую указывается размерность (количество элементов) массива по каждому измерению.

Примеры:

Dim N(10) As Integer - описание одномерного целочисленного массива (последовательности).

Dim N(3,4) As Integer - описание двумерного целочисленного массива (матрицы).

Замечание 1. По умолчанию, нумерация элементов по каждому измерению начинается с 0, поэтому количество элементов на 1 больше указанной в описании размерности.

Замечание 2. Возможно задание массивов с очень большой размерностью; при этом следует учитывать огромные затраты памяти для хранения массива.

Объявлениеименованныхконстант

Синтаксис :

Const<имяКонстанты>[As <типДанных>]= <значение1>

Пример:

ConstintPersonCountAs Integer= 100

Синтаксис VBA

Заданиесобственныхтиповданных

Инструкция Type позволяет описать собственные типы данных, созданные на основе стандартных. С помощью определенных пользователем типов можно объявить переменные, которые содержат включающую несколько разнородных элементов информацию.

Синтаксис:

[Private|Public]Type<имя_переменной> <имя_элемента>[(<индексы>)]As <тип> [<имя_элемента>[(<индексы>)]As <тип>]

EndType

Пример.

TypeEmployee

FirstNameAs String* 15 ’Строкафиксированной длины LastNameAs String* 15 ’Строкафиксированной длины PhoneAs String* 13 ’Строкафиксированной длины

SalaryAs Integer EndType

После описания нового типа требуется явно объявить одну или несколько переменных этого типа:

DimNew_EmployeeAs Employee

Инициация переменной осуществляется присвоением значений ее элементам. Доступ к элементам выполняется через точку, например:

New_Employee.FirstName= “Иван”

New_Employee.LastName= “Петров”

New_Employee.Phone= “52-85-99” New_Employee.Salary= 12000

Областьопределенияи времяжизнипеременных

Область определения и время жизни переменных определяют, как и где применяются переменные.

В VBA имеется три уровня области определения:

1.Переменные уровня процедуры (личные переменные) используются только в процедуре, в которой они описаны. Личная переменная описывается с помощью инструкции Dim, размещенной в процедуре.

2.Переменные уровня модуля используются только в процедурах модуля, в котором они описаны, но не в других модулях проекта. Переменная уровня модуля описывается с помощью инструкции Dim,размещенной в разделе описаний модуля.

3.Общие переменные используются во всех процедурах любого модуля данного проекта. Общая переменная описывается с помощью инструкции Public, а не инструкции Dim, в

разделе описаний модуля, например:

PublicUserNameAs String

Синтаксис VBA - Операции

Операция

Формат

Название

<

[Оп1]< [Оп2]

Меньше

>

[Оп1]> [Оп2]

Больше

<=

[Оп1]<= [Оп2]

Меньше или

равно

>=

[Оп1]>= [Оп2]

Больше или

равно

<>

[Оп1]<> [Оп2]

Не равно

=

[Оп1]= [Оп2]

Равно

 

 

Сравнение двух

 

 

операндов,

Is

[Оп1]Is [Оп2]

содержащих

 

 

ссылки на

 

 

объекты

 

 

Сравнение двух

Like

[Оп1]Like[Оп2]

строковых

 

 

выражений

Операция Формат Название

+

[Оп1]+ [Оп2]

Сложение

 

 

 

-[Оп1]- [Оп2] Вычитание

 

 

Перемена

-

- [Оп1]

знака (или

унарный

 

 

 

 

минус)

*

[Оп1]* [Оп2]

Умножение

/

[Оп1]/ [Оп2]

Деление

\

[Оп1]\ [Оп2]

Целочисленное

деление

 

 

Mod

[Оп1]Mod [Оп2]

Остаток от

деления

^

[Оп1]^ [Оп2]

Возведение в

степень

 

 

ОперацияКонкатенации(сцепление)строк

Операция

Формат

 

&

[Стр1]& [Стр2]

Для сцепления строк допустимо использование операции вида

[Стр1] + [Стр2]

 

 

Оператор присваивания

<имяПеременной>= <выражение>

Для присваивания переменной ссылки на объект применяется инструкция Set:

Set<объектнаяПеременная>= [New]<объектноеВыражение>| Nothing

где:

New – опция (ключевое слово), которая используется при создании нового экземпляра класса;

Nothing – опция (ключевое слово), которая позволяет освободить все системные ресурсы и ресурсы памяти, выделенные для объекта.