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.

 Se insertarán las imágenes que coincidan con los nombres de la columna A

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.

En esta ruta pondremos las imágenes a insertar.

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:

Insertar imágenes en Excel

Figura 3. Insertar imágenes en Excel.

Descarga el archivo de ejemplo

Descargar el ejemplo EXCELeINFO – Insertar imágenes en Excel usando macros.zip

También te podría gustar...