Puede insertar imágenes fácilmente en hojas de cálculo de Excel y editarlas con código de macro. A continuación se explica cómo insertar una imagen en una celda usando VBA en Excel .
Visual Basic para Aplicaciones, abreviado como VBA, es una forma de Visual Basic 6 integrada en los programas de Microsoft Office. A través de la codificación, VBA le permite automatizar tareas en aplicaciones de Office, incluido Excel. En algunos casos, incluso puedes agregar nuevas funciones a Excel usando VBA.
Aunque necesites trabajar con código para usar VBA, eso no significa que VBA esté lleno de letras y números. Con VBA en Excel, puede crear una macro que le permita insertar una imagen en una celda o rango de celdas. Esto es lo que necesita saber sobre cómo insertar imágenes en celdas en Excel usando VBA.
Cómo insertar imágenes en celdas usando VBA en Excel
Para crear una macro que inserte una imagen en una celda de Excel usando VBA, realmente no necesita ningún conocimiento avanzado de Visual Basic. Todo lo que necesitas hacer es activar las herramientas de desarrollador, crear una macro y pegar el código apropiado. Por supuesto, también puedes insertar imágenes en Excel sin usar VBA. Sin embargo, en este artículo nos centraremos en VBA.
1. Active las herramientas para desarrolladores
Para usar VBA en Excel, debe habilitar las herramientas de desarrollador. Esta acción habilitará la pestaña Desarrollador en la cinta, que está deshabilitada de forma predeterminada.
- Abra Excel .
- Vaya al menú Archivo .
- Haga clic en Opciones en la parte inferior de la pantalla. Aparecerá la ventana Opciones de Excel .
- En Opciones de Excel, vaya a la pestaña Personalizar cinta .
- En las pestañas principales , marque Desarrollador .
Ahora las herramientas de desarrollador, incluido el acceso a VBA, están habilitadas. No es necesario que haga esto cada vez que desee utilizar VBA en Excel. Las herramientas de desarrollador siempre estarán habilitadas hasta que las desactives.
2. Crea macros e inserta código.
- En Excel, vaya a la pestaña Desarrollador .
- En la sección Código, seleccione Macros .
- En la nueva ventana, ingrese el nombre de su macro en Nombre de macro . El artículo utilizará insertPhotoMacro .
- Haga clic en Crear .
Después de hacer clic en Crear, se abrirá la ventana de VBA y mostrará el código de su macro. Actualmente, el código constará de 2 líneas: una Sub para iniciar la macro y una End Sub para finalizarla.
Agregue un pequeño código a esta macro. Agregue la siguiente línea de código entre las dos líneas:
Dim photoNameAndPath As Variant
Dim photo As Picture
photoNameAndPath = Application.GetOpenFilename(Title:="Select Photo to Insert")
If photoNameAndPath = False Then Exit Sub
Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath)
With photo
.Left = ActiveSheet.Range("A1").Left
.Top = ActiveSheet.Range("A1").Top
.Width = ActiveSheet.Range("A1").Width
.Height = ActiveSheet.Range("A1").Height
.Placement = 1
End With
El código final se verá así:
No necesita preocuparse por guardar este proceso. Cualquier cambio que realice en VBA se guarda inmediatamente.
Ahora es el momento de ver el código en acción:
- Cierre la ventana de VBA.
- Vaya a la pestaña Desarrollador en Excel.
- Seleccione Macros en la sección Código.
- Resalte la macro que acaba de crear.
- Haga clic en Ejecutar .
Ahora se abrirá un mensaje pidiéndole que ubique el archivo de imagen que desea insertar. Seleccione la foto y luego haga clic en Abrir. Ahora verá la imagen en la celda A1.
Tenga en cuenta que Excel reducirá la imagen para que quepa en la celda A1. Puedes cambiarlo y cambiar el código para insertar imágenes en otras celdas, incluso en un rango de celdas. En la siguiente sección, separaremos el código y explicaremos los parámetros.
3. Código dividido
Para que el código VBA funcione de la manera deseada, es necesario comprenderlo. Al hacer esto, puede cambiar el código para insertar imágenes en cualquier celda de cualquier tamaño.
Sub insertPhotoMacro()
Dim photoNameAndPath As Variant
Dim photo As Picture
photoNameAndPath = Application.GetOpenFilename(Title:="Select Photo to Insert")
If photoNameAndPath = False Then Exit Sub
Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath)
With photo
.Left = ActiveSheet.Range("A1").Left
.Top = ActiveSheet.Range("A1").Top
.Width = ActiveSheet.Range("A1").Width
.Height = ActiveSheet.Range("A1").Height
.Placement = 1
End With
End Sub
Cuando comienza el código, la declaración Dim se usa para determinar el tipo de variable. Tenemos dos tipos de variables: photoNameAndPath y photo . Primero la variable y luego la imagen.
Desde allí, se ejecuta la variable photoNameAndPath y se abrirá una aplicación para obtener la ubicación del archivo de la foto. Esto se hace a través de Application.GetOpenFileName . El parámetro Título es opcional. El contenido que contiene se muestra como el nombre de la ventana.
Usando If photoNameAndPath = False Then Exit Sub , si se proporciona una dirección vacía o no válida, el proceso finalizará. Sin embargo, si se proporciona un archivo adecuado, Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath) indica que la imagen debe configurarse como una variable tal como se definió originalmente. Se insertará en la hoja de trabajo activa.
Finalmente, use Con foto y las 5 líneas posteriores para determinar la ubicación de la foto. .Izquierda y .Arriba se refieren a la posición inicial, mientras que .Ancho y .Alto se refieren a la posición final. Si pretendes insertar imágenes en otra celda o rango, estas son las líneas que debes cambiar.
.La ubicación indica que se debe cambiar el tamaño de la imagen para que se ajuste a la celda o insertarla de forma libre. Configurarlo en 1 cambiará su tamaño según la celda.
Finalmente, el código anterior usa End With y luego End Sub para cerrar la macro. Ahora puedes cambiar las variables photoNameAndPath y photo por cualquier otro nombre que desees. Solo recuerde mantener los nombres consistentes en todo el código.
Arriba se explica cómo usar VBA para insertar imágenes en celdas en Excel . Espero que el artículo te sea útil.