End Sub. Неявное описание переменных и тип Variant

Неявное описание переменных и тип Variant

End Sub

End Sub

Преимущества объектных переменных

Как уже было сказано, объектные переменные заметно сокращают время, необходимое для написания кода, облегчают его чтение и повышают производительность. Сокращение времени достигается за счет замены длинного обращения к объекту одним словом (именем переменной). Например, в следующей программе задаются свойства Value, RowHeight и ColumnWidth объекта Range; значение свойства Value отображается в информационном окне; а затем вызывается метод ClearContents. В первом фрагменте для обращения к свойствам и методам объекта Range указан путь к нему, начиная от объекта Worksheet.

Sub RangeObject()

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

Worksheets(1).Range("A1").RowHeight = 50

Worksheets(1).Range("A1").ColumnWidth = 50

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

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

А теперь перепишем эту программу, используя для ссылки на объект Range переменную.

Sub RangeObjectVariable()

Dim Range1 As Range

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

Range1.Value = 25

Range1.RowHeight = 50

Range1.ColumnWidth =50

MsgBox Range1.Value

Range1.ClearContents

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

Аргументируя ускорение программы, мы можем обратиться к расчетам, которые уже использовали ранее. В программе RangeObjectVariable шесть обращений к объектам (определяется по числу точек), в программе RangeObject их десять. Поскольку на каждое обращение затрачивается приблизительно равное время, вторая программа работает почти в два раза быстрее первой. Здесь разница незаметна, но она станет очевидной, например, в сложных циклах, выполняемых сотни раз.

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

Sub С_ОбъявлениемПеременной()

Dim String1 As String

String1 = "Привет!"

MsgBox String1

Если Вы удалите из этой программы вторую строку, результат ее действия не изменится:

Sub БезОбъявленияПеременной()

String1 = "Привет!"

MsgBox String1


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



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