993 подписчика

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

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

В программировании объект - это сущность, обладающая данными (свойствами) и функциональностью (методами). Например, визуализируйте объект как автомобиль с его характеристиками (цвет, модель и т.д.) и возможностями (завести двигатель, остановиться и так далее).

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

Объектные переменные хранят ссылку на объект. Они предоставляют доступ к свойствам и методам объектов. Давайте проясним на примере.

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

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

Давайте разберем каждое действие в этом коде:

1. Изменение значения ячейки: В данной строке происходит присвоение нового значения "Новое значение" ячейке "A1" на "Лист1". Это означает, что содержимое ячейки будет заменено на указанный текст.

2. Изменение свойств шрифта: В следующих трех строках изменяются свойства шрифта ячейки "A1" на "Лист1". Font.Bold = True делает текст жирным, Font.Size = 14 устанавливает размер шрифта 14, а Font.Color = RGB(255, 0, 0) устанавливает цвет шрифта красным (RGB код цвета).

3. Изменение заливки: В последней строке изменяется цвет заливки ячейки "A1" на "Лист1". Interior.Color = RGB(0, 255, 0) задает зеленый цвет заливки (RGB код цвета).

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

Этот код выполняет последовательность действий для ячейки "A1" на "Лист1" без использования объектной переменной. Однако, как мы обсудили ранее, использование объектной переменной может значительно улучшить структуру и поддерживаемость кода.

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

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

Давайте разберем каждое действие в этом коде:

1. Объявление переменной: В данной строке объявляется переменная Ячейка типа Range Это позволяет нам создать контейнер для объекта типа "диапазон ячеек".

2. Присвоение объекта переменной: Здесь с помощью оператора Set мы связываем переменную Ячейка с объектом диапазона ячеек "A1" на листе "Лист1". Теперь переменная Ячейка "указывает" на этот диапазон ячеек.

3. Изменение значения ячейки: Теперь мы можем использовать переменную Ячейка для изменения значения ячейки. Ячейка.Value = "Новое значение" устанавливает новое значение для ячейки, на которую указывает переменная.

4. Изменение свойств шрифта: В следующих трех строках мы используем переменную Ячейка для доступа к свойствам шрифта этой ячейки. Таким образом, Ячейка.Font.Bold = True делает текст жирным, Ячейка.Font.Size = 14 устанавливает размер шрифта 14, а Ячейка.Font.Color = RGB(255, 0, 0) устанавливает цвет шрифта красным (RGB код цвета).

5. Изменение заливки: В последней строке мы используем переменную Ячейка для изменения цвета заливки. Ячейка.Interior.Color = RGB(0, 255, 0) задает зеленый цвет заливки (RGB код цвета).

Этот код демонстрирует, как объектная переменная Ячейка позволяет сосредотачивать все изменения в одной переменной и упрощает доступ к свойствам и методам ячейки "A1" на "Лист1".

Преимущества процедуры с использованием объектной переменной:

  • Читаемость и поддерживаемость: В процедуре с объектной переменной (ИзменитьЯчейкуСОбъектнойПеременной) код становится более читаемым и понятным. Вы видите, что все изменения применяются к одной ячейке, что делает код более структурированным.
  • Нет повторений: В процедуре без объектной переменной вы многократно повторяете обращение к одной и той же ячейке. В процедуре с объектной переменной вы это делаете только один раз, что уменьшает вероятность ошибок и облегчает внесение изменений.
  • Имеется гибкость: Если вам нужно изменить ячейку, к которой применяются все эти действия, вы изменяете только одну строку кода (инициализацию переменной Cell), а не каждое отдельное обращение.
  • Повышена эффективность: Использование объектной переменной улучшает производительность, так как она предотвращает многократное поиск ячейки в таблице.