从照片文件夹创建照片目录(Microsoft Excel)
Glenn正在用Excel制作他所有数码照片的目录。所有照片(约5000张)都在一个文件夹中。他想在照片说明的右边插入照片,然后在所有照片上添加超链接以将缩略图放大为更大的照片。
现在,格伦正在一步一步地做这件事,这使他发疯,所以他正在寻找加快这一过程的方法。
好消息是,您不必这么快就发疯。 Excel提供的宏可以使工作更快,更轻松。但是,在进行讨论之前,您可能需要三思而行,然后再将所有照片放入Excel工作簿中。
当您将照片插入Excel时,工作簿的文件大小至少会增加要插入的照片的文件大小。因此,如果您的平均照片大小为1 MB(对于今天的相机来说很小)
然后插入5000张这样的照片,然后最终得到一个包含至少5 GB照片的工作簿。那是一个巨大的工作簿,Excel可能很难处理这么多的信息。 (时间的艰辛程度取决于您的Excel版本,系统中的内存量,处理器的速度等)。
您可能会认为解决方案是在将图像放入工作表时缩放图像,以使其更小。虽然重新缩放图像会使图像看起来更小(在工作表中看起来更小),但实际上并没有变小。完整尺寸的图像仍在Excel中。
因此,通过缩放照片根本不会减少工作簿的文件大小。
减小文件大小的方法是在将照片插入Excel之前,使用照片编辑软件在Excel外部缩放照片。换句话说,您需要将每张照片加载到照片编辑软件中,将照片调整为所需的缩略图大小,然后将调整后的照片保存到新的缩略图文件中。 (通常,您不希望将调整大小后的图像保存在原始照片的顶部。)然后,您可以将每个缩略图插入Excel工作表中,并且虽然仍然与的总大小直接相关,但您产生的工作簿文件的大小会较小。您添加到工作表的缩略图。
如果您仍想将所有照片插入工作表,则可以使用宏。下面的示例PhotoCatalog可以查找所有缩略图,并将它们以及指向完整照片的超链接插入到工作表中。它假定了四件事:(1)您的照片和缩略图都是JPG图像,(2)照片在目录c:\ Photos \中,(3)缩略图在目录c:\ Photos \ Thumbnails \中,以及(4)缩略图与全尺寸照片具有相同的文件名。
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
该宏可能需要一段时间才能运行,具体取决于您所使用的系统类型和正在分类的照片数量。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(7484)适用于Microsoft Excel 97、2000、2002和2003。