Cómo insertar imágenes usando Excel VBA
¡Hola! Intentando sacudir el tablero con imágenes significativas. O simplemente tratando de insertar una imagen en la celda Excel VBA. Bueno, no puede insertar imágenes en celdas de Excel, pero puede cambiar su tamaño para que quepan en la celda de Excel.
Hacerlo manualmente llevará mucho tiempo y es molesto. ¿Entonces, cuál es la solución? Lo has adivinado bien, una macro VBA. Codificaremos ahora.
A continuación se muestra el código Excel vba para insertar una imagen de una carpeta en una celda o un rango determinado. Presione Alt + F11, inserte un módulo y copie este código.
No te preocupes, te lo he explicado a continuación para que puedas modificarlo según tus necesidades.
Insertar imagen en celda de Excel con VBA en una celda o un rango dado [ancho = «100%», cols = «100%»,]
Sub TestInsertPictureInRange()InsertPictureInRange «C:\FolderName\PictureFileName.gif», _Range(«B5:D10») End Sub Sub InsertPictureInRange(PictureFileName As String, TargetCells As Range) ‘ inserts a picture and resizes it to fit the TargetCells range Dim p As Object, t As Double, l As Double, w As Double, h As Double If TypeName(ActiveSheet) <> «Worksheet» Then Exit Sub If Dir(PictureFileName) = «» Then Exit Sub ‘ import picture Set p = ActiveSheet.Pictures.Insert(PictureFileName) ‘ determine positions With TargetCells t = .Top l = .Left w = .Offset(0, .Columns.Count).Left – .Left h = .Offset(.Rows.Count, 0).Top – .Top End With ‘ position picture With p Height = h
End With Set p = Nothing End Sub |
Explicación:
Parte 1:
Sub TestInsertPictureInRange()InsertPictureInRange «C:\FolderName\PictureFileName.gif», _Range(«B5:D10») End Sub |
La subrutina anterior solo llama a nuestra subrutina principal InsertPictureInRange que solo toma dos argumentos. Primero la dirección del archivo de imagen con su nombre y segundo Rango donde desea insertar la imagen en Excel.
Parte 2:
Sub InsertPictureInRange(PictureFileName As String, TargetCells As Range)’ inserts a picture and resizes it to fit the TargetCells rangeDim p As Object, t As Double, l As Double, w As Double, h As Double If TypeName(ActiveSheet) <> «Worksheet» Then Exit Sub If Dir(PictureFileName) = «» Then Exit Sub ‘ import picture Set p = ActiveSheet.Pictures.Insert(PictureFileName) ‘ determine positions With TargetCells t = .Top l = .Left w = .Offset(0, .Columns.Count).Left – .Left h = .Offset(.Rows.Count, 0).Top – .Top End With ‘ position picture With p Height = h
End With Set p = Nothing End Sub |
Esta es la subrutina principal que inserta y cambia el tamaño de la imagen para que se ajuste al rango dado. Profundicemos en ello.
Dim p As Object, t As Double, l As Double, w As Double, h As Double
Esta línea es solo una declaración de variable que necesitaremos. Nota p Como variable de objeto. Esta variable contendrá nuestra imagen.
If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub
Comprueba si la hoja activa es una hoja de trabajo o no. Si no es así, saldrá del código inmediatamente y no pasará nada.
If Dir(PictureFileName) = "" Then Exit Sub
Verifique que haya proporcionado una dirección para que la imagen inserte una foto en la celda de Excel. Si no lo ha proporcionado, se cerrará inmediatamente y no sucederá nada.
Set p = ActiveSheet.Pictures.Insert(PictureFileName)
Ahora, esta es la línea más importante. En esta línea, estamos usando la función Insertar de Activesheet. Imágenes del objeto y ponerlo en el objeto p que declaramos anteriormente. Ahora, usando p, podemos ajustar fácilmente el ancho y el largo de la imagen.
With TargetCells t = .Top l = .Left w = .Offset(0, .Columns.Count).Left - .Left h = .Offset(.Rows.Count, 0).Top - .Top End With
Este segmento solo obtiene Longitud, Ancho, Superior e Izquierda del rango dado.
With p .Top = t .Left = l .Width = w Height = h End With
Esta parte ajusta la imagen al rango dado. Y esta hecho. Por último, lo liberamos poniéndolo en nada.
Set p = Nothing
Esta línea de memoria libre.
Este código funcionará en Excel 2016, Excel 2013, Excel 2010 y Excel 2007.
Aquí quería insertar la imagen en el rango A1: C10. Para hacer esto, modifiqué mi código debajo de [width = «100%», cols = «100%»,]
Sub TestInsertPictureInRange()InsertPictureInRange «*C:\Users\Manish Singh\Downloads\biker.jpg», _Range(«A1:C10*») End Sub |
Y esto es lo que obtuve. Exactamente lo que quería.
Así que sí. Use este código para insertar una imagen en la celda o rango de Excel. Juega con el código. Intenta insertar diferentes formatos, rangos extraños y mira qué pasa. Si tiene alguna pregunta o enfrenta algún desafío, use la sección de comentarios a continuación para preguntarme.
Descargar archivo
`enlace: /wp-content-uploads-2013-07-Insert-Pictures-Using-VBA-In-Microsoft-Excel-2016.xls [__ Insertar imágenes usando VBA en Microsoft Excel 2016]
Artículos populares:
link: / formulas-and-functions-Introduction-of-vlookup-function [Cómo usar la función VLOOKUP en Excel]
link: / tips-countif-in-microsoft-excel [Cómo usar la función COUNTIF en Excel]
link: / excel-formula-and-function-excel-sumif-function [Cómo usar la función SUMIF en Excel]