Glenn erstellt einen Katalog aller seiner digitalen Fotos in Excel. Alle Fotos (ungefähr 5000 davon) befinden sich in einem einzigen Ordner. Er möchte die Fotos rechts neben der Beschreibung des Fotos einfügen und dann einen Hyperlink zu allen Fotos einfügen, um die Miniaturansicht auf ein größeres Foto zu vergrößern.

Im Moment macht Glenn dies eins nach dem anderen und es macht ihn verrückt, also sucht er nach Wegen, um den Prozess zu beschleunigen.

Die gute Nachricht ist, dass Sie nicht so schnell verrückt werden müssen. Excel bietet Makros, mit denen die Arbeit schneller und einfacher erledigt werden kann. Bevor Sie jedoch in diese Diskussion einsteigen, sollten Sie lange überlegen, bevor Sie alle Ihre Fotos in eine Excel-Arbeitsmappe einfügen.

Wenn Sie ein Foto in Excel einfügen, wird die Dateigröße Ihrer Arbeitsmappe um mindestens die Dateigröße des einzufügenden Fotos erhöht. Wenn also Ihr durchschnittliches Foto 1 MB groß ist (mit heutigen Kameras recht klein)

Wenn Sie 5000 solcher Fotos einfügen, erhalten Sie eine Arbeitsmappe mit mindestens 5 GB Fotos. Das ist eine riesige Arbeitsmappe, und Excel könnte es schwer haben, mit so vielen Informationen zu arbeiten. (Wie schwierig es ist, hängt von Ihrer Excel-Version ab, wie viel Speicher in Ihrem System vorhanden ist, wie schnell Ihr Prozessor ist usw.)

Sie könnten denken, dass die Lösung darin besteht, die Bilder so zu skalieren, wie Sie sie in Ihrem Arbeitsblatt platzieren, damit sie kleiner sind. Durch das erneute Skalieren eines Bilds wird es zwar kleiner (im Arbeitsblatt wird es kleiner), aber nicht wirklich kleiner. Das Bild in voller Größe befindet sich immer noch in Excel.

Sie reduzieren also die Dateigröße Ihrer Arbeitsmappe überhaupt nicht, indem Sie die Fotos skalieren.

Sie können die Dateigröße reduzieren, indem Sie die Fotos außerhalb von Excel mithilfe einer Fotobearbeitungssoftware skalieren, bevor sie in Excel eingefügt werden. Mit anderen Worten, Sie müssten jedes der Fotos in die Fotobearbeitungssoftware laden, die Größe der Fotos auf die gewünschte Miniaturbildgröße ändern und dann die Größe des Fotos in einer neuen Miniaturbilddatei speichern. (Im Allgemeinen möchten Sie das Bild in der Größe nicht über dem Originalfoto speichern.) Sie können dann jedes Miniaturbild in Ihr Excel-Arbeitsblatt einfügen, und die resultierende Dateigröße der Arbeitsmappe ist kleiner, obwohl sie immer noch direkt mit der Gesamtgröße von zusammenhängt die Miniaturbilder, die Sie dem Arbeitsblatt hinzufügen.

Wenn Sie dennoch alle Fotos in Ihr Arbeitsblatt einfügen möchten, können Sie dies mithilfe eines Makros tun. Im folgenden Beispiel, PhotoCatalog, können Sie nach allen Miniaturfotos suchen und diese zusammen mit einem Hyperlink zum vollständigen Foto in das Arbeitsblatt einfügen. Es werden vier Dinge vorausgesetzt: (1) Ihre Fotos und Miniaturansichten sind alle JPG-Bilder, (2) die Fotos befinden sich im Verzeichnis c: \ Fotos \, (3) die Miniaturansichten befinden sich im Verzeichnis c: \ Fotos \ Miniaturansichten \ und (4) Die Miniaturansichten haben dieselben Dateinamen wie die Fotos in voller Größe.

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

Es kann eine Weile dauern, bis dieses Makro ausgeführt wird, abhängig von der Art des verwendeten Systems und der Anzahl der Fotos, die Sie katalogisieren.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (7484) gilt für Microsoft Excel 97, 2000, 2002 und 2003.