Vba excel image свойства

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

Image – это элемент управления пользовательской формы, предназначенный для отображения на форме изображения в формате *. bmp, *. gif, *. jpg, *. wmf, *. emf, *. ico, *. dib, *. cur.

Добавить изображение на пользовательскую форму можно и с помощью элемента управления Label, но качество, в некоторых случаях, может быть неудовлетворительным. На скриншоте ниже одинаковые изображения в формате «*. jpg» добавлены с помощью элемента управления Image – слева и Label – справа:

Сравнение изображений на элементах управления Image и Label

Основное отличие элемента управления Image от элемента управления Label заключается в поведении изображения при уменьшении размеров Image и Label до размеров меньше размеров изображения:

  • изображение в элементе управления Image обрезается;
  • изображение в элементе управления Label уменьшается с нарушением пропорций, подстраиваясь под новый размер элемента управления.

Изображение в элементе управления Image будет вести себя также, как в Label, если установить свойство Image.PictureSizeMode равным fmPictureSizeModeStretch.

Свойства элемента Image

Свойство Описание
AutoSize Автоподбор размера элемента управления Image под размер изображения. True – размер автоматически подстраивается под изображение. False – размер элемента управления определяется свойствами Width и Height (по умолчанию), а поведение изображения зависит от свойства PictureSizeMode.
BackColor Цвет заливки (фона) элемента управления Image, отображается при отсутствии изображения и на полях вокруг изображения.
BackStyle Задает стиль заливки (фона) элемента управления Image: fmBackStyleTransparent (0) – фон прозрачный, fmBackStyleOpaque (1) – фон непрозрачный (по умолчанию).
BorderColor Цвет рамки элемента управления.
BorderStyle Стиль рамки элемента управления.
ControlTipText Текст всплывающей подсказки при наведении курсора на изображение.
Enabled Возможность взаимодействия пользователя с элементом управления Image. True – взаимодействие включено, False – отключено.
Height Высота элемента управления.
Left Расстояние от левого края внутренней границы пользовательской формы до левого края элемента управления.
Picture Адрес добавляемого изображения.
PictureAlignment Выравнивание изображения на элементе управления Image.
PictureSizeMode Способ изменения размеров изображения в зависимости от размеров элемента управления Image. fmPictureSizeModeClip (0) – рисунок обрезается или добавляются поля (по умолчанию), fmPictureSizeModeStretch (1) – рисунок растягивается или сжимается с нарушением пропорций, заполняя собой всю площадь элемента управления Image, fmPictureSizeModeZoom (3) – рисунок растягивается или сжимается с сохранением пропорций и добавлением компенсирующих полей.
PictureTiling Задает размещение изображения мозаичным способом по всему элементу управления. True – изображение размещается мозаичным способом, False – изображение размещается обычным способом (по умолчанию).
SpecialEffect Определяет внешний вид элемента управления.
Top Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края элемента управления.
Visible Видимость элемента управления Image. True – элемент управления отображается на пользовательской форме, False – скрыт.
Width Ширина элемента управления.

Примеры добавления изображений

Пример 1
Добавление изображения на элемент управления Image при загрузке пользовательской формы:

Private Sub UserForm_Initialize()

    Me.Image1.Picture = LoadPicture(«C:ФотографииПриродаБерезовая роща.jpg»)

End Sub

Пример 2
Добавление изображения на элемент управления Image по адресу, записанному в ячейку таблицы Excel:

Private Sub CommandButton1_Click()

    UserForm1.Image1.Picture = LoadPicture(Worksheets(«Лист1»).Cells(1, 6))

End Sub


Свойства объекта Image.

Отладка программ.

Объект
Image (рисунок)

Объект Image
служит для размещения рисунка, загружаемого из графического файла.

Свойства
объекта Image (рисунок)

Элемент
управления Image (рисунок) создается с помощью кнопки “Рисунок”. Он
используется для отображения графических файлов. В таблице перечислены
некоторые свойства, используемые для управления выводом изображения. Картинку в
элемент управления Image можно вставить только программным путем.

Практическая работа № 1
“Внедрение рисунка”

В этом примере
рассмотрим внедрение объекта Image и присваивание этому объекту определенных
свойств.

1. Создайте
экранную форму.

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

Рис. 1. Внедрение объектов Image в созданную форму

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

Присваивание
объектам свойств будем производить программно.

3. Используя
свойства объектов, разместите изображения так, как показано на примере
(см. рис. 2):

в первом случае
изображение пропорционально масштабируется так, чтобы целиком заполнить область
объекта;

во втором случае
изображение так же целиком заполняет область объекта, но масштабирование
непропорциональное;

в третьем случае
изображение размещается произвольно;

в четвертом
случае область объекта покрывается мозаикой из рисунков.

Измените фон у
объектов с подписью “Рисунок 1” и “Рисунок 3”. Во всех четырех случаях
изображение выравнивается по верхнему левому краю.

Рис. 2. Четыре примера размещения рисунка

Программа для
кнопки “Свойства объекта Image”

Private Sub
CommandButton1_Click()

Rem Размещение объектов от левого края формы
Image1.Left = 25
Image2.Left = 225
Image3.Left = 25
Image4.Left = 225

Rem Размещение объектов от верхнего края формы
Image1.Top = 30
Image2.Top = 30
Image3.Top = 170
Image4.Top = 170

Rem Ширина объектов
Image1.Width = 160
Image2.Width = 160
Image3.Width = 160
Image4.Width = 160

Rem Высота объектов
Image1.Height = 85
Image2.Height = 85
Image3.Height = 85
Image4.Height = 85

Rem Согласование размера рисунка и размера объекта
Image1.PictureSizeMode = 3
Image2.PictureSizeMode = 1
Image3.PictureSizeMode = 0
Image4.PictureSizeMode = 0

Rem Размножение рисунка по всей поверхности объекта
Image4.PictureTiling = True

Rem Изменение цвета фона у двух объектов
Image1.BackColor = RGB(100, 100, 100)
Image3.BackColor = RGB(100, 50, 100)

Rem Применение эффектов к объектам
Image1.SpecialEffect = 1
Image2.SpecialEffect = 2
Image3.SpecialEffect = 3
Image4.SpecialEffect = 6
End Sub

4. Создайте
кнопку на листе Excel для вывода формы на экран.

5. Сохраните
свою работу.

Тестирование и отладка программ

Процесс
исправления ошибок называется отладкой.

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

Отладка программ
и обработка ошибок — это не одно и то же, но они тесно связаны друг с другом.

Отладка
программ
 — это проверка и внесение исправлений в программу при ее разработке.
Отладка позволяет идентифицировать ошибки, допущенные при программировании.
Например, синтаксические ошибки в тексте программы, именах функций и переменных
или логические ошибки.

Обработка
ошибок
 — это задание реакции на ошибки, которые возникают во время
выполнения программы. Причиной ошибок могут быть как ошибки в самой программе,
так и другие обстоятельства, находящиеся вне сферы влияния программиста.
Например, отсутствие файлов, к которым происходит программное обращение, отказ
аппаратных средств или неправильные действия пользователя.

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

Среда разработки
программ на VBA предоставляет пользователю современные удобные средства отладки
программы.

Предположим, что
уже написан код вашей процедуры. Следующий этап в создании любой процедуры —
тестирование написанного кода.

Тестирование — это процесс
выполнения процедуры и исследование всех аспектов ее работы.

Цель
тестирования — проверить правильность результатов выполнения процедуры и ее
реакцию на разнообразные действия пользователя.

Если во время
работы процедуры получены неверные результаты вычислений, непредвиденная
реакция на те или иные действия пользователя, либо вообще произошла остановка
выполнения, то это говорит о том, что в тексте программы имеются ошибки.

Все возможные ошибки можно
разделить на три вида:

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

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

3. Логические
ошибки
 труднее всего заметить и устранить. Логические ошибки не
приводят к прекращению компиляции или выполнения. Однако они являются причиной
того, что программа не выдает желаемых результатов. Ошибки данного типа
идентифицируются путем тщательной проверки с помощью средств отладки VBA.

Компиляция — это процесс
преобразования программы, написанной на алгоритмическом языке, в язык машинных
кодов. Если в программе есть

синтаксические
ошибки, то процесс компиляции прекращается, строки с ошибкой закрашиваются
желтым цветом и выдается соответствующее сообщение. Для продолжения выполнения
программы необходимо исправить ошибку и нажать кнопку “Continue”► на
стандартной панели редактора VBA. Или прервать выполнение программы, нажав на
кнопку “Reset” , исправить ошибку в
программе, а затем заново запустить ее.

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

Рис. 3. Редактор Visual Basic немедленно реагирует на синтаксические ошибки

Чтобы
исследовать процесс отладки на практике, нам необходима какая-нибудь программа,
содержащая ошибку. В Практической работе № 5–2 “Отладка программ”
рассматривается устранение ошибки при написании процедуры для объекта Image.

Практическая работа №2
“Отладка программ”

1. Откройте
новую рабочую книгу.

2. Подготовьте
экранную форму, представленную на рис. 4. Внедрите в созданную
форму с помощью панели Toolbox объект Image Описание: http://inf.1september.ru/2006/05/13-0.gif.
Рисунок лучше внедрить небольшой.

ВНИМАНИЕ!!!
Правильно описывайте путь к графическим файлам, которые внедряются программно в
форму.

Рис. 4. Форма для выполнения задания

3. Создайте новую процедуру для кнопки “Измени
надпись”.

4. Введите текст процедуры. В тексте намеренно сделаем
ошибку в свойстве Size (напишем Sie):

Private
Sub CommandButton1_Click()
Label1.Caption = «
Флаг России«
UserForm2.Image1.Picture = LoadPicture(«C:FlgRUS.gif»)
Label1.Font.Sie = 14
End Sub

5. Вернемся в редакторе к созданной форме и выведем
форму для работы, нажав клавишу 
.

6. После
появления формы на экране нажмем на кнопку “Измени надпись”. Так как в
программе заложена ошибка, появится окно сообщения об ошибке (рис. 5)
и мы попадем в редактор VBA.

Рис. 5. Окно
редактирования кода с окном сообщения об ошибке

7. Нажмите на кнопку “Debug” (отладка), и отладчик
укажет, в какой строке у вас ошибка (рис. 6).

Рис. 6. Окно редактирования кода с указанной ошибкой

8. Исправьте ошибку и нажмите на стандартной панели
инструментов на кнопку Описание: http://inf.1september.ru/2006/05/16-0.gif(“Продолжение”).

Тексты программ для кнопок CommandButton2,
CommandButton3, CommandButton4, CommandButton5 представлены в таблице:

Объект

Программа

CommandButton2 (сдвинь рисунок вправо)

Private
Sub CommandButton2_Click() Image1.PictureAlignment = 4 End Sub

CommandButton4 (измени цвет фона и формы)

Private
Sub CommandButton4_Click()

Image1.BackColor
= &HFF80FF

UserForm2.BackColor
= RGB(64, 0, 0)

End
Sub

CommandButton3 (мозаика)

Private
Sub CommandButton3_Click()

Image1.PictureTiling
= True

End Sub

CommandButton5 (измени рисунок флага и надпись)

Private
Sub CommandButton5_Click()

Label1.Caption
= «
Флаг Англии«

Label1.Font.Size
= 14

Label1.Font.Name
= «Arial Black»

UserForm2.Image1.Picture
=

LoadPicture(«C:FlgEng.gif»)

End Sub

9. После щелчка по кнопке “Измени надпись” форма
приобретет вид, представленный на
 рис. 7.

Рис. 7. Работа кнопки “Измени надпись”

10.
После щелчка по кнопке “Сдвинь рисунок вправо” форма приобретет вид,
представленный на
 рис. 8.

Рис. 8. Работа кнопки “Сдвинь рисунок вправо”

11.
После щелчка по кнопке “Мозаика” форма приобретет вид, представленный на
 рис. 9.

Рис. 9. Работа кнопки “Мозаика”

12.
После щелчка по кнопке “Смена флага и надписи” форма приобретет вид,
представленный на
 рис. 10.

Рис. 10. Работа кнопки “Смена флага и надписи”

Можно предусмотреть
разные комбинации рисунков и надписей.

13.
Сохраните свою работу.

Практическая работа № 3  “Работа с рисунком”

1. В редакторе MS Paint создайте рисунки. Например, такие, как показано на рис.11.

Рис. 11. Примеры рисунков

2. Сохраните рисунки в своей папке или на диске C:цв1.bmp, C:цв2.bmp,
C:цв3.bmp.

3. В Excel создайте экранную форму и назовите ее “Цветок”. Внедрите в
созданную форму рисунок и четыре кнопки. Кнопки назовите “Сцена1”, “Сцена2”,
“Сцена3”, “ВЫХОД”. Используя свойства объектов, отформатируйте созданную форму.
Форма может иметь вид, представленный на
 рис. 12.

Рис. 12. Примерный вид формы

4. Тексты программ для кнопок представлены в таблице:

Объект

Программа

CommandButton1

Вставить
рисунок

C:цв1.bmp

Private Sub CommandButton1_Click()

UserForm1.Image1.Picture
=

LoadPicture(«C:цв1.bmp»)

End Sub

CommandButton2

Вставить рисунок

C:цв2.bmp

Private Sub CommandButton2_Click()

UserForm1.Image1.Picture =

LoadPicture(«C:цв2.bmp»)

End Sub

CommandButton3

Вставить рисунок

C:цв3.bmp

Private Sub CommandButton3_Click()

UserForm1.Image1.Picture =

LoadPicture(«C:цв3.bmp»)

End Sub

CommandButton4

Закрыть форму

CommandButton4 Private Sub
CommandButton4_Click()

UserForm1.Hide

End Sub

Обратите внимание на описание пути к файлам, которые внедряются программно
в форму.

5. Запишите процедуру вызова данной формы и тоже назовите ее “Цветок”:

Public Sub Цветок()

UserForm1.Show

End Sub

6. На поле листа Excel вставьте рисунок и назначьте ему макрос “Цветок”.
Получится кнопка-рисунок (см.
 рис. 13).

Рис. 13. Назначение макроса для кнопки-рисунка

7. Проверьте работоспособность кнопки-рисунка. При нажатии на нее должна
появляться форма “Цветок”. При нажатии на кнопки: “Сцена1”, “Сцена2” и “Сцена3”
рисунок в форме меняется (см.
 рис. 14).
При нажатии на кнопку “ВЫХОД” форма скрывается с листа.

Рис. 14. Изменение рисунка в форме

8. Сохраните вашу работу.

Литература

1.      Газета
«Информатика» Издательского дома «Первое сентября» № 5 2006
г.

На чтение 7 мин Просмотров 291 Опубликовано 06.02.2014

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

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

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

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

Sub ImageModule()
    ImageForm.Show
EndSub

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

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

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

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

' Глобальная переменная
Dim i As Integer
' Процедура получения доступа к каталогу с файлами
Private Sub GetFolders()
Dim FSO As Object, Drive As Object, GetFiles As Object
Dim j As Integer
    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
    End If
 
    ' Если значение i меньше количества файлов
    If i < 1 Then
        i = i + 1
    End If
 
    ' Начинаем перебор файлов
    For Each OFiles In GetFiles
        If j = i Then
            Image1.Picture = LoadPicture(OFiles.Path)
            Label1.Caption = OFiles.Path
        End If
        j = j + 1
    Next
End Sub
Private Sub CommandButton1_Click()
    i = i - 1
    Call GetFolders
End Sub
 
Private Sub CommandButton2_Click()                                                                                                                                                                                        ' VBA Image
    i = i + 1
    Call GetFolders
End Sub
Private Sub UserForm_Initialize()
    CommandButton1.Caption = "Назад"
    CommandButton2.Caption = "Вперед"
    Label1.Caption = "Путь к рисунку"
    ImageForm.Caption = "Работа с объектом VBA Image"
End Sub

В самом начале мы объявляем переменную i, которая является глобальной. Она нужна нам как счетчик, и будет хранить количество нажатий на кнопки. Процедура GetFolders отвечает за доступ к каталогу C:WINDOWSWebWallpaper, в котором хранятся файлы-рисунки, используемые операционной системой для обоев. В вашем случае, путь может отличаться. В цикле for each происходит обработка всех файлов в заданной папке, там же происходит проверка условия – мы сравниваем значение переменной i и переменной j (данная переменная хранит номер обрабатываемого файла). По сути, условие нужно для того, что бы мы могли пролистывать рисунки из папки.

Макрос VBA - отображение изображения

Процедуры CommandButton1_Click и CommandButton2_Click отвечают за обработку нажатий на кнопки, расположенные на форме. В обеих процедурах происходит вызов процедуры GetFolders(),  разница лишь в том, что в CommandButton1_Click происходит уменьшение значения i, а в CommandButton2_Click – происходит увеличение значения переменной i.

Процедура UserForm_Initialize выполняется сразу при запуске формы, тут мы прописали заголовок формы, названия кнопок и начальное значение для метки (Label).

В итоге, при запуске макроса перед нами появится форма, при нажатии на кнопки “Вперед” и “Назад” происходит пролистывание рисунков из заданной папки, сам рисунок будет отображаться на поверхности формы (компонент VBA Image). Метка будет хранить путь к рисунку.

Стоит обратить внимание, что я не редактировал параметры отображения (размеры), при желании, вы можете отредактировать код по собственному усмотрению.

Элемент управления Image

августа 31, 2015 admin

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

Рис. 1 Элемент управления Image на панели ToolBox

Рис. 2 Элемент управления Image на форме

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

Что бы показать пример использования компонента VBA Image добавим в проект новую форму (меню InsertUserForm), назовем ее ImageForm (свойство Name), также добавим в проект новый модуль и назовем его ImageModule (свойство Name).

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

Sub ImageModule()

ImageForm.Show

End Sub

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

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

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

‘ Глобальная переменная

Dim i As Integer

‘ Процедура получения доступа к каталогу с файлами

Private Sub GetFolders()

Dim FSO As Object,

Drive As Object, GetFiles As Object

Dim j As Integer

j = 1

‘ формируем ссылку на объект FileSystemObject

Set FSO = CreateObject(“Scripting.FileSystemObject”)

‘ получаем доступ к папке с рисунками

Set Drive = FSO.GetFolder(“C:WINDOWSPictures”)

‘ VBA Image

‘ фрмируем коллекцию каталогов

Set GetFiles = Drive.Files

‘ Если значение i больше количества файлов

If i > GetFiles.Count Then

i = i – 1

End If

‘ Если значение i меньше количества файлов

If i < 1 Then

i = i + 1

End If

‘ Начинаем перебор файлов

For Each OFiles In GetFiles

If j = i Then

Image1.Picture = LoadPicture(OFiles.Path)

Label1.Caption = OFiles.Path

End If

j = j + 1

Next

End

Sub Private Sub CommandButton1_Click()

i = i – 1

Call GetFolders

End Sub

Private Sub CommandButton2_Click

‘ VBA Image

i = i + 1

Call GetFolders

End Sub

Private Sub UserForm_Initialize()

CommandButton1.Caption = “Назад”

CommandButton2.Caption = “Вперед”

Label1.Caption = “Путь к рисунку”

ImageForm.Caption = “Работа с объектом VBA Image”

End Sub

В самом начале мы объявляем переменную i, которая является глобальной. Она нужна нам как счетчик, и будет хранить количество нажатий на кнопки. Процедура GetFolders отвечает за доступ к каталогу C:WINDOWSPictures, в котором хранятся файлы-рисунки, используемые операционной системой для обоев. В вашем случае, путь может отличаться. В цикле for each происходит обработка всех файлов в заданной папке, там же происходит проверка условия – мы сравниваем значение переменной i и переменной j (данная переменная хранит номер обрабатываемого файла). По сути, условие нужно для того, что бы мы могли пролистывать рисунки из папки.

Процедуры CommandButton1_Click и CommandButton2_Click отвечают за обработку нажатий на кнопки, расположенные на форме. В обеих процедурах происходит вызов процедуры GetFolders(),  разница лишь в том, что в CommandButton1_Click происходит уменьшение значения i, а в CommandButton2_Click – происходит увеличение значения переменной i.

Процедура UserForm_Initialize выполняется сразу при запуске формы, тут мы прописали заголовок формы, названия кнопок и начальное значение для метки (Label).

В итоге, при запуске макроса перед нами появится форма, при нажатии на кнопки “Вперед” и “Назад” происходит пролистывание рисунков из заданной папки, сам рисунок будет отображаться на поверхности формы (компонент VBA Image). Метка будет хранить путь к рисунку.

Skip to content

Excel VBA UserForm Image

  • Excel VBA UserForm CheckBox

Image is one of the UserForm control. You can select and drag Image on the UserForm. You can select and drag Image on the UserForm. Image control embeds a picture such as a jpg, jpeg, gif, png, bitmap, etc. It can be used on the UserForm. You can see how it works and more details about Image Control.

  • Load VBA Image_Control on the UserForm
  • Add Dynamic Image_Control on the UserForm Using VBA
  • Delete Image_Control on the UserForm using VBA

VBA Image_Control on the UserForm

Please find more details about VBA ActiveX Image_Control on the UserForm.

    1. Go To Developer Tab and then click Visual Basic from the Code or Press Alt+F11.
    2. Go To Insert Menu, Click UserForm. Please find the screenshot for the same.

Excel VBA UserForm CheckBox

    1. Drag the Image_control on the Userform from the Toolbox. Please find the screenshot for the same.

Image Excel VBA ActiveX Control3

    1. Click on the image_control properties.
    2. On the left side find ‘Picture’ from the available properties of the control.
    3. On the right side click on that, and select image from the source.
    4. On the left side find ‘PictureSizeMode’ from the available properties of the control.
    5. On the right side, select ‘1 – frmPictureSiseModeStretch’ from the available list.
    6. Now, Click ‘F5’ to see the output.
    7. Now, you can see the following output as shown below in the screen shot.

Image Excel VBA ActiveX Control6

Add dynamic Image_Control on the UserForm using VBA

Please find the following steps and example code, it will show you how to add dynamic Image_control on the userform.

    1. Add Image and CommandButton on the userform from the toolbox.
    2. Right click on the CommandButton, click properties
    3. Change the CommandButton caption to ‘Create_Image ’
    4. Double click on the CommandButton
    5. Now, it shows the following code.
Private Sub CommandButton1_Click()
 
End Sub
    1. Call the below procedure named ‘Add_Dynamic_Image ’ and find the below procedure to run.
Private Sub CommandButton1_Click()
    Call Add_Dynamic_Image 
End Sub

Procedure to call in the CommandButton:

Sub Add_Dynamic_Image()
    'Add Dynamic Image and assign it to object 'Img'
    Set Img = UserForm2.Controls.Add("Forms.Image.1")
    
    With Img
        'Load Picture to Image Control
        .Picture = LoadPicture("C:Image  Excel ActiveX Control Object.jpg")  ‘Change Image Path here
        
        'Align the Picture Size
        .PictureSizeMode = fmPictureSizeModeStretch
        
        'Image Position
        .Left = 50
        .Top = 10
    End With
End Sub
    1. Now, click F5 to run the macro, click ‘Create_Image ’ button to see the result.
    2. You can see the created dynamic Image_control which is shown in the following screen shot.

output:

Image Excel VBA ActiveX Control1

Delete Image_Control on the UserForm using VBA

Please find the below code, it will show you how to delete or remove the control on the UserForm. In the below example, its deleting the Image named ‘New Image’ which is on the UserForm named ‘UserForm4’. We can use Remove method to delete the controls which are created during run time. Controls which are created during design time cannot be deleted using this method. Please find the below example and screen shots for better understand.

Code 1: Adding control During Run Time

Private Sub CommandButton1_Click()
    'We can use Add method to add the new controls on run time
    Set lblBtn = Me.Controls.Add("Forms.Image.1")
    With lblBtn
        .Top = 20
        .Left = 40
        .Name = "lblNew1"
    End With
    MsgBox "New Image Control Added"
End Sub

Please find the below screen shot for your reference for the above macro and its output.
When we click on Add Command Button:

Image Excel VBA ActiveX Control7

Code 1: Deleting or Removing Image_control which is created during run time.

Private Sub CommandButton2_Click()
    'We can use Remove method to delete the controls which are created during run time
    'Note: Controls which are created on design time cannot be deleted using this method
    Me.Controls.Remove ("lblNew1")
    MsgBox "Image Control Deleted"
End Sub

Please find the below screen shot for your reference for the above macro and its output.
When we click on Delete Command Button:

Image Excel VBA ActiveX Control8

Effortlessly Manage Your Projects and Resources
120+ Professional Project Management Templates!

A Powerful & Multi-purpose Templates for project management. Now seamlessly manage your projects, tasks, meetings, presentations, teams, customers, stakeholders and time. This page describes all the amazing new features and options that come with our premium templates.

Save Up to 85% LIMITED TIME OFFER
Excel VBA Project Management Templates
All-in-One Pack
120+ Project Management Templates
Essential Pack
50+ Project Management Templates

Excel Pack
50+ Excel PM Templates

PowerPoint Pack
50+ Excel PM Templates

MS Word Pack
25+ Word PM Templates

Ultimate Project Management Template

Ultimate Resource Management Template

Project Portfolio Management Templates
      • In this topic:
  • VBA Image_Control on the UserForm
  • Add dynamic Image_Control on the UserForm using VBA
      • Procedure to call in the CommandButton:
  • Delete Image_Control on the UserForm using VBA

VBA Reference

Effortlessly
Manage Your Projects

120+ Project Management Templates

Seamlessly manage your projects with our powerful & multi-purpose templates for project management.

120+ PM Templates Includes:
By PNRaoLast Updated: March 2, 2023

Effectively Manage Your
Projects and  Resources

With Our Professional and Premium Project Management Templates!

ANALYSISTABS.COM provides free and premium project management tools, templates and dashboards for effectively managing the projects and analyzing the data.

We’re a crew of professionals expertise in Excel VBA, Business Analysis, Project Management. We’re Sharing our map to Project success with innovative tools, templates, tutorials and tips.

Project Management
Excel VBA

Download Free Excel 2007, 2010, 2013 Add-in for Creating Innovative Dashboards, Tools for Data Mining, Analysis, Visualization. Learn VBA for MS Excel, Word, PowerPoint, Access, Outlook to develop applications for retail, insurance, banking, finance, telecom, healthcare domains.

Analysistabs Logo

Page load link

VBA Projects With Source Code

3 Realtime VBA Projects
with Source Code!

Take Your Projects To The Next Level By Exploring Our Professional Projects

Go to Top

Like this post? Please share to your friends:
  • Vba excel if отрицание
  • Vba excel if with or without you
  • Vba excel if then else несколько условий
  • Vba excel if target address
  • Vba excel if sheet protected