Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курс_лекций_Прикладное_Прогр_П+И_2012.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.33 Mб
Скачать

Лекция №1.

Тема: Основные элементы и операторы языка visual basic for application.

Цель работы: ознакомление с типами данных, операторами и конструкциями языка.

Теоретическая часть.

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

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

  • Boolean – принимает значения TRUE или FALSE;

  • Byte (1 байт)– целое число без знака, диапазон возможных значений 0..255;

  • Currency (8 байт)– используется для денежных расчетов (8 байт);

  • Date(8 байт) – используется для значений дат и времени от 1 января 100 года до 31 декабря 9999 года;

  • Double (8 байт)– вещественные числа двойной точности;

  • Integer (2 байта)– целые числа;

  • Object (4 байта) – используется для ссылки на объект;

  • String – строки символов (1 байт на каждый символ);

  • Variant – для любых типов данных (16 байт + по 1 байту на каждый символ, если значение содержит строку).

Для описания переменных используется конструкция Dim .. as, например:

Dim Var1 As Integer

Var1 = 5

Range(“A1”).Value=Var1

Для описания объектных переменных

Dim Range1 As Object

Set Range1 = Worksheets(1).Range(“A1”)

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

Dim Range1 as Range

Set Range1 = Worksheets(1).Range(“A1”)

В VBA имеется возможность «необязательного описания переменных». Если оператор Dim опущен, то VBA описывает переменные самостоятельно, как переменную типа Variant. При конкретном описании типа объектной переменной подпрограммы выполняются быстрее, т.к. VBA не нужно тратить дополнительного времени на определение типа объектной переменной. Для больших и сложных приложений разница во времени становится существенной.

Конечно, отсутствие оператора Dim сокращает текст программы, но использование описания по умолчанию имеет три недостатка:

  1. Данные типа Variant занимают больше памяти, чем другие типы;

  2. Тип Variant при выполнении оператора присваивания приводится в соответствие с типом присваиваемого значения. Это тоже замедляет программу, особенно при выполнении циклов;

  3. Использование типа Variant не дает уверенности в типе используемого значения, поэтому иногда приходится вставлять в текст программу проверку того, содержит ли данная переменная значения нужного типа.

Если переменная используется в разных частях проекта, то ее описывают на уровне проекта:

Public Var1 As String

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

Static Var1 As String

Массивы это индексированная группа значений одного типа. Описание массивов имеет вид:

Dim NumberArray(10) As Integer – описание одномерного массива

Dim TableArray(10,10) As String – описание двумерного массива.

Нижняя граница массивов в аналогичных описаниях - это 1. Если массив описывается типом Variant, то элементы массива могут иметь разный тип данных. Например, опишем двумерный массив для хранения фамилии, возраста и даты рождения 10 человек:

Dim Mas(10,3) as Variant

Mas(1,1) = “Петров

Mas(1,2) = 20

Mas(1,3) = #3/06/1982#

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

Dim Data() As Variant

ReDim Data(2) – массив переопределен, как одномерный массив из 2-х элементов

ReDim Data(4,2) – массив переопределен, как двумерный.

Функция Array позволяет задавать массив без предварительного его описания:

Data=Array(“Петров”, 20, #3/06/82#)

Для определения верхней и нижней границы массива используют функции LBound и Ubound. Например, чтобы вывести нижнюю границу массива можно написать:

Dim Data(4,2)

MsgBox Lbound(Data)

Константы – это элементы, не меняющие свое значение во время выполнения подпрограммы. Чтобы описать константу:

Сonst m as integer = 1

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

Операторы управления.

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