Exportar imágenes contenidas en una hoja con VBA/Excel

Estándar

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 consta unos círculos donde cada uno de ellos se muestra la foto de la persona que ocupa 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 exportara 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 grafico de la hoja imagen y una vez ahí exportar el grafico en la carpeta donde este almacenada la macro.
Les dejo el código y el ejemplo de cómo logre resolver el problema, además esta utilidad pienso incorporar al complemento MX Utilities en la siguiente versión.



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

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s