Insertar imágenes en Excel usando macros
Qué mejor manera de aprender macros que usando ejemplos prácticos.
En este artículo vamos a aprender a insertar imágenes en Excel usando macros. Las imágenes a insertar deben estar en la misma carpeta o ruta donde está el archivo que recibirá las imágenes.
El archivo donde se insertarán las imágenes
Tenemos un archivo de Excel donde en la columna A tenemos varios nombres. Para este ejemplo tendremos nombre de colores.
Figura 1. Se insertarán las imágenes que coincidan con los nombres de la columna A.
Ver video Insertar imágenes en Excel usando macros
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
Ubicación de las imágenes
Ya vimos en la Figura 1 que los nombres de los archivos vienen en la columna A. Dichos nombres deben coincidir con los nombres de los archivos alojados en la misma carpeta donde se encuentra el archivo, pero deben estar en la carpeta llamada img.
Por ejemplo, si el archivo se encuentra en la carpeta C:\Users\scampos\Desktop\ las imágenes deben estar en la ruta C:\Users\scampos\Desktop\img, es decir en la carpeta img.
Figura 2. En esta ruta pondremos las imágenes a insertar.
Entendiendo la macro
A continuación te pongo el código de la macro con los comentarios en cada línea para comprender qué es lo que hace:
'EXCELeINFO 'MVP Sergio Alejandro Campos 'http://www.exceleinfo.com 'https://www.youtube.com/user/sergioacamposh Sub InsertarImagenes() 'Declaramos variables Dim RutaActual As String Dim RangoImagen As Range Dim shp As Object 'En caso de error... On Error Resume Next For Each shp In ActiveSheet.Shapes If shp.Name = "Picture 56" Then Else shp.Delete End If Next 'La variable RutaActual guardará la ruta completa donde está el archivo RutaActual = ThisWorkbook.Path 'Desactivamos la actualización de pantalla Application.ScreenUpdating = False 'Elegimos la celda B3 ActiveSheet.Range("B3").Select 'Recorremos cada fila mientras haya datos en la columna A Do While ActiveCell.Offset(0, -1).Value <> Empty Set RangoImagen = ActiveCell.Offset(0, -1) 'Insertamos la imagen que corresponda al nombre de la columna A ActiveSheet.Pictures.Insert (RutaActual & "\img\" & RangoImagen.Value & ".PNG") 'Activamos la siguiente fila ActiveCell.Offset(1, 0).Select Loop Range("A2").Select Application.ScreenUpdating = True On Error GoTo 0 End Sub
La siguiente imagen muestra la macro en acción:
Figura 3. Insertar imágenes en Excel.