Переменные в алгоритмическом языке visual basic кратко

Обновлено: 02.07.2024

В объектно-ориентированных языках программирования и, в частности, в языке Visual Basic, переменные играют та­кую же важную роль, как и в алгоритмических языках про­граммирования. Переменные предназначены для хранения и обработки данных в программах.

Переменные задаются именами, которые определяют области памяти, в которых хранятся их значения. Значениями переменных могут быть данные различных типов (целые или вещественные числа, последовательности символов, ло­гические значения и т.д.).

Тип переменных определяется типом данных, которые могут быть значениями переменных. Значениями переменных числовых типов (Byte, Integer, Long, Single, Double) являются числа, логических (Boolean) — True или False, строковых (String) — последовательности символов и т.д. Обозначения типов переменных являются ключевыми словами языка и поэтому выделяются.

Различные типы данных требуют для своего хранения в оперативной памяти компьютера различное количество яче­ек (cм. табл.3). Так, для хранения целых чисел в интервале от 0 до 255 в переменных типа Byte достаточно одной ячейки па­мяти (одного байта), для хранения вещественного числа с двойной точностью в переменных типа Double требуется уже восемь ячеек (восемь байт), а для хранения символьных строк в переменных типа String требуется одна ячейка на каждый символ.

Например, числовую переменную можно назвать А или Число, а текстовую — А или Строка. Однако разработчик языка Visual Basic фирма Microsoft рекомендует для большей понятности текстов программ для программиста в имена пе­ременных включать особую приставку, которая обозначает тип переменных. Тогда, например, имена целочисленных переменных целесообразно записать как intА или intЧисло, а текстовых — strA и strСтрока.

Таблица 3. Типы переменных

Тип данных Возможные значения Объем занимаемой памяти Приставка к имени
Byte целые числа от 0 до 255 1 байт byt
Integer целые числа от -32768 до 32767 2 байта int
Long целые числа двойной длины 4 байта Ing
Single Десятичные числа от 1.401298Е-35 до 3.4022823Е38 4 байта sng
Double Десятичные числа двойной точности от 1.9406564584 1247Е-324 до 1. 797693 13486232Е308 8 байт dbl
Boolean Логическое значение True или False 2 байта bin
String Строка символов 1 байт на каж­дый символ str
Currency Число в денежном формате 8 байт cur
Date Дата от 1 января 1 00 г. до 31 декабря 9999г. 8 байт dtm
Object Ссылки на любой объект 4 байга obj
Variant Любые значения > 16 байт vnt

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

Массив состоит из пронумерованной последовательности элементов. Номера в этой последовательности называются индексом. Каждый из этих элементов является переменной, т.е. обладает именем и значением, и поэтому массив можно назвать переменной с индексом.

Простейшим способом задания типа переменной (ее объ­явления) является приписывание к имени переменной опре­деленного суффикса. Например, числовую переменную типа Integer можно задать как А%, а текстовую переменную String как А$.

Для объявления типа переменной можно воспользоваться также оператором определения переменной. Синтаксис (пра­вило записи) этого оператора следующий:

Dim ИмяПеременной [.As ТипПеременной]

Здесь Dim и As ключевые слова языка Visual Basic и поэто­му они выделяются жирным шрифтом. Назначение этого оператора — объявить переменную, т.е. задать ее имя и тип, однако объявление типа может отсутствовать. С помощью одного оператора можно объявить сразу несколько перемен­ных, например:

Dim ИмяПеременной As Integer,ИмяПеременной As String

Объявление массива производится аналогично объявле­нию переменных, необходимо только дополнительно ука­зать диапазон изменения индекса. Например, объявление строкового массива, содержащего 33 элемента, производит­ся следующим образом:

Dim ИмяМассива ( 1 To33) As String

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

ConstИмяКонстанты [As Тип]= ЗначениеКонстанты

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




Переменная может получить или изменить значение с помощью оператора при­сваивания. Синтаксис этого оператора следующий:

ИмяПеременной = Выражение

При выполнении оператора присваивания переменная, имя которой указано слева от знака равенства, получает значение, равное значению выражения (арифметического, строкового или логического), которое находится справа от знака равенства.

Понятие функции в языках программирования близко к понятию функции в математике. Функция может иметь один или более аргументов, если функция имеет один аргумент, то тогда она является функцией одного аргумента. Синтаксис записи функции нескольких аргументов следующий (аргу­менты в списке отделяются друг от друга запятыми):

ИмяФункции (Список аргументов)

Для каждого набора аргументов можно определить значе­ние функции. В программировании говорят, что функция возвращает свое значение, если задано значение ее аргумен­тов. Функции обычно входят в состав выражений, значения которых присваивается переменным.

Функции могут быть различных типов: математические, строковые, финансовые, даты и др. Тип функции определя­ется возможными значениями аргументов и функции.

В математических функциях значениями как аргумен­тов, так и функций являются числа. Всего в языке Visual Basic имеется 12 математических функций:

Таблица 4. Математические функции

Функция Возвращаемое значение
Sin(A) синус числа А
Cos (A) косинус числа А
Tan (A) тангенс числа А
Atn(A) арктангенс числа А
Sqr (A) квадратный корень из числа А
Log (A) логарифм числа А
Ехр(А) показательная функция числа А
Int(A) наибольшее целое число, не превышающее число А
Clnt(A) целое число, ближайшее к числу А
Fix (A) целое число, равное числу А без дробной части
Abs (A) абсолютное значение числа А
Rnd случайное число в интервале (0, 1)

Например, переменной Y нужно присвоить значение функции (x 2 + 5x –1) e –2 x . Оператор присваивания будет иметь вид

Y = (X^2 + 5*X – 1) * Exp( –2*X)

В строковых функциях строками являются либо аргу­менты, либо возвращаемые функциями значения.

Таблица 5. Строковые функции

Функция Возвращаемое значение
Len(S) количество символов в строке
Left (S, N) первые N символов строки S
Mid(S,K,N) N символов строки S, начиная с K-го символа
Val(S) преобразование числа в виде строки S в числовой формат
Str (N) преобразование числа N в строку символов
Asc(C) ASCII – код символа С
Chr(N) символ, ASCII – код которого равен N

Программирование разветвляющихся процессов

Изменить последовательность выполнения операторов можно с помощью операторов ветвления.

Одним из них является условный оператор If … Then. Он имеет два форматов записи.

1. Однострочный формат

Ifусловие ThenОператор1 [ Else Оператор2]

(в квадратные скобки взята необязательная часть). Если условие истинно, Оператор1 выполняется, в противном случае он пропускается и выполняется Оператор2, если он указан.

2. Блочный формат.

Ifусловие Then

[ Else

End If

Эта форма применяется, когда нужно при выполнении или не выполнении заданного условия выполнить не один, а несколько операторов.

D , >=, , = (например, IS >= 10).

В качестве примера рассмотрим следующую задачу. Пусть задана кусочно-непрерывная функция f (x) следующим образом:

–1 для x = 1

End Select

Предположим, что X = –2. Тогда истинными являются условия IS

Visual Basic работает с 14 стандартными типами переменных. Кроме того, программист может определить собственный тип данных. В данном разделе описаны те из них, которые в основном применяются при работе с данными.

String
Строковые переменные хранят символы. Один из способов обозначить данный тип переменной состоит в добавлении символа "$" к концу ее имени, например: AStringVariable$. Теоретически такая переменная может содержать до 2 миллиардов символов. В любом случае на конкретном компьютере это число будет гораздо меньше из-за ограниченных объемов оперативной памяти, ресурсов Windows или числа символов, используемых в форме.
Одно из наиболее основных применений строковых переменных состоит в выборе информации из полей ввода. Например, если есть поле ввода с именем Textl, то тогда оператор ContentOfTextlS = Textl.Text присваивает строку из поля ввода переменной в левой части данного оператора.

Integer
Целочисленные переменные могут хранить только относительно небольшие целые числа (в диапазоне от -32768 до +32767). Арифметические операции над такими числами выполняются очень быстро. Для обозначения такого типа используется символ "%":
AnIntegerVariable% = 3

Long Integer
Данный тип впервые появился в языке QuickBASIC. В таких переменных хранятся целые значения от -2 147483648 до +2 147483647. Обозначается символом "&". Арифметические операции над такими числами выполняются тоже очень быстро, и при работе с процессором 386DX или 486DX существует лишь небольшая разница в скорости вычислений между Long Integer и Integer.

ALongIntegerVariableS = 123456789 Single Precision

Идентификатором для данных чисел является символ "!". Данный тип переменной позволяет хранить дробные числа с точностью до семи цифр. Это означает, что если получается результат 12345678.97, то часть 8.97 не является точной. Результат может быть равен, к примеру, 12345670.01. Длина чисел может достигать 38 знаков. Вычисления с данными переменными тоже будут приблизительными. Более того, арифметические действия выполняются медленнее, чем с целочисленными переменными.

Currency
Данный тип отсутствовал в версиях GW-BASIC и QuickBASIC. Он создан для того, чтобы избежать ошибок при преобразовании десятичных чисел в двоичную форму и наоборот. (Невозможно 1/10 представить как сумму 1/2,1/4, 1/8, 1/16 и т.п.) Данный тип может иметь до 4 цифр после запятой, и до 14 - перед ней. Внутри данного диапазона вычисления будут точными. Идентификатор представляет собой символ "@". Поскольку все арифметические операции, кроме сложения и вычитания, выполняются так же медленно, как и в случае переменных с двойной точностью, данный тип является предпочтительным для проведения финансовых расчетов. (Для тех, кто интересуется: данный тип использует целые числа из 19 разрядов, которые затем делятся на 10000. Это позволяет организовать 15 знаков до запятой и 4 после нее.)

Byte
Байтовый тип является новым в Visual Basic 5 и предназначен для хранения целых чисел от 0 до 255. Его использование позволяет сильно экономить оперативную память и уменьшать размер массивов (см. главу 10) по сравнению с предыдущими версиями Visual Basic. Кроме того, он используется при работе с двоичными файлами.

Boolean
Булев тип данных может хранить только два значения: True либо False. Его использование вместо целочисленных переменных является хорошим стилем программирования.

Variant
Данный тип добавлен в Visual Basic 5 из версии 2.0. Переменная типа variant может содержать данные любого типа. Если Visual Basic не знает тип принимаемых данных, необходимо использовать variant.
Тип информации не имеет значения, поскольку variant может содержать любой тип данных (численный, дата/ время, строковый). Visual Basic автоматически производит необходимые преобразования данных, поэтому не стоит беспокоиться об этом. С другой стороны, можно использовать встроенные функции для проверки типа данных, хранящихся в переменной типа variant. Они позволяют легко проверить, правильно ли пользователь вводит информацию.
Использование такого типа данных, как variant, замедляет работу программы, так как требуется время и ресурсы для операций преобразования типов. Кроме того, многие программисты понимают, что использование автоматических преобразований типов данных приводит к неаккуратному виду программ. Единственная причина в использовании variant состоит в возможных ошибках при преобразовании типов непосредственно программистом.

Подробнее о переменных

В отличие от большинства версии BASIC, в одной программе Visual Basic нельзя использовать имена переменных, отличающиеся только типом (идентификатором), например, А% и А!. При попытке использовать двойное имя возникает ошибка "двойное определение" (duplicate difmition) при запуске программы.
При первом использовании переменной Visual Basic временно присваивает ей пустое значение и тип variant. Это значение исчезает в тот момент, когда переменной присваивают реальное. Каждый тип данных имеет свой образец "пустого" значения. Для строковых переменных это строка нулевой длины (" "). Для численных переменных это ноль. Полагаться можно только на значения по умолчанию, если они документированы (например, в комментариях). Иначе придется столкнуться с множеством трудно уловимых ошибок. Поэтому рекомендуется инициализировать значения переменных в первых строках процедур обработки событий.

Пример: обмен значениями
Одной из распространенных задач является обмен значениями между двумя переменными. Удивительно, но разработчики Visual Basic убрали из языка оператор Swap, известный в QuickBASIC. Поэтому код придется писать самим. Предположим, что есть две переменные х и у, и попробуем поменять местами их значения:

Такой вариант работать не будет, но важно разобраться из-за чего. Первый оператор присваивает переменной х значение переменной у, но тем самымуничтожает старое значение х.. В результате второй оператор присваивает переменной у ее же первоначальное значение. Решение состоит в использовании временной переменной:

temp = х 'Копирует старое значение х в temp
х = у 'Теперь х содержит старое значение у
у = temp 'Теперь у содержит оригинальное значение х

Объявление переменных: оператор Dim для различных типов данных

Большинство людей предпочитают не пользоваться идентификаторами для обозначения типа переменной (тем более, что для таких типов, как дата/время, вообще не существует идентификаторов). Вместо этого они используют оператор Dim. Такая операция носит название объявления. Объявление типов переменных в процедурах обработки событий перед их использованием - и, естественно, с комментариями - является хорошим стилем в программировании. Это также помогает улучшить читабельность текстов программ.

Private Sub cmdCalculate Click
'Данная процедура вычисляет проценты по закладной
Dim Years As Integer
Dim Rate As Currency
Dim Amount As Currency
Dim I As Integer
Dim TextBox As String
Dim Interest As Currency End Sub

Объявления переменных можно комбинировать в одной строке, например:
Dim Year As Integer, Rate As Currency, Name As String

Предупреждение: Общей ошибкой является использование следующего выражения:

Dim X, Y, Z As Integer

в предположении, что все три переменные будут целого типа. Фактически в данном случае переменные Х и Y будут объявлены как variant, и только Z - как integer. Чтобы избежать этого, необходимо каждый раз использовать идентификатор типа.

Dim Foo 'объявляет Foo переменной типа variant

Можно написать и так:

Dim Foo As Variant ' проще для прочтения

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

Необходимость объявления переменных

Примечание: Любая информация, которая должна быть доступна всем процедурам обработки событий, относящихся к форме, размещается в разделе (General) данной формы.

  • Открыть окно Code.
  • Выбрать объект (General) из списка объектов, представленных в окне Object.
  • Выбрать (Declaration) из списка Ргос.
  • Ввести Option Explicit.

Совет: Чтобы использовать обязательное объявление типа переменной, можно воспользоваться страницей Editor диалоговой панели Tools|0ptions. Автор (и, по его сведениям, все серьезные программисты) всегда устанавливает данный флажок. После этого оператор Option Explicit автоматически вставляется в те места кода, где это необходимо.

Изменение значений по умолчанию для типов

Следующее выражение автоматически присваивает переменным I, J и К тип variant:

Deflnt диапазон букв (для integer)
DefLng диапазон букв (для long integer)
DefSng диапазон букв (для single precision)
DefDbl диапазон букв (для double precision)
DefCur диапазон букв (для currency)
DefStr диапазон букв (для string)
DefVar диапазон букв (для variant)
DefBooi диапазон букв (для boolean)
DefByte диапазон букв (для byte)
DefDate диапазон букв (для date)

Буквы не обязательно должны быть заглавными: DefStr s-Z и DefStr S-Z работают одинаково. Соглашения о типах можно всегда изменить, используя идентификатор или оператор Dim для конкретной переменной. Оператор DefType размещают в том же разделе (General), что и Option Explicit.

Область видимости переменных

Программисты применяют термин область видимости, когда хотят сказать о возможности использования переменной из одной части программы в другой ее части. В старых языках программирования все переменные были доступны во всех частях программы, поэтому сохранение целостности наименований представляло большую проблему. Например, если в приложении использовались две переменные Total, то их значения уничтожали друг друга.
Решение данной проблемы в современных языках высокого уровня, таких как Visual Basic, состоит в изолировании переменных внутри процедур. До тех пор пока это не задано специальным образом, значение переменной Total в одной процедуре никак не влияет на значение переменной с таким же именем в другой процедуре. В терминах программирования данный подход означает, что данные переменные являются локальными по отношению к процедурам, если не указано иначе. В частности, процедура обработки события обычно не имеет никакой связи с другой процедурой того же типа. Обычно не принято работать с переменными по умолчанию. Если необходимо быть уверенным, что данная переменная является локальной, нужно объявить ее внутри процедуры события при помощи оператора Dim.

Знаете ли Вы, что "тёмная материя" - такая же фикция, как черная кошка в темной комнате. Это не физическая реальность, но фокус, подмена.
Реально идет речь о том, что релятивистские формулы не соответствуют астрономическим наблюдениям, давая на порядок и более меньшую массу и меньшую энергию. Отсюда сделан фокуснический вывод, что есть "темная материя" и "темная энергия", но не вывод, что релятивистские формулы не соответствуют реалиям. Подробнее читайте в FAQ по эфирной физике.

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

Имена переменных

Для того чтобы сделать ваши переменные более наглядными и простыми для чтения, рекомендуется давать им имена, имеющие определенное смысловое значение. Существует несколько правил задания имен переменных;

  • имя переменной может содержать не более 255 символов;
  • имя переменной может содержать любые буквы и цифры;
  • первый символ в имени переменной должен быть буквой;
  • в имени переменной должны отсутствовать пробелы;
  • имя должно быть уникальным в пределах области видимости.

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

Например, допустимы следующие имена переменных:
CurrentNum, Total, Date_of_birth
Следующие имена недопустимы:
1Time, $Total, Date of birth

В последнее время в наименованиях переменных рекомендуется использовать префиксы, отражающие тип переменной. При таком обозначении переменных повышается читабельность программы и снижается количество ошибок программирования. Префиксы отражают тип переменной и область ее действия. С конкретными значениями префиксов вы познакомитесь в разделах, посвященных типам данных и области действия переменной.

Типы данных
  • числовой (integer, Long, Single, Double, Currency);
  • строковый (String);
  • типа дата (Date);
  • байтовый (Byte);
  • логический (Boolean);
  • произвольный (variant);
  • объектный (object).

Для хранения чисел в Visual Basic используется пять разных типов данных. Для хранения целочисленных данных предназначены типы integer и Long. Первый из них служит для хранения целых чисел в диапазоне от —32768 до 32767 и занимает в оперативной памяти два байта.

Для хранения больших целочисленных значений в диапазоне от —2 147483648 до 2 147483648 следует выбрать тип данных Long. В этом случае для хранения переменной выделяется 4 байта. Аналогично, для хранения десятичных чисел с плавающей точкой предназначены типы данных single и Double.

Переменная с типом данных single занимает 4 байта и может принимать значения в диапазоне -3,4^38 . -1,4^-45 для отрицательных чисел и 1,4^-45 . 3,4^38 для положительных чисел. Если этого диапазона вам недостаточно, используйте десятичные числа с плавающей точкой двойной точности, определяя для них тип данных Double.

В этом случае переменной выделяется 8 байтов, которых достаточно для хранения чисел в диапазоне -1,7^-308 . -4,9^-324 для отрицательных чисел и 4,9^-324 . l,7^+308 для положительных чисел. Для хранения чисел с фиксированной точкой служит тип currency. Переменная данного типа занимает в оперативной памяти 8 байт. Целая часть числа может содержать до 15 цифр, а дробная — до 4.

Используя переменные строкового типа, вы можете хранить строки как фиксированной (до 216 символов), так и переменной длины (до 231 символов). Для переменной, имеющей тип строки с фиксированной длиной, ука зывается максимальная длина строки.

Если длина строки, присваиваемая этой переменной, меньше заданной длины строки, то оставшиеся свободные места заполняются пробелами. При присвоении переменной строки, количество символов которой превышает максимальное значение, все лишние символы отбрасываются.

Количество символов, хранящихся в строке с переменной длиной, определяется длиной присваиваемых ей данных. При использовании ASCCII кодировки для каждого символа строки выделяется один байт, а при использовании кодировки Unicode — два байта. Кроме этого выделяется 10 байт для строки в целом.

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

Логический тип данных Boolean используется для хранения данных, принимающих одно из двух значений: True (Правда) или False (Ложь). По умолчанию переменной данного типа присваивается значение False. В оперативной памяти она занимает два байта.

Тип данных Date используется для хранения даты и времени. Переменная этого типа требует 8 байт в оперативной памяти. Тип данных Variant является универсальным. Переменная этого типа может хранить любой из выше описанных типов данных. Все необходимые преобразования выполняются при присвоении переменной значения. Выделяемый переменной объем оперативной памяти зависит от типа присвоенного значения, но не может быть менее 16 байт.

Для хранения ссылок на объекты используется тип данных object. Каждая переменная данного типа требует 4 байта. При разработке программ в среде Visual Basic в зависимости от типа данных переменных рекомендуется использовать префиксы, приведенные ниже

Префиксы, используемые в наименованиях переменных.


Тип данных Префикс Пример
Boolean bin bInSuccess
Byte byt bytImage
Currency cur curPrice
Date dtm dtmFinish
Double dbl dblSum
Integer int intQuantity
Long Ing IngTotal
Single sng sngLength
String str strLastname
Variant vnt vntValue

Объявление переменной

В Visual Basic используется явное и неявное объявление переменной. Явное объявление осуществляется операторами Dim, private, Static, public, которые имеют следующий синтаксис:

Dim имяПеременной [As типДанных]
Private имяПеременной [As типДанных]
Static имяПеременной [As типДанных]
Public имяПеременной [As типДанных]

Операторы Dim, Private, static, public определяют область действия переменной. С помощью одного оператора вы можете объявлять несколько переменных, разделяя их запятыми. Примеры объявления переменных приведены ниже:

Private bInSuccess As Boolean
Dim strLastname As String, dblSum As Double

Большинство строк, с которыми приходится работать в Visual Basic, являются строками переменной длины, то есть они могут иметь длину до 2 Гбайт. Длина такой строки изменяется при присвоении ей нового значения. Но в Visual Basic существуют и строки с фиксированной длиной.

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

Для объявления строки с фиксированной длиной используется следующий синтаксис:
Dim имяПеременной As String * длинаПеременной
Параметр длинаПеременной указывает максимальное количество символов, отводимое переменной. Символ звездочки (*) указывает на то, что переменная имеет фиксированную длину.

Предпочтительнее использовать явное объявление переменных, поэтому рекомендуется установить такой режим трансляции программы, при котором допускается только явное объявление переменных. Для этого необходимо в начало модуля вставить оператор option Explicit (Явное объявление).

Для автоматического добавления во все модули данного оператора в окне про граммы Visual Basic выполните команду Options (Параметры) меню Tools (Сервис). Откроется диалоговое окно Options, на вкладке Editor (рис. 5.1) которого установите флажок Require Variable Declaration.

Диалоговое окно Options

Если вы не разместили в модуле оператор Option Explicit, можете использовать неявное объявление переменной. В этом случае тип переменной определяется при первом операторе присвоения, и в этот же момент переменной будет выделена память. Если вы не используете специальные концевые символы, определяющие тип переменной, ей будет присвоен тип variant.

Область действия переменных

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

В Visual Basic можно применять глобальные и локальные переменные. Глобальные переменные доступны из любой части программы. Для локальных переменных можно задавать область действия в рамках всего модуля или отдельной процедуры.

Присваивая имена переменным с учетом области ее действия, придерживайтесь следующего формата:
Область действия переменной Префикс Пример Глобальная g gdtmFinish Локальная внутри модуля m msngLength Локальная внутри процедуры нет префикса strLastname Для создания переменной, которую вы хотите определить в качестве глобальной, в раздел General Declarations главного модуля приложения поместите оператор public. Например:
Public gdtmFinish As Date

Для объявления переменной, локальной внутри модуля или формы, используйте оператор private или Dim в разделе General Declarations модуля или формы (рис. 5.2). В этом случае объявленная переменная будет доступна для всех входящих в форму или модуль процедур, но в то же время недоступной в процедурах других модулей и форм.Ниже дан пример объявления переменных, локальных на уровне модуля

Переменные, локальные на уровне процедуры, создаются операторами Dim или static внутри процедуры. Например:
Sub CalcTotal
Dim bSuccess As Boolean
. . .
End Sub

Присвоение значения переменной

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

Справа от знака равенства может стоять не только константа, но и более сложное выражение. Например:
sngResult = sngFirst + 255
strName = "Иванов" & ": " & strTeam

Особенности использования переменных типа Variant

Переменную типа variant можно использовать для хранения всех типов данных и выполнять операции, не заботясь о типе данных, в них содержащихся. Необходимо только помнить о двух исключениях. Во-первых, выполнять арифметические операции или функции над переменной типа variant можно только в том случае, если она содержит числовое значение. Во-вторых, конкатенацию строк следует осуществлять с помощью оператора "&" вместо оператора "+".

Переменные типа variant могут содержать специальные значения Empty, Null или Error

Значение Empty
До присвоения значения переменной типа variant ее значение отлично от О, пустой строки или значения Null и именуется Empty. Для определения значения Empty можно использовать функцию isEmpty:
If IsEmpty(x) Then x = 0
Замечание
Переменная типа variant имеет значение Empty только до первого присвоения ей какого-либо значения.

Значение Null
Переменная типа variant может иметь значение Null, используемое для указания пустых данных в приложениях, работающих с базами данных.
С помощью функции isNull можно проверить, имеет ли переменная типа variant значение Null:
If IsNull(x) Then
у = Null
Else
у = 0
End If

Для присвоения переменной типа variant значения Null можно использовать ключевое слово Null:
у = Null
Предупреждение
Присвоение значения Null переменной, не имеющей типа variant, приведет к ошибке.

При работе с переменной типа variant, имеющей значение Null, необходимо иметь в виду следующее:
если в выражении содержится переменная, имеющая значение Null, то само выражение принимает значение Null;
при использовании в качестве параметра функции переменной, имеющей значение Null, большинство функций возвращает значение Null.

Значение Error
Переменная типа variant может принимать значение Error при возникновении ошибки в процедуре. Однако в этом случае на уровне приложения ошибка не обрабатывается, что позволяет программисту в зависимости от ее значения предпринимать определенные действия.

Внутреннее представление значений
Переменная типа variant поддерживает внутреннее представление хранящихся в ней данных. При присвоении значения переменной типа variant Visual Basic применяет наиболее компактное представление этого значения. Например, если переменной типа variant присвоено небольшое числовое значение без дробной части, то используется представление integer, если хранится дробное число — используется внутреннее представление Double.

Объект – это объединение данных с кодом, предназначенным для их обработки.

Объект представляет собой поименованный элемент, который имеет:

  • свойства (характеристики), которые можно проверить или изменить;
  • методы (действия), которые можно выполнить над объектом;
  • события (возможные для объекта ситуации), на которые он может ответить заранее определенными действиями.

Оператор – это наименьшая способная выполняться единица VBA-кода. Оператор может объявлять или определять переменную, а также выполнять какое-либо действие в программе. Иначе говоря, оператор представляет собой обобщенную инструкцию, содержащую всю информацию, нужную для выполнения определенных действий. Операторы в общем случае состоят из ключевых слов, выражений и операндов.

Ключевые (зарезервированные) слова – это имена команд, операторов, процедур, функций.

Операнды – это данные, которые используются в программе. К ним относят константы, переменные и значения функций.

Процедура – это наименьшая единица программного кода, на которую можно ссылаться по имени и которая может выполняться независимо.

В VBA основные типы процедур – это Sub и Function. Любая процедура содержит один или более операторов, которые, в свою очередь, помещены между двумя специальными операторами: объявлением процедуры в начале и оператором завершения процедуры в конце.

Модуль – это поименованная единица, которая состоит из одной или нескольких процедур, а также общих объявлений, относящихся ко всем процедурам в модуле.

Алфавит VBA включает в себя:

Данные

Данные – это элементарные конструкции языка.

Готовые работы на аналогичную тему

Типы данных делятся на простые (или скалярные) и сложные (или структурированные). Простые типы данных подразделяются на числовые, строковые и логические. Структурированный тип данных массив – $n$-мерная совокупность индексированных переменных одного типа. Массиву присваивается имя. Массив состоит из элементов (переменных), которые в памяти размещаются последовательно. Обращение в программе ко всему массиву производится по его имени. Для обращения к конкретному элементу массива необходимо указать его имя и в круглых скобках – индекс (номер) массива. Все элементы массива имеют одно имя, но различные номера (положения) в массиве.

В VBA используются 11 стандартных типов данных и пользовательский тип данных, их характеристики приведены в таблице ниже.

Типы данных и значений. Автор24 — интернет-биржа студенческих работ

Различные типы данных введены для рационального использования памяти ЭВМ. Наиболее часто начинающие программисты используют типы данных Integer (для целых чисел) и Single (для дробных чисел).

Символьные (строковые, текстовые) данные должны заключаться в кавычки: ″1-я пара″, ″лекция″.

Переменные

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

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

Значение переменной присваивается с помощью знака равенства. Для удобства работы с переменными в языках программирования предусмотрена возможность задания понятных человеку имен, к примеру, имена переменных rFIO, rBirthday. К именам переменных в VBA имеется ряд требований:

Пара советов по именованию переменных. Давайте имена переменным понятные, но в тоже время короткие т.к. с длинными именами сложнее работать. VBA позволяет описывать переменные в любой области кода, что в дальнейшем, при большом количестве строк программного кода может вызвать затруднение с поиском и определением типа. Рекомендуется не лениться описывать все переменные в начале процедуры или функции, определив, таким образом, некоторый блок переменных. Можно также оставить комментарии с подробным описанием назначения переменной.

Описание переменных в VBA

Под описанием переменной подразумевается указание типа данных. В VBA переменные можно указывать явным и неявным образом. Не явным образом означает, что можно в любом месте кода указать имя переменной и начать с ней работать, в таком случае тип этой переменной принимается как Variant. Такой способ удобен, но не рекомендуется, поскольку может возникнуть путаница и, как следствие, ошибки при вычислениях. Явное описание осуществляется после ключевого слова:

Dim [имя переменной] As [Тип].

Например, Dim MyInt As Integer. В случае такого описания переменная MyInt будет хранить в памяти только значения целого типа.

Обязательное объявление всех переменных

Как уже говорилось выше переменные в VBA можно объявить, а можно и не объявлять. Однако рекомендуется объявлять каждую переменную, используемую в программе. Это позволит сделать код более понятным, дисциплинирует, и в крупных разработках позволит сэкономить память и увеличить быстродействие при обработке данных. Для того чтобы в VBA включить обязательное объявление всех переменных, необходимо в начале модуля добавить строку: Option Explicit. После, на каждой не объявленной переменной будет происходить остановка программы, и отображаться ошибка до тех пор, пока всем переменным не будет присвоен тип в разделе Dim.

Константы

Константой называется значение, хранимое в памяти, которое в процессе работы программы не изменяется.

Константы используются в тех случаях, когда в коде программы используется один и тот же параметр, число, строка и т.д. Для того чтоб обеспечить удобство изменения этих параметров при необходимости, в начале кода программы описываются константы и им присваивается значение. Константы объявляются с помощью оператора Const. Например:

  • Const MyIntConst as Integer = 8
  • Const MyTxtConst as String = "Константа"

или без указания типа:

Const MyConst = 4,55

в этом случае константа типа Variant.

Внимание. В случае если при работе программы вы захотите изменить значение константы, программа завершится ошибкой. Поэтому будьте внимательны. Так же, не допускается совпадение имен констант и переменных. Требования к именам констант такие же, как и к переменным.

Закрепим все вышесказанное примером небольшого макроса, который рассчитает функцию $y = x+i * 2$, где $x=\frac$, $0

Читайте также: