В программировании объект - это сущность, обладающая данными (свойствами) и функциональностью (методами). Например, визуализируйте объект как автомобиль с его характеристиками (цвет, модель и т.д.) и возможностями (завести двигатель, остановиться и так далее).
Переменная, в свою очередь, является контейнером, который может содержать данные. В 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), а не каждое отдельное обращение.
- Повышена эффективность: Использование объектной переменной улучшает производительность, так как она предотвращает многократное поиск ячейки в таблице.