В предыдущем обзоре мы рассмотрели один из способов отображения картинки по наименованию.
В продолжение темы предлагаем еще один (более оптимальный способ) решения данной задачи.
📢 Файл с примером размещен в конце статьи 🔽
▶️ Исходные данные
В данном случае используется элемент ActiveX, который позволяет уменьшить размер файлов и улучшить производительность, так как рисунок преобразуется в нужный вид без необходимости хранить полноразмерные образцы картинок.
▶️ Пример кода
Код представляет собой обработчик события SelectionChange:
Когда пользователь выбирает ячейку на листе, код проверяет, принадлежит ячейка определенному диапазону "Worksheet_Selecti":
Если активная ячейка находится в этом диапазоне, будет получено изображение из элемента управления Image с именем "ImageX", где X - номер строки активной ячейки минус 5 (т.к именованный диапазон "Worksheet_Selecti" начинается с шестой строки)
Если изображение найдено, оно присваивается переменной "Picture". Далее, изображение на элементе управления Image с именем "изображение" обновляется, используя значение, полученное из переменной "Picture".
При использовании элемента управления изображения (Image) вместо полноразмерных образцов картинок, файлы становятся более легкими и не занимают много места, что может улучшить производительность при работе с большим количеством изображений на листе.
🔔 Важно:
- Убедитесь, что на листе существует элемент управления ActiveX с именем, которое указано в коде (в данном случае "изображение"):
- Убедитесь, что объекты именами "ImageX" существуют на листе с соответствующими номерами строк (например, "Image1", "Image2" и т.д.):
▶️ Как улучшить
Добавить гибкости данному примеру поможет сводная таблица и добавления среза:
➡️ Теперь отображение картинки будет происходить как при клике на ячейку, так и при выборе посредством среза.