Класс Image — Работа с изображениями в VBA

Класс Image — Работа с изображениями в VBA Макросы на VBA

Элемент управления VBA Image отвечает за добавление на поверхность формы изображения. Сам компонент довольно просто, и все его свойства интуитивно понятны, поэтому, в этой статье я сосредоточусь только на написании кода.

У самого объекта Image VBA есть свойство Picture, которое хранит доступ к рисунку. Для загрузки изображения мы будем использовать функцию VBA LoadPicture, который в качестве параметра мы будем передавать путь к изображению.

Что бы показать пример использования компонента VBA Image проделаем следующие действия. Сначала войдите в редактор VBA (для быстроты, можно использовать комбинацию клавиш Alt + F11). Добавим в проект новую форму (меню InsertUserForm), назовем ее ImageForm (свойство Name). Также добавим в проект новый модуль и назовем его ImageModule (свойство Name).

В редакторе кода для модуля пропишем:

Sub ImageModule()    ImageForm.ShowEndSub

Тут мы прописываем процедуру ImageModule, которая предоставляет наш модуль. В теле процедуры мы говорим, что при вызове текущего макроса нужно показать форму с именем ImageForm.

Теперь надо отформатировать внешний вид формы. Добавим на поверхность компонент vba Image, под ним разместим компонент Label, а в самом низу разместим две кнопки (компонент CommandButton). Внешний вид формы можно увидеть на рисунке ниже.

Внешний вид vba формы

Теперь настал самый интересный момент в плане программирования. В редакторе кода для формы пропишите следующий код:

' Глобальная переменнаяDim i AsInteger' Процедура получения доступа к каталогу с файламиPrivateSub GetFolders()Dim FSO AsObject, Drive AsObject, GetFiles AsObjectDim j AsInteger    j = 1    ' формируем ссылку на объект FileSystemObject    Set FSO = CreateObject("Scripting.FileSystemObject")    ' получаем доступ к папке с рисунками    Set Drive = FSO.GetFolder("C:WINDOWSWebWallpaper")                                                                                                                                        ' VBA Image    ' фрмируем коллекцию каталогов    Set GetFiles = Drive.Files     ' Если значение i больше количества файлов    If i > GetFiles.Count Then        i = i - 1    EndIf     ' Если значение i меньше количества файлов    If i <1 Then

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий