Curso Excel VBA y Macros – Cap. 60 – Formularios – 3 maneras de mostrar imágenes
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
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.