double arrow

Объектные переменные общего типа

Задание объектной переменной

Объектные переменные

End Sub

End Sub

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

End Sub

Глядя на предыдущий пример, Вы, вероятно, подумали: «Зачем же вообще нужны переменные?» Прежде всего, они облегчают написание программы, особенно когда Вам приходится использовать некоторое значение несколько раз. Допустим, Вам нужно присвоить ячейкам диапазона 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

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

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

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

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

Объектные переменные объявляются и задаются немного иначе, чем остальные. Во фрагменте кода, показанном ниже, приведены инструкции объявления и присваивания.

Dim Range1 As Object

Set Range1 = Worksheets(1).Range("A1")

Обратите внимание, что объявление производится практически так же, как и для других типов, хотя в данном случае Вы можете указать конкретный тип объекта (об этом чуть позже). Теперь разберемся со второй строкой (помните, что оператор присваивания для объектной переменной всегда начинается словом Set!!!):

Set Ключевое слово для присваивания значения объектной переменной

Range1 Имя переменной

= Оператор присваивания

Worksheets(l).Range("A1") Объект, присваиваемый переменной

Рассмотрим на примере, что можно делать с переменной типа Object. Зададим с помощью переменных Object и Integer свойство Value объекта Range, которое затем отображается в информационном окне.

Sub Объектная переменная()

Dim Num2 As Long

Num2 = 100000

Dim Range1 As Object

Set Range1 = Worksheets(1).Range("A1")

Range1.Value = Num2

MsgBox Range1.Value


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: