Con la siguiente macro abres una imagen, cambia "c:\trabajo\varios\", por el nombre de la carpeta. Cambia "foto5.jpg", por el nombre de la imagen, cambia "D4" por la celda en la que quieras que te aparezca.
Sub im4()
'Por.Dante Amor
ruta = "c:\trabajo\varios\"
arch = "foto5.jpg"
'
Set fotografia = ActiveSheet.Pictures.Insert(ruta & arch)
With fotografia
.Name = "imagen temporal"
.Top = Range("D4").Top
.Left = Range("D4").Left
.OnAction = "cerrar"
End With
'
'eliminamos el objeto
Set fotografia = Nothing
End Sub
Copia en el mismo módulo la siguiente macro para cerrar la imagen, para cerrar la imagen solamente tienes que presionar click sobre la imagen
Sub cerrar()
'Por.Dante Amor
ActiveSheet.Shapes("imagen temporal").Delete
End Sub
Si no tienes el nombre de la carpeta o de la imagen, con esta macro la puedes seleccionar:
Sub im6()
'Por.Dante Amor
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Seleccione archivo de excel"
.Filters.Clear
.Filters.Add "Todos", "*.*"
.Filters.Add "imagen", "*.jpg*"
.FilterIndex = 2
.AllowMultiSelect = False
.InitialFileName = ThisWorkbook.Path
If .Show Then
'
Set fotografia = ActiveSheet.Pictures.Insert(.SelectedItems.Item(1))
With fotografia
.Name = "imagen temporal"
.Top = Range("D4").Top
.Left = Range("D4").Left
.OnAction = "cerrar"
End With
'
'eliminamos el objeto
Set fotografia = Nothing
End If
End With
End Sub
De igual forma inserta en el mismo módulo la siguiente macro para borrar la imagen al presionar click sobre ella
Sub cerrar()
'Por.Dante Amor
ActiveSheet.Shapes("imagen temporal").Delete
End Sub
Saludos.Dante Amor