Раздел I. Проектная часть




ОСНОВЫVBA

Программирование в Excel, в основном, сводится к управлению объектами. Эта задача выполняется с помощью инструкций, введённых на языке, понятном Excel.

Visual Basic For Application (далее VBA) – немного упрощённая реализация языка программирования Visual Basic, встроенная в линейку продуктов Microsoft Office (включая версии для Mac OS), а так же во многие другие программные пакеты, такие как AutoCAD, WordPerfect и ESRI ArcGIS. VBA покрывает и расширяет функциональность ранее использовавшихся специализированных макро-языков, таких как WordBasic.

VBA является интерпретируемым языком. Как и следует из его названия, VBA близок к Visual Basic, но может выполняться лишь в рамках приложения, в которое он встроен. Кроме того, он может использоваться для управления одним приложением из другого, с помощью OLE Automation (например, таким образом можно создать документ Word на основе данных из Excel). В будущем Microsoft планирует заменить VBA на Visual Studio Tools for Applications (VSTA) — инструментарий расширения функциональности приложений, основанный на Microsoft.NET.

VBA в настоящее время входит в состав всех приложений Microsoft Office и даже приложений других компаний. Следовательно, овладев VBA для Excel, можно сразу перейти к созданию макросов для других программных продуктов Microsoft (равно, как и приложений других компаний). Более того, можно создавать полноценные программные продукты, одновременно использующие функции самых разных приложений.

Объектные модели

Секрет использования VBA заключается в правильном понимании объектной модели в каждом отдельном приложении. Следует отметить, VBA всего лишь управляет объектами, а у каждого программного продукта (Excel, Word, Access, PowerPoint и т.п.) своя объектная модель. Приложением можно управлять программным образом только с помощью объектов, которые представлены в этом приложении.

Например, в объектной модели Excel представлено несколько мощных объектов анализа данных, например, рабочие листы, диаграммы, сводные таблицы, сценарии, а также многочисленные математические, финансовые, инженерные и общие функции. С помощью VBA можно работать с этими объектами и разрабатывать автоматизированные проце­дуры.

Предназначение VBA:

1.Действия в VBA осуществляются в результате выполнения кода VBA.

2. Разработчик создаёт (или записывает) программу VBA, которая сохраняется в модуле VBA

Модуль VBA состоит из процедур.

Процедура, по существу, представляет собой элемент компьютерной программы, выполняющей определенное действие. Ниже приведен пример простой процедуры под названием Test: она вычисляет сумму, а затем отображает результат в окне сообщений:

Sub Test ()

Sum =1+1

MsgBox "Ответ: " & Sum

End Sub

Кроме процедур Sub, в модуле VBA может использоваться второй тип процедур — функции.

Процедура функции возвращает одно значение (или массив). Функция может быть вызвана из другой процедуры VBA или использоваться в формуле рабочего листа. Ниже приведен пример функции с названием AddTwo:

Function AddTwo(arg1, arg2)

AddTwo = arg1 + arg2

End Function

Excel позволяет управлять более, чем ста классами объектов, включая рабочую книгу, рабочий лист, диапазон ячеек рабочего листа, диаграмму и нарисованный прямоугольник. В распоряжении разработчика находятся и другие объекты, с которыми можно работать в VBA.

Классы объектов

Классы объектов в VBA организованы в иерархическую структуру.

Объекты могут быть контейнерами для других объектов. Например, Excel — это объект под названием Application, он содержит другие объекты, например, Workbook (Рабочая книга).

Объект Workbook может состоять из других объектов, например, Worksheet (Рабочий лист) и Chart (Диаграмма).

Объект Worksheet также содержит объекты, например, Range (Диапазон), PivotTable (Сводная таблица) и т.д. Организацию таких объектов называют объектной моделью Excel.

Одинаковые объекты формируют коллекцию.

Например, коллекция Worksheets состоит из всех рабочих листов конкретной рабочей книги, а коллекция CommandBars — из всех объектов CommandBar. Коллекции — это объекты в себе.

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

Например, на рабочую книгу с названием Книга1.xls можно сослаться следующим образом:

Application. Workbooks(«Книга1.xls»)

Это ссылка на рабочую книгу Книга1.xls в коллекции Workbooks. Коллекция Workbooks находится в объекте Application. Переходя на следующий уровень, можно сослаться на лист под названием «Лист1» в книге Книга1.xls:

Application. Workbooks («Книга1.хls»).Worksheets («Лист1»)

Сослаться на ячейку, перейдя на один уровень ниже, следующим образом:

Application.Workbooks(«Книга1.xls»).Worksheets(«Лист1»).Range(«А1»)

При опущенной ссылке на объект Excel по умолчанию используются активные объекты. Если книга Лист1 — активная рабочая книга, то предыдущую ссылку можно упростить: Worksheets («Лист1»).Range(«А1»)

Если лист «Лист1» — активный, то ссылку можно упростить еще больше:

Range(«A1»)

Свойства объектов

Свойство можно считать параметром или настройкой объекта. Например, объект диапазона имеет такие свойства, как Value (Значение) и Name (Имя). Объект диаграммы обладает такими свойствами, как HasTitle (Заголовок) и Туре (Тип). Разработчик вправе использовать VBA, чтобы задать свойства объектов и их изменить.

Свойства в программном коде отделяются от названия объекта точкой.

Например, можно сослаться на значение в ячейке А1 листа «Лист1» следующим образом:

Worksheets («Лист1»).Range(«А1»).Value

Пользователь вправе присваивать значения переменным VBA. Переменную можно считать константой, которая используется для хранения конкретного значения.

Чтобы присвоить значение ячейки А1 листа Лист1 переменной с названием Interest, можно использовать следующий оператор VBA:

Interest = Worksheets («Лист1»).Range («А1»).Value

Методы

Метод - это действие, которое выполняется над объектом. Например, один из методов объекта Range — ClearContents. Этот метод удаляет содержимое диапазона ячеек.

Методы вводятся после названия объекта с методом, в роли разделителя выступает точка.

Например, для удаления содержимого ячейки А1 активного рабочего листа используется следующая команда:

Range(«А1»).ClearContents

Иерархия объектов

Объект Application (то есть Excel) содержит другие объекты. Ниже приведено несколько примеров объектов, которые находятся в объекте Application:

Workbooks (коллекция всех объектов Workbook — рабочих книг);

Windows (коллекция всех объектов window — окон);

Addlns (коллекция всех объектов Addln — надстроек).

Некоторые объекты могут содержать другие объекты. Например, коллекция Workbooks состоит из всех открытых объектов Workbook, а объект Workbook включает другие объекты, некоторые из которых представлены ниже;

Worksheets (коллекция объектов Worksheet — рабочих листов);

Charts (коллекция объектов Chart — диаграмм);

Names (коллекция объектов Name — имен).

Каждый из этих объектов, в свою очередь, может содержать другие объекты. Коллекция Worksheets состоит из всех объектов Worksheet рабочей книги Workbook. Объект Worksheet включает другие объекты, среди которых следующие;

Chartobjects (коллекция объектов Char tobject — элементов диаграмм);

Range — диапазон;

PageSetup — параметры страницы;

PivotTables (коллекция объектов PivotTable — сводных таблиц).

Одной из ключевых концепций в программировании на языке VBA являются коллекции. Коллекция — это группа, объектов одного класса [и сама коллекция тоже является объектом). Как указывалось выше: Workbooks — это коллекция всех открытых в данный момент объектов Workbook. Worksheets — коллекция всех объектов Worksheet, которые содержатся в конкретном объекте Workbook. Разработчик может одновременно управлять целой коллекцией объектов или отдельным объектом этой коллекции. Чтобы сослаться на один объект из коллекции, необходимо ввести название или номер объекта в скобках после названия коллекции:

Worksheets («Лист1»)

Если лист «Лист1» — это первый рабочий лист в коллекции, то можно использовать сле­дующую ссылку:

Worksheets (1)

На второй лист в рабочей книге Workbook можно сослаться соответственно следующим образом:

Worksheets (2)

Кроме того, существует коллекция с названием Sheets, состоящая из всех листов рабо­чей книги, рабочих листов и листов диаграмм. Если «Лист1» — первый лист в книге, то на не­го можно сослаться так

Sheets (1)

Свойства объектов

Все объекты обладают свойствами. Например, объект Range обладает свойством с названием Value. Например, можно создать оператор VBA, чтобы отобразить свойство Value или задать свойству Value определенное значение. Ниже приведена процедура» использующая функцию VBA MsgBox для отображения окна, в котором представлено значение ячейки А1 листа Лист! активной рабочей книги.

Sub ShowValue()

HsgSox Worksheets(«Лист1»).Range(«А1»).Value

End Sub

Код предыдущего примера отображает текущее значение свойства Value для конкретной ячейки — А1 рабочего листа Лист1 активной рабочей книги. Однако если в активной книге отсутствует лист с названием Лист1, то макрос выдаст ошибку.

MsgBox — полезная функция, часто используемая для отображения результатов выполнения операторов VBA.

Также разработчик вправе изменять свойство Value. Ниже приведена процедура по изменению значения ячейки А1 путем определения значения свойства Value:

Sub ChangeValueO

Worksheets["Лист1"),Range("Al").Value = 123

End Sub

После выполнения этой процедуры ячейка A1 листа Лист1 получает значение 123. Можно ввести описанные процедуры в модуль и протестировать их.

Многие объекты имеют свойство по умолчанию. Для объекта Range свойством по умолчанию является Values. Следовательно, выражение.Value в приведенном выше коде можно опустить, и ничего не изменится. Однако лучше включать ссылку на свойство, даже если оно используется по умолчанию.

Методы объектов

Кроме свойств, объекты имеют методы. Простой пример - использование метода Clear по отношению к диапазону ячеек. После выполнения этой процедуры ячейки А1:СЗ листа Лист1 станут пустыми, и дополнительное форматирование ячеек будет удалено.

Sub SapRange ()

Worksheets(«Лист1»).Range(«Al:C3»).Clear

End Sub

Если необходимо удалить значения в диапазоне, но оставить форматирование, можно использовать метод ClearContents объекта Range.

Многие методы получают аргументы, определяющие выполняемые над объектом действия более детально. Далее приводится пример, в котором ячейка А1 копируется в ячейку В1 с помощью метода Сору объекта Range.

В данном примере метод Сору получает один аргумент (адрес ячейки, в которую следует скопировать данные):

Sub CopyOnet ()

Worksheets(«Лист1»).Range(«Al»).Copy _

Worksheets(«Лист1»).Range(«В1»)

End sub

 

 

РАЗДЕЛ I. ПРОЕКТНАЯ ЧАСТЬ

1.1 Описание предметной области

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

- она обеспечивает удобный метод поиска информации о предлагаемом товаре и о клиентах;

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

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

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

В данной части будет рассмотрена реализация автоматизированной информационной системы в языке программирования Visual Basic For Application (VBA). Для того чтобы начать разработку базы данных, необходимо создать таблицы, которые получились в результате проектирования.

Рассмотрим получившийся проект.

В таблице «Товар» отображаются поля:

· Шифр;

· Наименование;

· Производитель;

· Характеристика;

· Количество;

· Дата приобретения;

· Цена.

 

 

В таблице «Клиент» отображаются поля:

· ФИО;

· Адрес;

· Телефон;

· Дата;

· Выбор;

· Вид;

· Гарантия;

· Продавец.

 

 

В таблице «Сотрудник» отображаются поля:

· ФИО;

· Должность

· Адрес;

· Телефон.

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-08 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: