Найти в Дзене
VBA Excel с нуля

VBA Excel № 50. Объектные переменные в VBA.

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

Что такое объектные переменные?

Объектная переменная - это переменная, которая представляет целый объект, такой как диапазон (Range) или рабочий лист (Worksheet) в приложении Microsoft Excel. Объектные переменные обладают особыми преимуществами:

1. Упрощение программы: Они позволяют более четко и лаконично обращаться к объектам и их свойствам, что делает код более читаемым и поддерживаемым.
2. Ускорение выполнения программы: Использование объектных переменных может повысить производительность, особенно в случаях, когда один объект часто используется в разных частях кода.

Объектные переменные объявляются так же, как и обычные переменные, с использованием ключевого слова Dim или Public. Например, чтобы объявить переменную InputArea как объект типа Range, вы можете использовать следующий синтаксис:

Dim InputArea As Range

Скриншот с моего ноутбука
Скриншот с моего ноутбука

Присваивание объекта переменной выполняется с использованием ключевого слова Set. Например:

Set InputArea = Range("C5:E5")

Скриншот с моего ноутбука
Скриншот с моего ноутбука

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

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

Процедура без объектных переменных

Sub БезОбъектныхПеременных()

Worksheets("Лист1").Range("A1").Value = 1249

Worksheets("Лист1").Range("A1").Font.Bold = True

Worksheets("Лист1").Range("A1").Font.Italic = True

Worksheets("Лист1").Range("A1").Font.Size = 14

Worksheets("Лист1").Range("A1").Font.Name = "Cambria"

End Sub

Скриншот с моего ноутбука
Скриншот с моего ноутбука

Эта процедура вводит значение «1249» в ячейку A1 листа Лист1 активной рабочей книги, а затем применяет определенное форматирование шрифта и размера. Как видите, код довольно громоздкий и менее читаемый.

А теперь как выглядит процедура с использованием объектных переменных:

Sub СОбъектнымиПеременными()

Dim MyCell As Range

Set MyCell = Worksheets("Лист1").Range("A1")

MyCell.Value = 1249

MyCell.Font.Bold = True

MyCell.Font.Italic = True

MyCell.Font.Size = 14

MyCell.Font.Name = "Cambria"

End Sub

Скриншот с моего ноутбука
Скриншот с моего ноутбука

В этой процедуре мы объявляем переменную MyCell как объект типа Range и присваиваем ей объект. Затем мы можем использовать переменную MyCell для обращения к объекту и его свойствам. Это делает код гораздо более читаемым и удобным для поддержки.

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

В следующей статье рассмотрим пользовательские типы данных в VBA.