Glenn está haciendo un catálogo de todas sus fotos digitales en Excel. Todas las fotos (alrededor de 5000 de ellas) están en una sola carpeta. Le gustaría insertar las fotos a la derecha de la descripción de la foto, luego poner un hipervínculo a todas las fotos para agrandar la miniatura a una foto más grande.

En este momento Glenn está haciendo esto uno por uno y lo está volviendo loco, por lo que está buscando formas de acelerar el proceso.

La buena noticia es que no tienes que volverte loco tan rápido; Excel proporciona macros que pueden hacer que el trabajo sea más rápido y sencillo. Sin embargo, antes de entrar en esa discusión, es posible que desee pensar detenidamente antes de poner todas sus fotos en un libro de Excel.

Cuando inserta una foto en Excel, el tamaño de archivo de su libro de trabajo aumenta al menos en el tamaño de archivo de la foto que se inserta. Por lo tanto, si su foto promedio tiene un tamaño de 1 MB (bastante pequeña con las cámaras actuales)

e inserta 5000 de esas fotos, luego termina con un libro de trabajo que tiene al menos 5 GB de fotos. Ese es un libro enorme, y Excel podría tener dificultades para trabajar con tanta información. (La dificultad del momento depende de su versión de Excel, cuánta memoria hay en su sistema, qué tan rápido es su procesador, etc.)

Puede pensar que la solución es escalar las imágenes a medida que las coloca en su hoja de trabajo, para que sean más pequeñas. Si bien cambiar la escala de una imagen hace que parezca más pequeña (se ve más pequeña en la hoja de trabajo), no es realmente más pequeña. La imagen de tamaño completo todavía está ahí en Excel.

Por lo tanto, no reduce el tamaño de archivo de su libro de trabajo escalando las fotos.

La forma en que puede reducir el tamaño del archivo es escalar las fotos fuera de Excel, utilizando un software de edición de fotos, antes de insertarlas en Excel. En otras palabras, necesitaría cargar cada una de las fotos en el software de edición de fotos, cambiar el tamaño de las fotos al tamaño de miniatura que desee y luego guardar la foto redimensionada en un nuevo archivo de imagen en miniatura. (Por lo general, no querrá guardar la imagen redimensionada en la parte superior de su foto original). Luego, podría insertar cada miniatura en su hoja de cálculo de Excel y el tamaño de archivo de su libro de trabajo resultante sería más pequeño, aunque aún directamente relacionado con el tamaño agregado las fotos en miniatura que agrega a la hoja de trabajo.

Si aún desea insertar todas las fotos en su hoja de trabajo, puede hacerlo usando una macro. El siguiente ejemplo, PhotoCatalog, puede buscar todas las fotos en miniatura e insertarlas en la hoja de trabajo, junto con un hipervínculo a la foto completa. Asume cuatro cosas: (1) sus fotos y miniaturas son todas imágenes JPG, (2) las fotos están en el directorio c: \ Photos \, (3) las miniaturas están en el directorio c: \ Photos \ Thumbnails \, y (4) las miniaturas tienen los mismos nombres de archivo que las fotos a tamaño completo.

Sub PhotoCatalog()

Dim i As Double     Dim xPhoto As String     Dim sLocT As String     Dim sLocP As String     Dim sPattern As String

sLocT = "c:\Photos\Thumbnails\"

sLocP = "c:\Photos\"

sPattern = sLocT & "*.jpg"



Application.EnableEvents = False     Application.ScreenUpdating = False

Range("A1").Select     ActiveCell.FormulaR1C1 = "Description"

Range("B1").Select     ActiveCell.FormulaR1C1 = "Thumbnail"

Range("C1").Select     ActiveCell.FormulaR1C1 = "Hyperlink"

Range("A1:C1").Select     With Selection.Font         .Name = "Arial"

.FontStyle = "Bold"

.Size = 12         .ColorIndex = xlAutomatic     End With     With Selection.Borders(xlEdgeBottom)

.LineStyle = xlContinuous         .Weight = xlMedium         .ColorIndex = xlAutomatic     End With

i = 1     On Error GoTo 0     xPhoto = Dir(sPattern, vbNormal)

Do While xPhoto <> ""

i = i + 1         Range("B" & i).Select         ActiveSheet.Pictures.Insert(sLocT & xPhoto).Select         With Selection.ShapeRange             .LockAspectRatio = msoTrue             .Height = 54#             .PictureFormat.Brightness = 0.5             .PictureFormat.Contrast = 0.5             .PictureFormat.ColorType = msoPictureAutomatic         End With         Range("C" & i).Select         ActiveSheet.Hyperlinks.Add Anchor:=Selection, _           Address:= sLocP & xPhoto, TextToDisplay:=xPhoto         xPhoto = Dir     Loop

Application.EnableEvents = True     Application.ScreenUpdating = True End Sub

Esta macro puede tardar bastante en ejecutarse, según el tipo de sistema que esté utilizando y la cantidad de fotos que esté catalogando.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (7484) se aplica a Microsoft Excel 97, 2000, 2002 y 2003.