Типы данных Visual Basic, переменные и константы
Переменная – это величина, значение которой может изменяться. В программах переменные используются для идентификации определенных численных и текстовых значений. Каждая переменная в программе имеет не только название, но и тип. Тип – это параметр переменной, который определяет диапазон хранимого в ней значения, методы его обработки и объем выделяемой памяти.
Таблица 2. Типы данных VBA.
Название типа
(символ
определения)
| Размер
в байтах
одной
переменной
| Описание и диапазон значения
|
|
|
| Byte
|
| Используется для хранения положительного числа от 0 до 255
| Boolean
|
| Используется для хранения логических значений – имеет только значения True или False
| Currency (@)
|
| Используется для хранения чисел от
–922337203685477,5808 до
+922337203685477,5807
Это число с фиксированной точкой – десятичная точка находится в одном и том же месте –справа от десятичной точки всегда находится четыре цифры. Математические операции над такими числами не имеют ошибок округления или они малы. Поэтому операции над такими числами более точны
| Date
|
| Используется для хранения комбинации информации о дате и времени. Диапазон дат может быть от 1 января 100 года до 31 декабря 9999 года Диапазон времени от 00:00:00 до 23:59:59
| Decimal
|
| Переменные этого типа сохраняются как 96-битовые знаковые целые, масштабируемые значением некоторой степени числа 10. Степень определяет число десятичных знаков справа от десятичной точки и может быть в диапазоне 0 ¸ 28.
|
Продолжение табл. 2
|
|
| Double (#)
|
| Используется для хранения дробных чисел (16 десятичных знаков после запятой)
Отрицательные числа: от
–179.769313486232D+308 до
–4. 94065645841247D–324.
Положительные числа: от
4.94065645841247D–324
до
1.797693 13486232D+308
| Integer (%)
|
| Используется для хранения целого числа
от –32768 до +32767
| Long (&)
|
| Используется для хранения целого числа
от -2147483648 до 2147483647
| Object
|
| Используется для доступа к любому объекту, распознаваемому VBA. Сохраняет адрес объекта в памяти
| Single (!)
|
| Используется для хранения дробного числа (8 десятичных знаков после запятой)
Отрицательные числа:
от –3.402823Е38 до –1.401298Е45
Положительные числа:
от 1.401298Е-45до3.402823Е38
| String ($)
(переменной длины)
| 10 байт + длина строки
| Используется для хранения текста. Может содержать от 0 символов до (приблизительно) 2 миллиардов символов
| String
(фиксированной длины)
| Длина строки (1 байт на символ)
| Используется для хранения текста. Может содержать от одного до (приблизительно) 654000 символов
| Variant
| 16 байт + 1 байт/символ
| Тип Variant может хранить любой другой тип данных. Диапазон для данных типа Variant зависит от фактически сохраняемых данных. Этот тип данных является типом данных По-умолчанию. Если в программе отсутствует описание какой либо переменной, то VBA приписывает ей тип Variant.
|
При выборе имени переменной необходимо соблюдать следующие правила:
– имя переменной должно начинаться с буквы алфавита (допускается только латиница);
– после первой буквы имени переменной может стоять любая комбинация цифр, букв или символов подчеркивания (_);
– имена переменных не могут содержать пробелы, точку (.) или любой другой символ, который используется для обозначения математических операций и операций сравнения (=, +, - , /и так далее);
– имена переменных не могут превышать 255 символов;
– имя переменной не может дублировать определенные ключевые слова;
– имя переменной должно быть уникальным в рамках его области действия, то есть имя переменной должно быть уникальным в пределах процедуры или модуля, в котором она объявляется.
Имена переменных не «чувствительны» к состоянию регистра, то есть написание имени переменной прописными или заглавными буквами не имеет значения. Имена FirstMyVar и firstmyvar представляют для VBA одно и то же. При выборе имен переменных надо делать их по возможности наиболее информативными: выбирать имена, подобно AllSum, а не х или у.
Константа – это значение в программе VBA, которое не меняется.
В коде VBA можно также писать литеральные численные константы и даты. Примеры численных литеральных констант включают числа 36, 3, 14 и 212. Константы можно изменять только редактированием исходного кода VBA.
Константы не должны быть обязательно литеральными. VBA позволяет создавать именованные константы. Именованная константа имеет заданное ей имя; это имя представляет конкретное неизменяемое значение.
Использование именованных констант повышает читабельность процедур, например, процедура, выполняющая геометрические вычисления, легче читается и более понятна, если использовать именованную константу Pi вместо литеральной константы 3,14.
Задание типа данных переменной
Хотя объявлять тип переменным не обязательно ( VBA автоматически им присваивает тип Variant), объявление типа переменных имеет несколько преимуществ:
– объявленные переменные ускоряют выполнение кода программ. Так как при объявлении указывается VBA тип переменной, выполнение программы ускоряется на то время, которое VBA потратил бы на анализ переменной типа Variant,чтобы определить ее конкретный тип.
– объявленные переменные повышают эффективность кода. Переменные типа Variant могут занимать гораздо больше памяти, чем переменные определенных типов. Объявленная переменная занимает только память, необходимую для этого определенного типа, поэтому это может значительно сократить объем памяти, требуемый для программы;
– программный код с типизированными переменными легче читать и понимать.
Объявить тип переменной можно явно и неявно.
Для явного объявления переменной и ее типа используется оператор Dim, который в общем случае имеет следующий формат:
Dim name_l As type_l, name_2 As type_2, ...
Примеры правильного синтаксиса для объявлений типа переменных:
Dim Price As Currency
Dim DataPlata As Date
Dim Message As String
Dim Counter As Integer
Dim Profit As Single, Gross As Currency, Message As String
При неявном объявлении тип переменной задается добавлением символа определения типа в конец имени переменной (см. табл. 2), например:
MyVar% = 25
CelsiusTemp! = 15,35
Title$ = "Excel"
Хотя неявное объявление переменных удобно, с ним связаны некоторые проблемы. Когда переменные объявляются неявно, существует риск нечаянно создать новую переменную, когда на самом деле, необходимо использовать уже существующую переменную, или использовать существующую переменную, когда надо создать новую. Обе эти ситуации приводят к ошибкам в коде, которые очень трудно отслеживать.
Чтобы было легче в любое время обнаружить ошибки, связанные с неявным объявлением переменных, VBA предоставляют команду Option Explicit. При использовании команды Option Explicit VBA требует объявления всех переменных перед (с помощью оператора Dim) перед их использованием.
Независимо от того, объявляются ли переменные типа String с помощью тора Dim или добавлением символа определения типа $, создаваемые строковые переменные по умолчанию являются строками переменной длины. Строковые переменные переменной длины изменяют длину, в зависимости от длины строки, сохраняемой переменной. Иногда может понадобиться использовать строку фиксированной длины. Строки фиксированной длины всегда имеют одну и ту же длину. Они полезны, если необходимо обеспечить, чтобы текст, сохраняемый в строковой переменной, всегда содержал одно и то же число символов.
Общий синтаксис для создания строки фиксированной длины:
Dim name As String * N
N – число, определяющее длину строки.
После объявления переменной, независимо от того, объявляется ли эта переменная явно или неявно, и как задается тип, эта переменная сохраняет тот же самый тип столько времени, сколько она существует. Нельзя переобъявить переменную или переопределить ее тип.
Математические функции
Для наиболее часто встречающихся функций в алгоритмический язык включаются программы для их вычисления.В таблице 3 приведены математические функции, имеющиеся в VBA. В этой таблице N означает любое численное выражение; все аргументы функций являются обязательными, если только не указано иначе.
Таблица 3. Математические функции VBA
Функции (аргументы)
| Возвращает/ действие
|
|
| Abs(N)
| Возвращает абсолютное значение N
| Atn(N)
| Возвращает арктангенс N как угол в радианах
| Сos(N)
| Косинус угла N, где N это угол, измеряемый в радианах
| Sin(N)
| Возвращает синус угла; N – это угол, измеряемый в радианах
| Sqr(N)
| Возвращает корень квадратный из N. VBA отображает ошибку, исполнения, если N – отрицательное
| Tan(N)
| Возвращает тангенс угла; N – угол в радианах
| Exp(N)
| Возвращает константу е, возведенную в степень N. (е – это основание натурального логарифма)
|
Продолжение табл. 3
|
| Fix(N)
| Возвращает целую часть N. Fix не округляет число, а отбрасывает любую дробную часть. Если N является отрицательным, Fix возвращает ближайшее отрицательное целое, большее, чем или равное N
| Int(N)
| Возвращает целую часть N. Int не округляет число, а отбрасывает любую дробную часть. Если N является отрицательным, Int возвращает ближайшее отрицательное целое меньшее, чем или равное N
| Log(N)
| Возвращает натуральный логарифм N
| Rnd(N)
| Возвращает случайное число; аргумент является необязательным. Функцию Rnd используется только после инициализации VBA-генератора случайных чисел оператором Randomize
| Sgn(N)
| Возвращает знак числа:
-1, если N отрицательное;
1, если N – положительное;
0, если N равно 0
|
Дополнительные тригонометрические функции можно выводить из базовых математических функций VBA. Например, если необходимо вычислить котангенс угла, для его нахождения можно использовать формулу 1/Таn(х).
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|