Visual Basic for Application, VBA para abreviar, 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 los programas de Office, incluido Excel. En algunos casos, incluso puede agregar nuevas funciones a Excel usando VBA.

Aunque necesita trabajar con código para usar VBA, eso no significa que VBA sea solo letras y números. Con VBA en Excel, puede crear una macro que le permita insertar imágenes en una celda o en un rango de celdas. ¡Sigue leyendo para enterarte de todo!

Cómo insertar una imagen en una celda usando VBA en Excel

Para crear una macro para insertar imágenes en celdas de Excel usando VBA, en realidad no necesita ningún conocimiento avanzado de Visual Basic. Todo lo que necesita hacer es habilitar las herramientas de desarrollador, crear la macro y pegar el código correcto.

Sin embargo, si está interesado en aprender VBA y escribir su propio código algún día, hemos desglosado el código VBA en la tercera sección. Por supuesto, también puedes

instagram viewer
insertar imágenes en Excel sin usar VBA. Pero este artículo trata sobre cómo hacerlo a través de VBA. ¡Vamos a ir al grano!

Para usar VBA en Excel, debe habilitar las herramientas de desarrollador en Excel. Esto habilitará la pestaña Desarrollador en la cinta, que está deshabilitada de forma predeterminada.

  1. Abre Excel.
  2. Ve a la Archivo menú.
  3. Haga clic en Opciones en la parte inferior de la pantalla. Esto abrirá la ventana Opciones de Excel.
  4. En Opciones de Excel, vaya a la Personalizar la cinta pestaña.
  5. Bajo Pestañas principales, controlar Desarrollador.

Ahora las herramientas para desarrolladores, incluido el acceso a VBA, están habilitadas para usted. No necesita hacer esto cada vez que quiera usar VBA en Excel. Las herramientas para desarrolladores permanecerán habilitadas hasta que las deshabilites.

2. Crear la macro e insertar el código

Ahora es el momento de empezar a crear la macro. Alternativamente, también podría crear un botón usando VBA para esta tarea, pero nos quedaremos con las macros.

  1. En Excel, vaya a la Desarrollador pestaña.
  2. En el Código sección, seleccione macros.
  3. En la nueva ventana, ingrese un nombre para su macro en Nombre de la macro. vamos a usar insertarFotoMacro.
  4. Hacer clic Crear.

Una vez que haga clic en Crear, la ventana de VBA se abrirá y mostrará el código de su macro. En este momento, el código constará de dos líneas: A Sub para iniciar la macro, y un Finalizar sub para terminarlo.

Agreguemos algo de código a esta macro. Agregue el siguiente código entre las dos líneas:

Dim photoNameAndPath Como Variante
foto tenue Como Imagen
photoNameAndPath = Aplicación. GetOpenFilename (Título:="Seleccionar Foto aInsertar")
Si fotoNombreYRuta = FALSO Entonces Salida Sub
Colocar foto = hoja activa. Fotos. Insertar (fotoNombreYRuta)
Con foto
.Izquierda = HojaActiva. Rango("A1").Izquierda
.Superior = HojaActiva. Rango("A1").Arriba
.Ancho = HojaActiva. Rango("A1").Ancho
.Altura = HojaActiva. Rango("A1").Altura
.Colocación = 1
FinCon

Su código final debe ser algo como el siguiente:

No necesita preocuparse por guardar su progreso. Cada cambio que realice en VBA se guarda instantáneamente.

Ahora es el momento de ver el código en funcionamiento.

  1. Cierra la ventana de VBA.
  2. Ve a la Desarrollador ficha en Excel.
  3. Seleccionar macros desde el Código sección.
  4. Resalta la macro que acabas de crear.
  5. Hacer clic Correr.

Ahora aparecerá un mensaje que le pedirá que ubique el archivo de imagen que desea insertar. Seleccione su imagen y luego haga clic en Abierto. ¡Ahora deberías ver tu foto en la celda A1!

Observe que la imagen insertada se contrae para ajustarse a la celda A1. Puede modificar esto y también cambiar el código para insertar la imagen en otras celdas o incluso en un rango de celdas. En la siguiente sección, desglosaremos el código y explicaremos los parámetros en funcionamiento.

3. Desglosando el código

Para que este código VBA funcione para usted de la manera que desea, debe comprenderlo. Una vez que lo haga, puede modificar el código para insertar fotos en cualquier celda en cualquier tamaño. Vamos a revisar el código poco a poco para que sea más fácil de entender.

Sub insertarFotoMacro()
Dim photoNameAndPath Como Variante
foto tenue Como Imagen
photoNameAndPath = Aplicación. GetOpenFilename (Título:="Seleccionar Foto aInsertar")
Si fotoNombreYRuta = FALSO Entonces Salida Sub
Colocar foto = hoja activa. Fotos. Insertar (fotoNombreYRuta)
Con foto
.Izquierda = HojaActiva. Rango("A1").Izquierda
.Superior = HojaActiva. Rango("A1").Arriba
.Ancho = HojaActiva. Rango("A1").Ancho
.Altura = HojaActiva. Rango("A1").Altura
.Colocación = 1
FinCon
Fin Sub

Una vez que se inicia el código, usamos el Oscuro para determinar el tipo de variable. Aquí tenemos dos variables: fotoNombreYRuta y foto sí mismo. Hemos determinado el primero como un Variante y este último como Foto.

A partir de ahí, se ejecuta la variable photoNameAndPath y abre una aplicación para obtener el paradero del archivo de imagen. Esto se hace a través Solicitud. Obtener nombre de archivo abierto. El Título El parámetro es opcional y su contenido se muestra como el nombre de la ventana.

Usando Si photoNameAndPath = False, entonces salga de Sub, especificamos que si se proporciona una dirección inválida o en blanco, el proceso debe finalizar. Sin embargo, si se alimenta un archivo adecuado, entonces Establecer foto = ActiveSheet. Fotos. Insertar (fotoNombreYRuta) indica que la imagen debe configurarse como la variable de foto que definimos anteriormente y debe insertarse en la hoja de cálculo activa.

finalmente usando Con foto y las cinco líneas que le siguen, detallamos el posicionamiento de la imagen. .Izquierda y .Arriba indicar las ubicaciones de inicio, mientras que .Ancho y .Altura indicar los lugares finales. Si desea insertar la imagen en otras celdas o en un rango, estas son las líneas que debe modificar.

.Colocación indica si la imagen debe dimensionarse con las celdas o insertarse en forma libre. Configurándolo en 1 lo dimensionará con las celdas.

En definitiva, usamos Terminar con y luego Finalizar sub para cerrar la macro. Tenga en cuenta que puede cambiar el fotoNombreYRuta y foto variables a cualquier otro nombre que desee. Solo recuerde mantener los nombres consistentes en todo el código.

Haga más cosas en Excel con VBA

De hecho, Excel es una herramienta maravillosa para organizar y analizar datos, pero eso no significa que Excel sea inepto cuando se trata de gráficos. Aunque las fotos y los mapas de bits no son lo más fuerte de Excel, Excel aún es perfectamente capaz de manejarlos.

Aunque puede insertar imágenes en Excel usando la interfaz como lo haría en otras aplicaciones de Office, también puede hacerlo usando VBA. Con VBA, puede automatizar esta tarea e incluso combinarla con otras tareas para ejecutarlas simultáneamente. Las posibilidades con VBA en Excel son infinitas.