VBA не требует явного описания переменных перед их использованием. Переменные, которые сразу используются в программе без предварительного описания, называются неявно описанными. Неявно описанным переменным присваивается тип данных Variant. Однако рекомендуется явно описывать все переменные, так как это способствует увеличению скорости выполнения программы и упрощает ее отладку. Для описания переменных в VBA используются операторы Dim, Public, Private и Static.
Синтаксис:
Dim | Public | Private | Static имя_переменной _
[([ индексы ])][As тип ] [. ]
Параметр имя_переменной – имя описываемой переменной. Необязательные скобки и параметр индексы используются для описания массивов. Дополнительный параметр As тип позволяет назначить переменной тип данных. Если необходимо явно задать тип, то это надо сделать для каждой переменной списка.
Область видимости и время жизни переменной определяется тем, где и как была описана переменная:
– Личная переменная уровня процедуры описывается с помощью инструкции Dim, размещенной в процедуре. Такая переменная сохраняет свое значение только при выполнении процедуры, а при повторном запуске процедуры ее необходимо инициализировать заново.
Структура программы на Си, Переменные, Типы данных
– Переменная уровня процедуры, описанная с помощью инструкции Static, также доступна только в той процедуре, где она описана. Однако при выходе из процедуры ее значение сохраняется.
– Личная переменная уровня модуля описывается с помощью инструкции Dim или
Private, размещенной в разделе описаний модуля.
– Общая переменная, доступная во всех модулях проекта, описывается с помощью инструкции Public в разделе описаний модуля.
Для того чтобы VBA требовал явного описания каждой используемой переменной, в раздел описаний модуля необходимо включить инструкцию Option Explicit.
Пример:
Dim Value1 As String
Dim Value1 As String, Value2 As Integer
Dim Value1, Value2, Value3 As Integer
Описание и использование массивов
Описание массива производится с помощью тех же операторов и подчиняется тем же правилам, что и описание обычной переменной.
Пример:
Dim strNames(10) As String
данная инструкция описывает одномерный массив с именем strNames, состоящий из 11 элементов (с 0 по 10); допустимые данные: строки переменной длины типа String.
В VBA можно создавать и многомерные массивы.
Пример:
Dim intNames(9, 14) As Integer
данная инструкция описывает двумерный массив с именем intNames, состоящий из
150 элементов, расположенных в 10 строках и 15 столбцах; допустимые данные: целые числа типа Integer.
Dim intNames(1 To 9, 1 To 14) As Integer
данная инструкция описывает двумерный массив с именем intNames, состоящий из
126 элементов, расположенных в 9 строках и 14 столбцах; допустимые данные: целые числа типа Integer.
Для изменения используемой по умолчанию нижней границы индексов используется инструкция Option Base, которая размещается в разделе описаний модуля:
Структура программы на языке Паскаль
Синтаксис:
Пример:
Dim strNames(10) As String
данная инструкция описывает одномерный массив с именем strNames, состоящий из 10 элементов (с 1 по 10); допустимые данные: строки переменной длины типа String.
Описание и использование констант
Константа, подобно переменной, является именованной областью памяти, хранящей информацию, используемую в программе. Однако, в отличие от переменной, изменение значения константы во время выполнения программы не допускается. В VBA можно как описывать собственные константы, так и использовать стандартные.
Синтаксис:
[Public | Private] Const имя_константы [As тип ] = значение
При описании константы ей можно присвоить литерал, но нельзя присвоить значение переменной или значение, возвращаемое какой-либо функцией.
В VBA имеется множество встроенных констант. Хотя вместо имен встроенных констант можно использовать и их значение, использование имен предпочтительнее, так как улучшает понимание текста программы, а также потому, что фактические значения констант в отличие от имен могут измениться в будущих версиях языка.
Пример:
Const intMaxCount As Integer = 30
Const blnFlagStart As Boolean = False
Const strMsgRus As String = “Введите значение параметра”
Const dtmStartFinYear As Date = #01/01/2005#
Использование префиксов типов данных в именах переменных
Префикс | Тип данных | Пример |
bln | Boolean | blnFlagStart |
byt | Byte | bytMaxCount |
cur | Currency | curMaxCost |
dbl | Double | dblMaxCount |
dtm | Date | dtmStartFinYear |
int | Integer | intMaxCount |
lng | Long | lngMaxValue |
obj | Object | objMainForm |
str | String | strMsgVarning |
sng | Single | sngMaxCount |
vnt | Single | vntTempValue |
g | Глобальная переменная | g_intMaxCount |
Тема 3. Инструкции языка Visual Basic для приложений
3.1. Оператор присваивания
3.2. Условный оператор
3.3. Оператор выбора
3.4. Оператор цикла Do … Loop
3.5. Оператор цикла со счетчиком (For … Next)
3.6. Оператор цикла For Each … Next
3.7. Оператор With … End With
3.8 Оператор безусловного перехода
Инструкция (или оператор) – это элементарная языковая конструкция, указывающая, что должно быть выполнено или как воспринимать следующие за ней данные. В состав оператора входят одно или несколько ключевых слов, а также, возможно, параметры. Несколько операторов, расположенных в одной программной строке, отделяются друг от друга двоеточием.
Оператор присваивания
Оператор присваивания используется для присваивания элементу данных языка (переменной, константе, элементу массива, свойству объекта) значения.
С использованием оператора присваивания описывается конструкция блок-схем, представленная на рис.1.
Оператору присваивания соответствует знак =(равно).
Синтаксис:
После выполнения оператора присваивания переменной с именем ИмяПеременной будет присвоено значение, полученное в результате вычисления выражения, стоящего справа от знака =(равно).
Тип данных переменной ИмяПеременной должен быть совместим с типом данных вычисленного выражения.
Допускается запись нескольких операторов в строке. В качестве разделителя операторов используется знак:(двоеточие).
Пример:
М = (А + В) / 2: С = К: D = 5
Условный оператор
Условный оператор выполняет определенные инструкции в зависимости от значения условия и может быть использован для описания конструкций блок-схем представленных на рис.2.
Условный оператор имеет две формы синтаксиса: строчную и блочную.
Синтаксис строчной формы:
Условие представляет собой логическое выражение или набор логических выражений объединенных логическими операциями.
При возвращении условием значения True, выполняются инструкции, следующие за ключевым словом Then, а при возвращении условием значения False, выполняются инструкции, следующие за ключевым словом Else.
Примеры:
If A>B Then P=A: A=B: B=P
If A>B And R=0 Then C=A+B: К=1 Else C=A*B: К=2
If A>B Then C=A+B Else If A
Синтаксис блочной формы:
[ инструкции_1 ]
[ инструкции_2 ]]
[ инструкции_N ]]
[ инструкции_else ]]
При возвращении условием_1 значения True, выполняются операторы, расположенные в нижеследующих строках, после чего управление передается в строку, следующую за ключевым словом End If, а при возвращении условием_1 значения False управление передается в строку, содержащую условие_2. Выполнение последующих проверок осуществляется аналогично. Если ни одно из условий не равно True, то выполняются операторы, расположенные в строках после ключевого слова Else, либо, если ключевое слово Else отсутствует, то управление передается в строку, следующую за ключевым словом
End If.
Примеры:
‘ Пример 1 – это комментарий
ElseIf K = 2 Then
ElseIf K = 3 Then
Оператор выбора
Оператор выбора, подобно оператору If … Then … Else, используется для выполнения тех или иных инструкций в зависимости от значения условия.
Синтаксис:
Select Case переменная
Case список_значений_1
[ инструкции_1 ]
[Case список_значений_2
[ инструкции_ 2]]
[Case список_значений_n
[ инструкции_n ]]
[ инструкции_else ]]
В операторе выбора вместо вычисления логического условия выполняется сравнение значения переменой с каждой из величин, заданных параметром список_значений.
Величины для сравнения, входящие в список_значений, могут быть заданы в виде:
– списка значений, перечисленных через запятую;
– диапазона значений в виде начальное_значение To конечное_значение;
– выражения сравнения в виде Is оператор_сравнения значение.
В инструкции может быть произвольное число блоков Case. Если ни одно из условий не является истинным, то выполняются инструкции блока Case Else.
Пример:
Источник: zdamsam.ru
Описание переменных.
По сути дела, переменная – это имя, присваиваемое некоторому участку памяти, где хранятся данные определенного типа. После определения переменной её имя можно использовать для операций с данными в памяти и, в частности, изменять значение переменной.
Описание переменных в общем случае имеет вид:
[класс памяти][const]тип имя[=значение [,имя [=значение…]]];
Поясним назначение составных частей этого описания.
- Необязательный описатель класс памяти может принимать одно из значений: auto,extern,static,register. Об этом описателе мы поговорим позже.
- Модификатор const служит для определения именованной константы; присвоенное ей значение изменить нельзя.
- Поле тип есть один из описателей основных типов ( char, int, float, и т.д.)
- Имя переменной выбирается по ранее рассмотренным правилам. При этом может осуществляться её начальная инициализация – переменной присваивается заданное значение.
Источник: studfile.net
Раздел описания переменных
Каждая переменная, встречающаяся в программе, должна быть определена. Описание переменной должно предшествовать использованию ее в тексте программы с тем, чтобы в момент использования она была уже «знакома» компилятору.
Раздел описания переменных начинается зарезервированным словом var / от variable — переменная/. Вслед за ним идет список, записи которого имеют следующую структуру: сначала через запятую перечисляется один или несколько идентификаторов переменных, затем ставится двоеточие и после двоеточия указывается тип перечисленных переменных. При обработке описания переменной транслятор создает новую переменную и присваивает ей определенный идентификатор.
Областью действия такого идентификатора является тот блок, в котором он определен, и любой другой блок в него входящий. Отметим, однако, что в любом блоке, входящем в состав другого блока, можно определить другую переменную, используя тот же самый идентификатор. В таких случаях говорят, что такая переменная является локальной для блока, в котором она описана /и для любого блока в пределах этого блока/, а переменная, описанная на более высоком уровне /во внешнем блоке/ называется глобальной переменной и становится недоступной.
Result, Intermediate, SubTotal: Real;
I, J, X, Y: Integer;
Accepted, Valid: Boolean;
Buffer: array[0..127] of Byte;
Раздел описания процедур и функций
В практике программирования часто возникает необходимость выполнения одной и той же последовательности операторов в различных частях программы. Наиболее простым способом реализации программы является запись последовательности операторов в тех участках программы, где это необходимо. Однако такой прием зачастую оказываетcя нерациональным.
Целесообразно оформить эти операторы в виде подпрограммы — процедуры или подпрограммы — функции. Процедуры и функции позволяют записать повторяющиеся участки один раз, а в нужных местах программы приводить лишь обращение к ним. Использование процедур позволяет сократить объем, улучшить структуру программы и уменьшить вероятность наличия ошибок. Основные стандартные процедуры и функции приведены в приложении 1.
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Источник: studopedia.ru