Curso Excel VBA y Macros – Cap. 60 – Formularios – 3 maneras de mostrar imágenes

<<CURSO COMPLETO EN YOUTUBE>>

En este video y tutorial vamos a ver cómo usar el Control ActiveX Imagen para mostrar imágenes en Formularios. Veremos cómo insertar imágenes desde la ventana Propiedad y también insertar imágenes dinámicamente tomadas desde una carpeta. Veremos 3 métodos:

  • Insertar una imagen desde la ventana Propiedades y que la imagen quede en el archivo.
  • Insertar imagen desde una carpeta y dejar las imágenes fuera del archivo.
  • Mostrar imágenes dependiendo el valor de un ComboBox.
  • Propiedad BorderStyle y PictureSizeMode para definir borde y ajuste de la imagen.

Ver video Capítulo 60 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Insertar imágenes desde la ventana propiedades

Cuando estamos diseñando un Formulario y decidimos insertar imágenes, una opción viable es hacerlo desde el VBE o IDE de Visual Basic para Aplicaciones, usando la ventana de Propiedades. La ventaja de usar esta opción es que la imagen se quedará insertada en el Formulario y cuando traslademos el archivo a otra PC, el archivo se irá incrustado.

Estando en el VBE, insertamos un Formulario y dentro de él un control Image. Elegimos el Control ActiveX y nos vamos la parte izquierda, a la propiedad Picture. Damos clic en el botón de los 3 puntos y elegimos la imagen.

Figura 1. Insertar imágenes en UserForm usando la propiedad Picture.

Insertar imágenes desde una carpeta de manera dinámica

En el anterior ejemplo, dejábamos la imagen insertada en el Formulario. En este ejemplo haremos que, mediante un código VBA se insertará una imagen tomada directamente desde una carpeta de nuestra PC.

Haremos uso de la propiedad PictureSizeMode con el parámetro fmPictureSizeModeStretch para que las imágenes queden ajustadas al tamaño de la imagen.

Figura 2. Insertar imágenes en Formulario usando la propiedad Picture y LoadPicture.

Private Sub CommandButton1_Click()

With Me.Image2

    .BorderStyle = fmBorderStyleNone
    .PictureSizeMode = fmPictureSizeModeStretch
    .Picture = LoadPicture("C:\Users\Sergio Campos\Documents\Curso\Imágenes\image_thumb1.jpg")

End With

End Sub

Insertar imágenes en Formulario dependiendo el valor de un ComboBox

En este ejemplo insertaremos imágenes en un UserForm mientras va cambiando el valor de un Cuadro combinado. Usaremos el evento Initialize para cargar valores en el Combo, y luego el evento Change del ComboBox para asignar una imagen al Control Image cada vez que se seleccione un valor diferente.

Figura 3. Insertar imágenes en Formulario dependiendo el valor de un ComboBox.

Option Explicit

'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'http://blogs.itpro.es/exceleinfo

Private Sub UserForm_Initialize()

With Me.ComboBox1

    .AddItem "cap1.jpg"
    .AddItem "cap2.jpg"
    .AddItem "cap3.jpg"
    .AddItem "cap4.jpg"
    .AddItem "cap5.jpg"

End With

End Sub

Private Sub ComboBox1_Change()

Dim Ruta As String
Dim RutaCompleta As String

Ruta = ThisWorkbook.Path
RutaCompleta = Ruta & "\imágenes\" & Me.ComboBox1.Value

With Me.Image3
    
    .PictureSizeMode = fmPictureSizeModeStretch
    '.PictureSizeMode = fmPictureSizeModeClip
    '.PictureSizeMode = fmPictureSizeModeZoom
    .BorderStyle = fmBorderStyleNone
    .Picture = LoadPicture(RutaCompleta)

End With

End Sub

Descargar archivo de ejemplo

060 – Forrmularios Control Imagen – EXCELeINFO.zip

<<CURSO COMPLETO EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

You may also like...