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

KITpdf

.pdf
Скачиваний:
24
Добавлен:
29.02.2016
Размер:
938.45 Кб
Скачать

метод

класс

свойство

событие

объектная модель

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

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

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

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

.объекта может принимать определенное значение. Например, свойство Вывод на экран (Visible) может принимать значение True или False, в зависимости от чего форма будет появляться или исчезать с экрана.

Метод представляет собой процедуру (или функцию) объекта или класса. Совокупность методов объекта определяет его "поведение". Например, объект Form имеет метод Refresh, вызов которого позволяет обновить данные в форме Access.

Объект может реагировать на определенные события, происходящие в процессе работы приложения и влияющие на объект. Совокупность событий, на которые объект способен реагировать, определяется создателем класса, экземпляром которого является данный объект. Например, набор событий, которые определены для формы Access, мы видим на вкладке События (Event) диалогового окна Свойства (Properties). Реакцией объекта на произошедшее событие может быть выполнение объектом некоторой специальной процедуры, которая называется процедурой обработки события. Любому событию объекта может быть назначена некоторая процедура его обработки.

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

Объекты и семейства сгруппированы в виде иерархических структур, которые называются объектными моделями. В VBA определены специальные объектные модели для каждого компонента семейства Microsoft Office и объектные модели, общие для всех компонентов Microsoft Office. Объектные модели VBA можно изучать, используя справочную систему и окно просмотра объектов. Окно просмотра объектов представляет собой специальное средство редактора Visual Basic, позволяющее

просматривать содержимое библиотек объектов и производить поиск справочной информации

Типы данных. Переменные: описание, допустимые имена, область определения переменной, время жизни. Константы.

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

Типданных

 

Диапазон

 

 

 

Byte (целый без

От0 до255

 

 

Boolean

 

 

True илиFalse

 

 

Integer (целый)

 

от32768 до32767

 

 

Long

(длинный

от2147483648 до2147483647

 

 

 

 

 

 

Single

(число

с

От - 3.402823Е +38 до - 1.401298Е-48 и от

плавающей

запятой

1.401298Е-45 до3.402823Е+38

 

 

обычной точности)

 

 

 

 

 

Double

(число

с

От

-1,79769313486232Е308

до

-

плавающей

запятой

4,94065645841247Е-324 для отрицательных значений;

двойной точности)

и

от 4 94065645841247Е-324 до 1 79769313486232Е308

Date

(дата

от01. 01. 100 до31. 12.9999

 

 

String (строка)

 

от0 до65535 символов

 

 

Variant

 

 

Любойвстроенныйтипданных

 

 

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

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

Объявляя переменную, можно указать ее тип, указывая тем самым Visual Basic, какой тип данных должен быть использован при записи переменной в память. Если тип не указан - по умолчанию используется тип Variant, который дает возможность хранить в нем практически любую величину. Константы, в отличие от переменных, не могут изменять свои значения. Использование констант делает программы легче читаемыми и позволяет проще вносить исправления — отпадает необходимость многократно исправлять значения по тексту программы, т. к. достаточно ввести новое значение при

определении константы.

 

Пример.

 

Dim A As Integer

ПеременнаяАобъявляетсякакцелочисленная

Dim Фамилия As

Переменная Фамилия объявляется как строка

String

символов

Const ПроцентнаяСтавка As Single =0.2 Const g=9.8

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

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

Операции VBA: математические, отношения, логические. Приоритеты операций.

Над переменными и константами могут выполняться операции. В таблице представлены математические операции VBA.

Выражен

Операция

 

Пример

 

 

ие

 

 

А

B

Резуль

 

 

 

 

 

тат

A+B

Сложение

 

5

2.75

7,75

А – В

Вычитание

 

5

2,75

2,15

А * В

Умножение

 

2

6

12

А/В

Деление

 

7

2

3.5

A \ В

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

 

7

2

3

 

деление

 

 

 

 

A mod В

Остаток

от

7

2

1

 

деления по модулю

 

 

 

 

A^B

Возведение

в

2

3

8

 

степень

 

 

 

 

Старшинство операций (в порядке убывания приоритета):

Öоперации в скобках;

Öвычисление функции;

Ö^ ;

Öсмена знака;

Ö*, /, \, mod;

Ö+, -

Ö= , >,<,>=,<=,<>,

ÖNot,

ÖAnd,

ÖOr,

ÖXor.

Логические выражения в результате вычисления принимают логические значения True (Истина) или False (Ложь). Операндами логического выражения могут быть логические константы, переменные логического типа, отношения. В VBA чаще используют 4 логические операции: отрицание — NOT, логическое умножение — AND, логическое сложение — OR, исключающее “или” — XOR. Результаты логических операций для различных значений операндов приведены в таблице. Использованы обозначения: Т — True, F — False.

А

В

not A

A and В

А оr В

А хоr В

Т

Т

F

Т

Т

F

Т

F

F

F

Т

Т

F

F

Т

F

F

F

F

Т

Т

F

Т

Т

Организация ввода-вывода. Встроенные диалоговые окна: окно ввода InputBox и окно вывода MsgBox

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

Для ввода данных с листа или вывода на лист используется объект Worksheets и его методы Range или Cells.

Метод Range использует в качестве аргументов одну или две ссылки на ячейки и возвращают объект Range. Ссылки на ячейки должны быть оформлены в стиле А1 (колонка-буква-строка-число). Ссылка на единичную ячейку, использованная в качестве аргумента, возвращает объект Range для единичной ячейки. Две ссылки на единичные ячейки возвращают объект Range для прямоугольной области, заключенной междуэтимидвумяячейками:

Функци

Выводит на экран диалоговое окно, содержащее сообщение,

яполе ввода и две кнопки OK и Cancel. Устанавливает режим

InputBo ожидания ввода текста пользователем или нажатия кнопки, а

xзатем возвращает значение типа string по нажатию кнопки OK, содержащее текст, введенный в поле. При нажатии кнопки Cancel возвращает пустую строку.

Синтаксис:

InputBox(prompt[, title] [, default])

prompt — строковое выражение, отображаемое как сообщение в диалоговом окне. Строковое значение prompt может содержать несколько строк. Для разделения строк допускается использование символа возврата каретки (chr (13)), символа перевода строки (chr(10)) или комбинацию этих символов (chr( 13)

&Chr (10));

title — строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот аргумент опущен, в строку заголовка помещается имя приложения;

default — строковое выражение, отображаемое в поле ввода как используемое по умолчанию, если пользователь не введет другую строку. Если этот аргумент опущен, поле ввода изображается пустым.

Пример.

Имя =InputBox(“Введите Ваше имя”, “Пример окна ввода”) На экране появится окно.

Рисунок – Пример окна ввода

Переменной Имя будет присвоено значение типа String, введенное пользователем.

Проце

Выводит на экран диалоговое окно, содержащее сообщение,

дура

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

MsgB

затем возвращает значение типа integer, указывающее, какая кнопка

ox

была нажата. Синтаксис:

 

MsgBox(prompt[, buttons] [, title])

 

Аргументы:

 

prompt — строковое выражение, отображаемое как сообщение

 

в диалоговом окне;

 

buttons — числовое выражение, представляющее сумму

 

значений, которые указывают число и тип отображаемых кнопок,

 

тип используемого значка, основную кнопку и модальность окна

 

сообщения. Значение по умолчанию этого аргумента равняется 0.

 

title — строковое выражение, отображаемое в строке заголовка

 

диалогового окна. Если этот аргумент опущен, в строку заголовка

 

помещается имя приложения

Часто процедура MsgBox используется в «минимальном» варианте - только для вывода сообщения, с одной кнопкой – OK. В этом случае аргументы не берутся в скобки. Например:

MsgBox “Значение переменной Х=” & X

Рисунок– Пример окна сообщений

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

Стандартные математические функции VBA представлены в таблице.

Обращение

Функция

Abs(х)

Модуль аргумента

Atn(x)

Арктангенс (радианы)

Соs (x)

Косинус (x в радианах)

Eхр(х)

ex — экспонента

Int(x)

Целая часть х, полученная отбрасыванием дробной части

Fix(x)

Число, округленное до ближайшего меньшего целого

Log(x)

Натуральный логарифм

Sin(x)

Синус (х—в радианах)

Sqr(x)

Корень квадратный

Tan(x)

Тангенс числа

Функции проверки типа позволяют узнать, является ли переменная выражением определенного типа

Функция

Проверка

IsNumeric(х)

Является ли переменная числовым значением

IsNull(х)

Является ли переменная пустым значением (Null)

IsError(х)

Является ли переменная кодом ошибки

Функции преобразования форматов выполняют преобразование переменной некоторого типа в заданный тип (таблица 6). Чаще всего выполняется преобразование из строки символов в число и числа в его строковое представление.

Функция

Назначение

Val (строка)

Возвращает числа, содержащиеся в строке, как числовое

 

значение соответствующего типа

Str(число)

Возвращает значение типа variant (String), являющееся

 

строковым представлением числа

В качестве допустимого разделителя функция Str воспринимает только точку. При наличии другого десятичного разделителя следует использовать функцию CStr. Остальные функции преобразования из данного типа в указанный приведены в таблице

Функция

Тип, в который преобразуется выражение

CBool

Boolean

CByte

Byte

CDate

Date

CDbl

Double

CInt

Integer

CLng

Long

CSng

Single

CStr

String

Инструкции VBA. Оператор присваивания VBA (линейный оператор), особенности синтаксиса. Перенос строки. Комментарии. Расположение нескольких операторов на одной строке.

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

Синтаксис: <переменная> =<выражение>

Порядок выполнения: вычисляется значение <выражения> и присваивается полученное значение <переменной> (вычисляется значение выражения, стоящего справа от знака присваивания, и присваивается переменной, стоящей слева от знака присваивания).

Расположение символов (пробел) + (Знак подчеркивания) в конце строки обеспечивает то, что последующая строка является продолжением предыдущей. При этом надо помнить, что:

Нельзя разбивать переносом строковые константы

Допустимо не более семи продолжений одной и той же строки

Сама строка не может состоять более, чем из 1024 символов

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

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

Временно отключают фрагменты программы при ее отладке. В языке VBA существуют два способа ввода комментариев:

Применение апострофа (')• Его можно ставить в любом месте строки. При этом все символы, начиная от апострофа до конца строки, будут восприниматься компилятором как комментарий.

Применение зарезервированного слова Rem вместо апострофа.

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

1.х = х + 1

и

2.х = х + 1:у = х + 2 у = х + 2

Отладка программ.

Ошибки выводят программу в режим отладки. В этот момент можно что-то исправить и продолжить выполнение программы.

Если запущенная процедура проработала без ошибок, это еще не значит, что она работает правильно. Отладка программы заключается не только в устранении явных ошибок, но и поиск таких ошибок, которые могут возникнуть при определенных обстоятельствах. Для этого можно использовать пошаговый режим отладки, который запускается нажатием клавиши F8. При этом надо точно знать, что при вводе какого-то конкретного значения ваша программа должна пойти именно по такому пути. Если этого не происходит, можно, подводя мышку к переменным, подсмотреть их текущие значения.

Если пошаговый режим не уместен по некоторым причинам, можно использовать точку останова. Установить точку останова можно на любом исполняемом операторе программы. Сначала надо «прикинуть», в каких местах возможно появление ошибки, и затем добавить точки останова вблизи нужного участка программы.

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

При возникновении ошибки, во время работы программы, выводится диалоговое окно с пояснением.

Ваши действия:

1.Нажать на кнопку “Debug” для исправления ошибки или “End” для остановки выполнения программы;

2.Желтым цветом выделяется та строка, в которой допущена ошибка;

3.Исправить ошибку и выполнить команду Run-Continue или нажать на кнопку для продолжения выполнения программы

Оператор условия VBA, особенности синтаксиса. Однострочная и блочная форма

Условный оператор позволяет выбирать и выполнять действия в зависимости от истинности некоторого условия.

Синтаксис условный оператор имеет два варианта синтаксиса: a) однострочная форма записи условного оператора:

If <условие> Then [<операторы 1>] [Else [<операторы 2>]];

б) блочная форма записи условного оператора:

If <условие 1> Then [<операторы 1>]

. . .

[ElseIf <условие n> Then

[<операторы n> ]… [Else]

[<ИначеОператоры>]]

End If.

Порядок выполнения: вычисляется значение <условие>. Оно может принимать значения TRUE (Истина) или FALSE (Ложь). Если <условие> принимает значение TRUE, то выполняются [<операторы 1>] (операторы ветки Then), в противном случае - [<операторы 2>] (операторы ветки Else).

. Операторы цикла VBA, особенности синтаксиса.

Оператор цикла For позволяет повторять группу операторов заданное число раз. Синтаксис: For <счётчик_цикла> =<начало> To <конец> [Step <шаг>]

<тело цикла> [Exit For]

. . .

Next [<счётчик_цикла>],

где <счётчик_цикла> — числовая переменная; <начало> - начальное значение (выражение) переменной <счётчик_цикла>;

<конец> - заключительное значение (выражение) переменной <счётчик_цикла>; <тело цикла> - это последовательность операторов, которая будет выполнена

заданное число раз.

Порядок выполнения: переменной <счётчик_цикла> присваивается значение <начало> и проверяется условие: <начало> <конец>; если условие неверно, то <тело цикла> не выполняется и управление передается на оператор, следующий за Next. Если же условие выполняется, то выполняется <тело цикла>, затем значение <счётчик_цикла> изменяется на значение <шаг> (увеличится в случае

положительного значения <шаг>, и уменьшается при отрицательном значении <шаг>). Данный процесс будет выполняться, пока значение <счётчик_цикла> не достигнет значения <конец> (если шаг положителен, цикл завершится, когда впервые выполнится условие: <счетчик_цикла> <конец>. Если шаг цикла отрицателен, условие его завершения: <счетчик_цикла> <конец> ). Досрочно завершить цикл For…Next можно и с помощью оператора Exit For. Такие операторы могут быть расположены в тех местах тела цикла, где требуется из него выйти, не дожидаясь выполнения условия завершения.

Массивы. Объявление массивов. Многомерные массивы. Способы обращения к элементам массивов, ввод/вывод массивов, функции работы с массивами.

Массив – совокупность однотипных элементов данных (чисел, логических данных, символов), которой при обработке присвоено определенное имя. Массивы бывают статические и динамические. Статическими называются массивы, количество элементов в которых заранее известно и не изменяется в ходе выполнения программы. Динамические массивы – массивы, в которых либо не известно начальное количество элементов, либо размерность массива (количество элементов) изменяется при выполнении программы.

Описание массивов:

1) одномерный статический массив

Dim <имя массива> ( <начальное значение индекса> To <конечное значение индекса>) [As <тип элементов массива>]

или

Dim <имя массива> ( <количество элементов массива>) [As <тип элементов массива>];

2) двумерный статический массив

Dim <имя массива> ( <начальное значение индекса по строкам> To <конечное значение индекса по строкам >, < начальное значение индекса по столбцам> To < конечное значение индекса по столбцам>) [As <тип элементов массива>]

или

Dim <имя массива> ( <количество строк>, <количество столбцов>) [As <тип элементов массива>].

Первый способ отличается от второго тем, что в первом случае указывается индекс первого и последнего элементов, во втором же – только количество элементов, нумерация которых может начинаться как с 0, так и с 1. Это зависит от опции Base (задает базовый индекс). Если опция не указана, то нумерация элементов массива начинается с нуля. Для изменения базового индекса в начале листа модуля необходимо написать Option Base 1.

Пример:

а) Dim А(1 To 10) As Integer – массив А состоит из 10 элементов целого типа, индексы которых 1, 2, …, 10;

б) Dim А(10) As Integer – массив состоит из 10 значений целого типа. Индексация зависит от опции Base. Если опция не указана, то номера элементов - от 0 до 9, если же указана (т.е. вначале модуля записано Option Base 1), то номера элементов изменяются от 1 до 10;

3) динамический массив:

Dim <имя массива> ( ) [As <тип элементов массива>].

После определения количества элементов массива выполняется его переопределение:

ReDim <имя массива> (<задается размерность массива (одномерного/двумерного

>).

Пример:

Dim А( ) As Single–динамический массив А вещественных элементов n=7

ReDim A(1 To n) – переопределение одномерного массива из n значений

ReDim A(5,n) – переопределение двумерного динамического массива, состоящего из 5 сток и n столбцов (начало индексации элементов определяется по опции Base)

Обращение к элементу массива осуществляется следующим образом: указывается имя массива, а затем в круглых скобках указывается номер элемента в массиве. Если массив двумерный – указывается вначале номер строки, затем через запятую номер столбца.

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