Exportar imágenes contenidas dentro de una hoja de un libro de Excel

Hace poco en el trabajo me pidieron que automatizara la creación de una página HTML que desplegaría el organigrama de cada una de las áreas de trabajo, dicho organigrama estaba formado por unos círculos donde en cada uno de ellos se mostraban las fotos de la personas que ocupan dicha posición. Todas las imágenes que conformaran cada organigrama estarían dispuestas en una hoja de Excel, así es que como primer paso tendría que hacer una macro que tomara cada una de las formas (shapes) contenidas en la hoja y las exportará para después crear la pagina HTML.


Lo que hace la macro es tomar cada una de las formas de la hoja organigrama, pegarla dentro del gráfico de la hoja imagen y una vez ahí exportar el gráfico en la carpeta donde este almacenada la macro. Les comparto el código y el ejemplo de cómo logre resolver el problema. 
Option Explicit

Sub test()
Dim hoja_org As Worksheet
Dim hoja_img As Worksheet
Dim sh As Shape

'En esta hoja se encuentra las imagenes a exportar (organigrama)
Set hoja_org = ThisWorkbook.Sheets("Organigrama")
'En esta otra esta un grafico vacio que nos servira como contenerdor de la imagen a exportar
Set hoja_img = ThisWorkbook.Sheets("Imagen")

'Recorremos cada una de las formas...
For Each sh In hoja_org.Shapes
  sh.Copy 'se copia...
  'Se redimensiona el ancho y alto del grafico para que sea del mismo tamaño de la forma
  hoja_img.Shapes(1).Height = sh.Height
  hoja_img.Shapes(1).Width = sh.Width
  
  'Se pega la forma en el grafico
  hoja_img.Shapes(1).Chart.Paste
  hoja_img.Shapes(1).Chart.Export ThisWorkbook.Path & "\" & sh.Name & ".png" 'se exporta el grafico
  hoja_img.Shapes(1).Chart.Shapes(1).Delete 'se borra la imagen del grafico
  Next
  MsgBox "Imagenes exportadas!", vbInformation, ""
End Sub
Quizá mas adelante pueda elaborar un complemento para Excel, para que una vez instalado en nuestro equipo, podamos utilizarlo siempre que lo necesitemos.

Comentarios

  1. Hola buenas tardes, seguí tu pagina anterior dónde explicabas la unión entre python y excel, me podrías decir si sigues teniendo esa información , sigues implementandola?.

    Muchas gracias por tu amable respuesta.

    Saludos,
    Jorge

    ResponderBorrar
    Respuestas
    1. Hola Amigo! Antes que nada una disculpa por la demora en contestar tu pregunta, lamentablemente desconozco el por que no me llegan las notificaciones cuando alguien realiza algún comentario y apenas vengo viendo el tuyo... Respecto a lo de Python, no ya no tengo nada de material a la mano, aunque realmente no es muy complicado lograr una sinergia entre Python y Excel, quizas este enlace sea de tu interes:

      https://doc.lagout.org/programmation/python/Python%20Programming%20on%20Win32_%20Help%20for%20Windows%20Programmers%20%5BHammond%20%26%20Robinson%202000-02-03%5D.pdf

      Actualmente me encuentro programando en Javascript, Google Apps Script, VBA/Excel y Ruby. Espero pronto subir material de una sinergia entre Ruby/Excel.
      Saludos!

      Borrar

Publicar un comentario