
Тема 1.Основные элементы языка
Основні елементи мови
План
1. Переменные 1
Тема 1. Основные элементы языка 2
2. Типы данных 2
3. Область действия переменных и процедур 4
4. Массивы 8
5. Константи. 8
1.Переменные
Как и в других языках программирования, в VBA для хранения временных значений, передачи параметров и проведения вычислений используются переменные.
Переменные – это поименованные области в памяти компьютера.
Обычно перед тем, как использовать переменную, производится ее объявление, т. е. вы заранее сообщаете Visual Basic, какие именно имена переменных вы будете использовать в своей программе, при этом объявляется также тип данных, для хранения которых предназначена эта переменная. В VBA, как и в обычном языке Basic, для этого используется оператор Dim. Вот синтаксис этого оператора:
Dim <имяПеременной> [As <типДанных>]
В VBA действуют следующие правила именования переменных. Имя не может быть длиннее 255 символов, оно должно начинаться с буквы, за которой могут следовать буквы, цифры или символ подчеркивания. Оно не должно содержать пробелов, знаков препинания или специальных символов, за исключением самого последнего знака. В конце к имени переменной может быть добавлен еще один из следующих шести специальных символов — описателей типа данных: ! # $ % & @
Эти символы не являются частью имени переменной: если в программе используются одновременно имена string1$ и string1, то они ссылаются на одну и ту же строковую переменную. Нельзя использовать одно и то же имя переменной с разными символами определения типа данных или одновременно явное описание типа данных и не соответствующий этому типу данных специальный символ.
Кроме того, не допускается использование в качестве имен переменных ключевых слов VBA и имен стандартных объектов. Именно поэтому рекомендуется начинать имена переменных со строчной, а не с прописной буквы. Поскольку у ключевых слов VBA и имен стандартных объектов первая буква при вводе автоматически преобразуется в прописную, вы будете избавлены от риска нечаянно использовать запрещенное имя переменной.
Допускается использование в именах переменных букв не только латинского алфавита, но и кириллицы, что может оказаться удобным для русских пользователей: при желании можно давать переменным имена на русском языке.
Для того чтобы не забывать объявлять каждую переменную перед ее использованием, необходимо поместить оператор Option Explicit в начало каждого модуля. Или можете установить параметр Require Variable Declaration (Явное описание переменных) на вкладке Editor (Редактор) диалогового окна Options (Параметры) редактора VBA.
Для объявления переменных включим оператор DIM в верхнюю части процедуры, использующей эти переменные.
DIM variable As type, variable As type, …
где Variable – имя переменной, type – тип данных.
2.Типы данных
Переменные и типы данных определяют, где и как хранятся данные в памяти компьютера. Желательно в VB указывать типы каждой переменной перед ее использованием. Задавая тип данных, накладываем некоторые ограничения на сохраняемую величину: как велика она может быть; сколько разрядов она может содержать и может ли она содержать дробную часть.
В VB имеется 11 встроенных типов данных:
Таблица 1.
№ |
Тип данных |
Размер (байт) |
Разрядность (цифр) |
Диапазон |
|
1 |
Boolean – логический |
2 |
1 |
True(1) или False(0) |
|
2 |
Integer – целый (число со знаком) Символ определения типа по умолчанию: % |
2 |
5 |
-32768 ÷ 32767 |
|
Byte - Число без знака от 0 до 255 |
1 |
3 |
0 ÷ 255 |
||
3 |
Long – целый удлиненный Символ определения типа по умолчанию: & |
4 |
10 |
-2147483648÷ 2147483647 |
|
4 |
Single – действительный Символ определения типа по умолчанию: ! |
4 |
7 |
-3,402823E+38÷ -1,401298E-45 1,401298E-45÷ 3,402823E+38 |
|
5 |
Double – действительный удлиненный (Символ определения типа по умолчанию: #) |
8 |
15 |
-1,79769313486232E+308÷ -4,94065645841247E-324 4,94065645841247E-324÷ 1,79769313485232E+308 |
|
6 |
Currency - действительный с фиксированной десятичной запятой (5-ть знаков) Символ определения типа по умолчанию: @ |
8 |
19 |
-922337203685477.5808÷ 922337203685477.5807 |
|
7 |
Date- даты |
8 |
|
01.01.100÷31.1112.9999 |
|
8 |
String – строковый Символ определения типа по умолчанию: $ |
1+1 |
|
От 0 до 65535 символов |
|
9 |
Object – объектный |
4 |
|
Любой определенный объект |
|
10 |
Array – набор(массив) |
Определяется количеством и размером элементов |
|||
11 |
Variant |
Определяется записанными данными |
Любой встроенный тип данных |
При описании переменной указание типа данных может быть опущено. Тип переменной в таком случае определяется последним символом имени переменной: @, #, %, &, ! или $ (Currency, Double, Integer, Long, Single или String, соответственно). Например, поскольку символ $ является символом определения типа для строковых данных, то переменная под именем texts автоматически становится переменной типа "строка символов". В дальнейшем этот специальный символ указания типа данных может быть опушен, однако постоянное присутствие в имени переменной символа определения типа будет напоминать о том, к какому типу данных относится эта переменная, что поможет избежать ошибок использования несовместных типов данных.
Если же последний символ не является ни одним из перечисленных ранее и явное указание типа тоже не используется, в этом случае переменной будет назначен по умолчанию тип данных Variant, который позволяет хранить в ней данные любого типа.
Учтите также, что нельзя использовать в одной и той же процедуре имена переменных, отличающиеся друг от друга только специальным символом определения типа в конце переменной. Например, не допускается одновременное использование переменных var$ и var%. He допускается и явное объявление переменной, уже содержащей символ определения типа в конце имени, с помощью описателя As <типПеременной> (даже если такое определение не противоречит обычному применению символа определения типа). Так, например, вы получите сообщение об ошибке, попытавшись ввести любое из следующих определений:
Dim var1% As String
Dim var2% As Integer
Для определения типа данных аргументов процедуры или функции используется описание типа данных непосредственно в заглавной строке процедуры или функции.
Например, следующая заглавная строка процедуры описывает ее параметры как переменные строкового типа:
Sub SplitStr(strl As String, str2 As String, str3 As String)
Определение типа данных возвращаемого функцией значения завершает заглавную строку функции, например:
Function FindSplitSpacel(strl As String) As Integer
описывает возвращаемое функцией значение как переменную короткого целого типа.
Чтобы программа работада быстрее и занимала меньше памяти, рекомендуется использовать, когда это возможно, конкретные типы переменных, а не универсальный тип Variant. На обработку переменных типа variant требуется не только дополнительная память, но и дополнительное время: требуется выяснить, к какому конкретному типу данных принадлежит такая переменная в момент обработки, а также при необходимости выполнить преобразование данных к нужному типу. Может показаться, что в таком случае лучше вообще не использовать подобные переменные. Это не так. Часто переменные типа variant просто необходимы: например, в том случае, когда вы точно не уверены, какие именно данные будут присвоены переменной.