Слайд 2
VBA - Visual Basic for Applications
это объектно-ориентированный
язык программирования
Слайд 3
Основные понятия
объект
семейство
метод
класс
свойство
событие
объектная
модель
Слайд 4
Объектные модели Microsoft Office 2002
библиотека объектов Microsoft
Access (Microsoft Access 10.0 Object Library);
библиотека объектов доступа
к данным (Microsoft DAO 3.6 Object Library);
библиотека объектов ActiveX (Microsoft ActiveX Data Objects 2.6);
расширения ADO для поддержки DDL и защиты информации (Microsoft ADO Extensions 2.6 for DDL and Security);
библиотека объектов Microsoft Jet и репликации (Microsoft Jet and Replication Objects 2.6).
Кроме этого, в приложениях Access обычно используются:
библиотека объектов Visual Basic (Microsoft Visual Basic for Applications);
библиотека объектов Microsoft Office (Microsoft Office 10.0 Object Library). Две эти библиотеки являются общими для всех приложений Microsoft Office.
Слайд 5
Процедуры VBA
Sub (, , ... )
End Sub
Слайд 6
Функции VBA
Function (, , ... )
=
End Function
Слайд 7
Примеры вызова процедуры под именем CrossRC с передачей
ей двух аргументов (константы и выражения):
CrossRC 7, i
+ 2
ИЛИ
Call CrossRC(7, i + 2)
Пример вызова двух функций — Left и Mid, и использования возвращаемого ими значения в выражении:
yStr = Left(y, 1) & Mid(у, 2, 1)
Слайд 8
Допускается два различных способа передачи переменных процедуре или
функции: по ссылке и по значению.
Слайд 9
Пример:
Sub Main()
а = 10
b = 20
с = 30
Call Examplel(a, b, с)
Call MsgBox(a)
Call MsgBox(b)
Call MsgBox(c)
End Sub
Sub Example1(x, ByVal y, ByRef z)
x = x + 1
у = у + 1
z = z + 1
Call MsgBox(x)
Call MsgBox(y)
Call MsgBox(z)
End Sub
Слайд 10
Программа может состоять (и обычно состоит)
из многих процедур и функций, которые могут располагаться в
одном или нескольких модулях. Модули группируются в проекты, при этом в одном проекте могут мирно сосуществовать несколько различных программ, использующих общие модули или процедуры.
Каждая из процедур, находящихся в одном модуле, должна иметь уникальное имя, однако в проекте может содержаться несколько различных модулей.
Слайд 11
Если в проекте содержится несколько различных процедур с
одним и тем же именем, необходимо для уточнения имени
использовать при вызове процедуры следующий синтаксис:
<имяМодуля>.<имяПроцедуры>
Если при этом имя модуля состоит из нескольких слов, следует заключить это имя в квадратные скобки. Например, если модуль называется "Графические процедуры", а процедура — "Крестик", вызов может выглядеть следующим образом:
[Графические процедуры].Крестик
Допускается также использование процедур, расположенных и в других проектах. При этом может потребоваться еще один уровень уточнения имени:
<имяПроекта>.<имяМодуля>.<имяПроцедуры>
Слайд 12
Переменные, константы и типы данных
Объявление переменных
Dim
[Аs]
Пример:
Dim i As Integer, j As Integer
Dim
x As Double
Слайд 13
Типы данных
Array Массив переменных, для ссылки на конкретный
элемент массива используется индекс.
Boolean Требуемая память: зависит от
размеров массива Принимает одно из двух логических значений: True или False. Требуемая память: 2 байта Byte Число без знака от 0 до 255 Требуемая память: 1 байт
Currency Используется для произведения денежных вычислений с фиксированным количеством знаков после десятичной запятой, в тех случаях, когда важно избежать возможных ошибок округления.
Диапазон возможных значений: от -922 337 203 685 477,5808 до 922 337 203 685 477,5807. Требуемая память: 8 байтов. Символ определения типа по умолчанию: @
Date Используется для хранения дат. Диапазон возможных значений: от 1 января 0100 г. до 31 декабря 9999 г. Требуемая память: 8 байтов
Double Числовые значения с плавающей точкой двойной точности.
Диапазон возможных значений для отрицательных чисел: от -1 ,797693 13486232Е308 до -4,94065645841 247Е-324.
Диапазон возможных значений для положительных чисел: от 4,94065645841 247Е-324 до 1, 7976931 3486232Е308.
Требуемая память: 8 байтов. Символ определения типа по умолчанию: #
Слайд 14
Типы данных
Integer Короткие целые числовые значения. Диапазон возможных
значений: от -32 768 до 32 767. Требуемая память:
2 байта. Символ определения типа по умолчанию: %
Long Длинные целые числовые значения.
Диапазон возможных значений: от -2 147 483 648 до 2 147 483 647.
Требуемая память: 4 байта. Символ определения типа по умолчанию: &
Object Используется только для хранения ссылок на объекты. Требуемая память: 4 байта
Single Числовые значения с плавающей точкой обычной точности.
Диапазон возможных значений для отрицательных чисел: от -3.402823Е38 до -1 ,401 298Е-45.
Диапазон возможных значений для положительных чисел: от 1 ,401 298Е-45 до 3.402823Е38.
Требуемая память: 4 байта. Символ определения типа по умолчанию: !
Слайд 15
Типы данных
String
Используется для хранения строковых значений. Длина
строки: от 0 до 64 Кбайтов. Требуемая память: 1
байт на символ. Символ определения типа по умолчанию: $
Variant
Может использоваться для хранения различных типов данных: даты/времени, чисел с плавающей точкой, целых чисел, строк, объектов.
Требуемая память: 16 байтов, плюс 1 байт на каждый символ строковых значений.
Символ определения типа по умолчанию: отсутствует
Слайд 16
Для определения типа данных аргументов процедуры или функции
используется описание типа данных непосредственно в заглавной строке процедуры
или функции. Например:
Sub SplitStr(str1 As String,
str2 As String, str3 As String)
Определение типа данных возвращаемого функцией значения завершает заглавную строку функции, например:
Function FindSplitSpace
(strl As String) As Integer
Слайд 17
Константы
Const
[As ] =
где
— эго любое значение или формула, возвращающая значение, которое
должно использоваться в качестве константы.
Например, следующий оператор определяет целую константу maxLen:
Const maxLen% = 30
Слайд 18
Предопределенные константы
Встроенные константы, относящиеся к объектам Access,
начинаются с префикса ас, относящиеся к объектам Excel —
с префикса xl, относящиеся к объектам Word — с префикса wd, а относящиеся к объектам VBA — с префикса vb.
Например, в команде
DoCmd.OpenForm "Orders",
acNormal, , stLinkCriteria
используется встроенная константа Access acNormal.
Слайд 19
Ссылки на объекты
Dim As Object
Set
=
Пример:
Dim MyBase As Database
Set MyBase =
CurrentDb( )
Слайд 20
Массивы
Dim (, , ...) As
где
, и т.д. задают размеры массива — количество
индексов и максимально допустимое значение для каждого. конкретного индекса. При этом индексирование элементов массива по умолчанию начинается с нуля.
Пример:
Dim Array1 (9) As Integer
Dim Array2 (4, 9) As Variant
Слайд 21
При объявлении массива можно указать не только верхнюю
границу индекса, но и его нижнюю границу.
Dim (
То <макс1>, ...)
As <типДанных>
Например:
Dim Temperature (-14 То 0)
As Single
Синтаксис объявления и определения размеров динамического массива:
Dim <имяМассива> ( ) As <типДанных>
ReDim <имяМассива> (<размер1>,<размер2>,... )
Слайд 22
Область действия переменных и процедур
уровень процедуры;
уровень
модуля;
уровень проекта.