Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA.doc
Скачиваний:
14
Добавлен:
29.10.2018
Размер:
185.86 Кб
Скачать

1.Введение в систему программирования vba. Объектная модель Excel, основные объекты е. Краткая их характеристика.

VB и VBA не одно и то же. VB представляет собой язык для разработки программного обеспечения, которое используется отдельно от MS Office. VBA входит в состав пакета MS Office. Устанавливая его, вы получаете доступ к VBA. Он необходим для управления данными MS Office.

Язык VBA поддерживает все базовые элементы любого другого языка программ.: 1)переменные 2)массивы 3)подпрограммы 4)управляющие структуры 5)возможность создания пользоват. типов данных и т.д.

VBA явл. языком визуального и событийно управляемого программирования. В нем есть возможность создания форм с управляющими элементами, написания процедур, обрабатывающих события. VBA позволяет работать с огромным набором объектов. VBA поддерживается такими приложениями, как Access, PowerPoint, Word и др. В каждом из приложений свой набор объектов. В Access:формы, запросы, отчеты, таблицы; в Word:абзац, сноска; в PowerPoint слайд. Каждая программа поддерживает свою версию VBA.

VBA отличается от других языков программирования тем, что предоставляет возможность непосредственно работать со всеми объектами MS Office. Он имеет графическую инструментальную среду, позволяющую создать экранные формы и управляющие элементы.

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

Все элементы Excel – объекты, с которыми приходится работать в программе. Чаще всего используются такие объекты, как рабочие книги WorkBooks, рабочие листы WorkSheets, диапазоны Range. Объект WorkSheets имеет свойство Name, только объект Range не имеет ярко выраженной коллекции. Выступает как коллекция и как объект. Чаще исп. В программном коде, обладает огромными возможностями.

2. Объектная модель Excel: понятие объекта, метода, свойства, события.

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

Все элементы Excel – объекты, с которыми приходится работать в программе. Чаще всего используются такие объекты, как рабочие книги WorkBooks, рабочие листы WorkSheets, диапазоны ячеек Range ckarts.

Свойства определяют внешний вид и состояние объекта. Для определения свойства его нужно указать справа от имени объекта через точку. Range(“A1”).Value – свойство описывает содержимое ячейки А1. Существует 2 вида опереций при работе со свойствами: 1)присваивание свойству значения. Объект.Свойство=<значение>

Range(“A1”).Value= «Отчет о командировке». 2)полученное свойство присваивается переменной. Переменная=Объект.Свойство

Var= Range(“A1”).Value

Методы объекта открывают задачи, которые может выполнять объект. Объект.Метод – когда у метода нет параметров. Range(“A1”).CleanContenst – очищает диапазон, но сохраняет форматирование. Если метод имеет аргументы, то они перечисляются через , после названия метода.

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

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

3. редактор VB. Окно проекта. Окно редактирования кода. Окно редактирования формы. Панель элементов. Окно свойств. Окно просмотра объектов. Окна Immediate, Watch. Редактор VB=Visual Basic Editor. Редактора VBA не бывает! Для запуска этого редактора нужно открыть приложение Excel и выполнить команду Сервис/Макрос/Редактор VB или Alt+F11. Чтобы вернуться в Excel, нужно повторно нажать Alt+F11. В открывшемся окне VBA: строка заголовка, меню, панели инструментов и несколько окон.

По умолчанию в верхнем левом углу находится окно проекта. Вывести его можно командой View/Project Explorer. Это окно содержит список всех открытых проектов и список всех их компонентов. В проекте всегда располагаются 3 модуля(на каждом листе) и модуль книги. Все модули делятся на: 1) стандартные – добавляются к проекту Insert/Module. Они содержат макросы, функции и процедуры. 2) модули объектов – модули, связанные с рабочими книгами, раблчими листами и формами. Проект VBA состоит из объектов, имеющих иерархическую структуру, и включает: объекты Excel, формы, стандартные модули и модули классов. Окно редактирования кода. В окне проекта выделяете объект, для которого будет введен программный код. Затем выполнить команду View/Code. Откроется окно, в которое нужно ввести программный код. Окно редактирования формы. Для вывода формы: Insert/User Form. На экране появится форма. Окно свойств. Для открытия: View/Properties Window. В левой части окна перечислены свойства объекта, в правой – значения свойств, которые можно изменять. Окно просмотра объектов. View/Object Browser или F2. В верхнем левом углу открывшегося окна – список библиотек объектной модели Excel. Оно дает спраку о всех объектах Excel, их свойствах и методах.

Панель элементов (View/Dwbug) в стандартном варианте включает различные классы управляющих элементов: CommandButton (командная кнопка), TextBox, Label и др. Существует возможность дополнить панель с помощью команды Tools/Additional Controls.

Окно Immediate – один из инструментов отладки. Предназначено для непосредственного ввода команд. Окно Watch – порядок выполнения программы и отслеживание ошибок.

4. Создание простой программы на примере приложения «Информация о продажах по регионам». Задача: создать программу, которая будет отслеживать продажи в каждом регионе. Для каждого региона отразить сообщение с количеством месяцев, когда продажи превышали заданный объем, введенный пользователем. Порядок выполнения: открыть Excel и на первом листе создать список следующего вида:

А

В

С

G

месяц

Регион1

Регион2

Регион3

Янв2005

….

Дек2006

Отформатировать столбцы(1 – дата, остальные – формат денежный). Заполнить список. Затем выделить диапазон ячеек B2:G25 и присвоить ему имя SalesRange. Перейти в редактор вба: Alt+F11 или Сервис/Макрос/Редактор Вб. Если окна нет, выполнить команду View/Project Explorer. Далее выполнить Insort/Module, откроется окно редактора. Ввести следующий программный код:

Sub CountHighSales()

Dim i As Integer, j As Integer, ks As Integer, s As Currency

s = InputBox("Введите цену для сравнения", "окно для ввода критерия")

For i = 1 To 6

ks = 0

For j = 1 To 24

If Range("SalesRange").Cells(j, i) >= s Then

ks = ks + 1

End If

Next j

MsgBox "в регионе " & i & " объем продаж превышал " & s & " в " & ks & " месяцах"

Next i

End Sub

Запустить программу на выполнение: F5 или Run/Run Sub. На экране появится окно InputBox. Запуск программы с помощью кнопки, расположенной на рабочем листе. Находясь на рабочем листе, выполнить команду Вид/Панели инструментов/Формы. В появившемся окне выбрать элемент Кнопка и нарисовать на рабочий лист. Откроется окно, в котором предлагается создать макрос, выбрать название CountHighSales и закрыть. Дать свое название кнопке. Для запуска программы щелкнуть на этой кнопке.

Создать программу можно и другим способом, начиная с размещения кнопки. Появляется окно «Назначить макрос объекту». Нажать на кнопку Создать. Запустится редактор VBE и откроется окно редактирования кода макроса. Ввести программный код.

5. Стандартные элементы управления VB: понятия, свойства, методы, события общие для этих элементов. Краткая характеристика элементов управления. Элементы управления - это объекты, которые можно разместить на форме. Как и все объекты, они имеют свойства, методы и события. Свойства определяют внешний вид и поведение. Изменять свойства можно как во время проектирования (через окно свойств), так и в программном коде. Общие свойства: name – имя, которое используется для ссылок на элементы управления в программном коде. Left, Top – левый верхний угол элемента. Width, height – ширина, высота элемента. Visible – будет ли виден на экране. Методы: Move – перемещение элемента на форме. Drag – перетаскивание. События: Set Focus, click, dblclick. Элемент управления Командная кнопка (CommandButton). Свойства: Caption - текст на кнопке Picture- определяет рисунок на кнопке. Picture Position - определяет позицию рисунка на кнопке. Событие: Click - возникает при нажатии пользователем кнопки Мышью, DblClick- двойной щелчок, когда возникает нажатие. Элемент управления счетчик SpinButton - позволяет уменьшать или увеличивать числовое значение в результате щелчка стрелки. Элемент управления полоса прокрутки ScrollBar. Позволяет выбрать значение из заданного диапазона с помощью мыли. Щелчком мыши на концах полосы прокрутки или на самой полосе путем перетаскивания бегунка. Важнейшие свойства SpinButton и ScrollBar: max- максимальное значение, выдаваемое полосой прокрутки или счетчиком (всегда положителен) min- минимальное значение выдаваемое этими элементами. CmalChange- отрицательное или положительное целое число равное шагу изменения значения этих элементов в тот момент, когдыапроизводится щелчок. событие Change происходит при смене значений этих элементов. С помощью свойства Value в некоторой переменной можно запомнить текущее значение этого счетчика. Элемент управления рамка (Frame) Она является контейнером и служит для объединения других элементов в группу. После чего помещенными в нее объектами можно управлять как единым целым (либо переключатели, либо флажки обычно в нее помещаются) Свойства: Caption- задает текст, который выводится в левом верхнем углу рамки; Appearance- 2 значения: 0- Flat (простая рамка), 1- 3D объемная. Элемент управления текстовое поле. Он обеспечивает возможность ввода текста пользователем во время работы приложения или отображение информации, задаваемой свойством Text. Свойства: text- текстовое поле, характеризуется еще свойствами, позволяющими использовать этот элемент при создании полей, предназначенных для ввода пароля. PasswordChar задает символ отображаемый в поле вместо возможных символов. Maxlength- максимальное количество символов, вводимых в поле. Элемент управления Метка (надпись) он используется в форме для размещения статичного текста. Свойства: Caption- текст который размещается на этом элементе, размер не более 1024 байт. Font- внешний вид шрифта.

6. Типы подпрограмм и их определения: определение и виды процедур. Примеры процедур разных видов. Логические фрагменты кода, которые выполняют определенную задачу, называются подпрограммами. В вба подпрограммами называют макросы, процедуры и даже функции.

Можно создать основную процедуру и вызвать из нее остальные процедуры. В этом случае набор совместно работающих процедур наз. приложением. Существуют следующие виды процедур: 1)обработки событий 2) макросов 3) пользователей. Процедура обработки события всегда связана с каким-либо объектом.

Private Sub ИмяОбъекта_Событие()

<тело процедуры обрабатываемого события>

End Sub

Пример: Private Sub CommandButton_Click()

Ипотека.Show

End Sub

Процедура обработки макроса имеет следующий синтаксис:

Sub ИмяМакроса ()

<Тело макроса>

End Sub

Для вызова макроса из главной процедуры используется оператор Call ИмяМакроса. При условии, что все процедуры, в том числе и главная, расположены в одном модуле.

Пример:

Sub MainProcedure()

Call GetProblemSize

Call Initialize

Exit Sub

End Sub

Sub GetProblemSize()

Ncities = Range("DistMatrix").Rows.Count

ReDim Visited(Ncities)

ReDim Route(Ncities + 1)

End Sub

Sub Initialize()

Dim I As Integer

Route(1) = 1

Route(Ncities + 1) = 1

Visited(1) = True

For I = 2 To Ncities

Visited(I) = False

Next

TotDist = 0

End Sub

Синтаксис процедуры пользователя:

[Private/Public] Sub ИмяПроцедуры (Параметры)

<Тело процедуры>

End Sub

Элементы списка параметров имеют следующий вид: ИмяЭлемента As ТипДанных

7. Типы подпрограмм и их определения: определение и виды процедур. Примеры процедур разных видов. Логические фрагменты кода, которые выполняют определенную задачу, называются подпрограммами. В вба подпрограммами называют макросы, процедуры и даже функции. Функция – это подпрограмма, которая действует в пределах своего блока и возвращает только одно значение. Функции: 1)ф. пользователя 2) ф. модулей классов. Функция имеет следующий синтаксис:

[Private/Public] Function Имя функции(список параметров) As ТипДанных

<тело функции>

End Function

Тип данных для функции предназначен для определения типа и возвращения функцией зн-я

Чтобы создать функцию пользователя, надо: 1. если нет модуля Insert/Module 2. Insert/Procedure 3. в открывшемся окне выбрать переключатель “Function”, в поле Name ввести имя функции («Доход») 4. в этом же окне установить переключатель «общие», чтобы был тип – Public 5. Ок. Откроется окно редактора. Ввести параметры функции и код.

Option explicit

Option Base 1

Function Doxod (procent as double, platezh as variant, god as variant) as double

Dim i, j, n as integer, s as double

n=platezh.rows.count

s=0

for i=1 to n

s=s+platezh(i)/(1+procent)^((god(i)-god(1))/365)

next i

doxod=s

end fuction

Не закрывая окна View/Object Browser. Откроется окно просмотра объектов. В левом верхнем углу выбрать VBAProject и в окне Классы отобрать элементы текущего проекта. Выбрать модуль, в котором ваша функция. Затем в окне Компоненты отобрать все элементы, в том числе и функцию Доход. Щелкнуть правой кнопкой мыши на Доход и выбрать значение Свойства. Откроется окно «Параметры компонента», в нем ввести описание(назначение) функции. Закрыть окно и после этого ваша функция попадет в библиотеку стандартных функций Excel.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]