Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Переменные






 

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

Для объявления переменных обычно используется инструкция объявления Dim.

Синтаксис:

Dim имяПеременной [As тип] [, имяПеременной [As тип] …

Элементы синтаксиса:

имяПеременной –

Обязательный. Имя переменной, удовлетворяющее стандартным правилам именования переменных.

тип –

Необязательный. Тип данных переменной. Для каждой описываемой переменной следует использовать отдельное предложение As тип. В случае отсутствия параметра переменная будет иметь тип Variant.

Например, инструкции

Dim A As Integer, B As Single

Dim C As Boolean

описывают переменные А – целого, В – вещественного и С – логического типа.

Это же объявление переменных можно выполнить с помощью одной инструкции Dim:

Dim A As Integer, B As Single, C As Boolean

При объявлении любой переменной VBA выполняет ряд действий:

· В памяти выделяется область, размер которой определяется в соответствии с типом объявляемой переменной.

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

· Переменная инициализируется, т.е. в соответствии с типом объявляемой переменной ей присваивается начальное значение. Число инициализируются значением 0, переменные Boolean – значением False, строки – пустыми строками (не содержат символов).

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

Переменные, описанные с помощью инструкции Dim, называются явно описанными.

Переменные являются неявно описанными, если 1) они используются в программе без объявления их с помощью инструкции Dim или 2) в инструкции объявления типа переменной был опущен параметр тип. Неявно описанные переменные связываются с типом Variant, а затем они используются как любые другие переменные этого типа. Однако, при этом, во-первых, потребуется больше ресурсов памяти по сравнению с другими типами данных и времени, т.к. компилятор вынужден сначала определить настоящий тип переменной, затем преобразовать его к этому типу, и только потом использует в вычислениях. При работе с достаточно большими программами это может привести к значительной потере во времени и ресурсах. Во-вторых, не описывая переменные явно можно получать неправильные ответы или ситуацию «бесконечный цикл» всего лишь из-за орфографической ошибки или описки.

Например, при написании процедуры Prim допущена описка: вместо инструкции K=K+10 введена инструкция K=K1+10. В результате будет искажен результат.

С переменной будет связан тип Variant и тогда, когда при объявлении переменной была допущена ошибка.

Например, инструкции

Dim A, В, С As Integer

Dim D As Variant

описывают переменные A, В и D типа Variant. Причем переменная D описана явно, а переменные A и В неявно.Для того чтобы все три переменные первой инструкции были объявлены как целые, необходимо было написать такую инструкцию:

Dim A As Integer, В As Integer, С As Integer

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

Чтобы наложить требование на явное описание переменных, необходимо в разделе описаний модуля указать директиву компилятора Option Explicit:

Option Explicit

Sub Prim()

Dim K As Byte

K=K+10

...

End Sub






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.