Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA_lektsii.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
3.91 Mб
Скачать

2.3. Описание переменной

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

Описание переменных – это необязательная процедура, но, выполнив ее, вы существенно повысите производительность программы и облегчите ее отладку.

Ниже приведен пример использования инструк­ции Dim для описания переменной:

Dim Var1 As Integer

В этой команде объявляется переменная Varl типа Integer. Это означает, что VBA выделил для нее 2 байта памяти. В команде использованы три ключевых слова — Dim, As и Integer. Рассмотрим их подробнее.

Dim – ключевое слово, начинающее описание переменной;

Varlимя переменной;

As – ключевое слово, отделяющее имя переменной от типа данных;

Integer – тип данных.

Ниже приведем еще несколько примеров описания переменных:

Dim Var2 As Double

Dim Var3 As Date

Dim Var4 As Currency

Dim Var5 As Variant

В одной инструкции Dim можно описать сразу несколько переменных, разделяя их запятыми и сопоставляя каждой из них ключевое слово As и тип данных, например:

Dim Var2 As Double, Var3 As Date, _

Var4 As Currency, Var5 As Variant.

2.4. Использование переменных

Теперь посмотрим, как это сделать в программе. В процедуре ЦелаяПеременная переменная Integer применяется для задания свойства Value объекта Range.

Sub ЗадатьПеременную()

Dim Num1 As Integer

Num1 = 5

Worksheets(1).Range("A1").Value = Num1

Worksheets(1).Select

End Sub

В третьей строке переменной Numl присваивается значение 5, которое сохраняется до завершения программы. В четвертой строке приравниваем свойство Value ячейки A1 первого рабочего листа переменной Num1. В программе ПрисвоитьЗначение приведен обратный пример – переменной Num1 присваивается значение из диапазона:

Sub ПрисвоитьЗначение()

Dim Num1 As Integer

Num1 = Worksheets(1).Range("A1").Value

MsgBox Num1

End Sub

Если вы запустите эту программу в той же рабочей книге, что и ЦелаяПеременная, значение Num1 будет равно 5. В четвертой строке программы переменная использована для вывода значения в информационном окне

Таким образом, программа ПрисвоитьЗначение отображает в окне значение свойства Value диапазона A1. Этого же результата можно добиться и не используя переменную, как продемонстрировано в следующем примере:

Sub БезПеременной()

MsgBox Worksheets(1).Range("А1").Value

End Sub

2.5. Преимущества переменных

Глядя на предыдущий пример, вы, вероятно, подумали: зачем же вообще нужны переменные? Прежде всего, они облегчают написание программы, особенно когда приходится использовать некоторое значение несколько раз. Допустим, вам нужно присвоить ячейкам диапазона A1 второго, третьего и четвертого листов значение, содержащееся в этой же ячейке первого листа. Вот как будет выглядеть программа без переменных:

Sub ЗадатьЗначения()

Worksheets(2).Range("A1"). Value = Worksheets(1).Range("A1").Value

Worksheets(3).Range("A1").Value = _

Worksheets(1).Range("A1").Value

Worksheets(4).Range("A1").Value = _

Worksheets(1).Range("A1").Value

End Sub

Применение переменной и делает программу короче (по числу символов) и понятнее:

Sub ИспользованиеПеременной()

Dim Num1 As Integer

Num1 = Worksheets(1).Range("A1").Value

Worksheets(2).Range("A1").Value = Num1

Worksheets(3).Range("A1").Value = Num1

Worksheets(4).Range("A1").Value = Num1

End Sub

Переменные не только сократят код и сделают его более читаемым. Они еще и ускорят его выполнение. Программа ИспользованиеПеременной, например, работает быстрее, чем ЗадатьЗначения. О скорости расскажем чуть позже, а пока лишь заметим, что любое обращение к объекту, методу или свойству требует от Excel определенных действий и потому занимает некоторое время. В программе ЗадатьЗначения количество таких обращений можно определить по числу точек в инструкциях. В строках со второй по четвертую они использованы 12 раз, по четыре в каждой строке. В строках 3–6 программы ИспользованиеПеременной точка встречается 8 раз, по две на строку. Предположим, что на обработку каждой точки требуется одно и то же время, тогда, подсчитав, получим, что программа ИспользованиеПеременной выполняется за 2/3 времени, затрачиваемого на работу ЗадатьЗначения. Так все обстоит и в действительности. Конечно, для таких коротких примеров различие в скоростях заметить невозможно, но в длинных и сложных приложениях разница становится весьма ощутимой.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]