aufgebohrtes Makro:
21.02.2013 08:42:36
Klaus
Hi Lemmi,
das sollte es machen. Anleitung
1) in allen Pfaden "Thumbs"-Unterordner erstellen
2) IrfanView Batch laufen lassen wie oben beschrieben
3) aufgebohrtes Makro von unten laufen lassen.
zu 2): IrfanView wird versuchen, die Thumb-Dateien umzubenennen. Dass kann man dem Batch aber abgewöhnen (ich hab IrfanView grad nicht zur Hand um nachzuschauen). Die Thumb-Bilder müssen genauso heissen wie die Originale, sonst läuft es nicht.
Option Explicit
Sub MakePreviewPicComments()
Dim sPrev As String
Dim rMake As Range
Dim lRow As Long
Dim iColLeer As Integer
Dim sPathPicThumb As String
Dim sIrfanViewPath As String
iColLeer = 26
'zwei leere Spalten. ich hab mal Spalte Z (und Z-1) genommen. Spalte Y und Z müssen _
leer sein!
sIrfanViewPath = "Thumbs\"
'Der Thumb-Pfad, der in IrfanView genutzt wird ... und ein Backslash!
lRow = Cells(Rows.Count, 4).End(xlUp).Row
For Each rMake In Range("D6:D" & lRow)
'alten Kommentar löschen, falls vorhanden (sonst Fehler!)
rMake.ClearComments
'Hilfsformeln in Spalten schreiben (Optimierung: direkt in VBA berechnen)
Cells(rMake.Row, iColLeer).FormulaR1C1 = "=MID(RC4,FIND(""#"",SUBSTITUTE(RC4,""\"","" _
# "",LEN(RC4)-LEN(SUBSTITUTE(RC4,""\"",""""))))+1,9^9)"
Cells(rMake.Row, iColLeer - 1).FormulaR1C1 = "=SUBSTITUTE(RC4,RC" & iColLeer & ","""" _
)"
'Pfadangabe für "Thumb" Bild basteln
sPathPicThumb = Cells(rMake.Row, iColLeer - 1) 'Pfad
sPathPicThumb = sPathPicThumb & sIrfanViewPath 'Ifran-View Unterordner
sPathPicThumb = sPathPicThumb & Cells(rMake.Row, iColLeer) 'Dateiname
'in D, "ganze" Pfandangabe durch "nur Bildname" ersetzen
rMake.Value = Cells(rMake.Row, iColLeer).Value
'Hilfsformeln löschen
Cells(rMake.Row, iColLeer).ClearContents
Cells(rMake.Row, iColLeer - 1).ClearContents
With rMake.AddComment
'blöden Standard-Kommentartext entfernen
.Text ""
'Bild-in-Comment einfügen
.Shape.Fill.UserPicture sPathPicThumb
End With
Next rMake
End Sub
Die 451 gesparten Euro kannst du jetzt einer gemeinnützigen Organisation deiner Wahl spenden.
Grüße,
Klaus M.vdT.