| Hallo Gemeinde,
ich hatte schon verschiedenes probiert um Bilder mit VBA zu verkleinern.
Nun hatte ich folgende Idee und wollte dieses mal zur Diskussion stellen:
Ich füge in ein leeres Word Dokument ein Bild ein und speicher dieses als Website (*.htm). Word erstellt darauf hin die Datei und einem Ordner das Originalbild und das komprimierte Bild.
Nachteil davon ist ganz klar der Umweg über das speichern auf der Festplatte - also für viele Dateien eher nicht zu gebrauchen. Spricht sonst etwas noch dagegen?
Hier mal der Code dazu:
'-----------Anfang-----------------------
Function BildVerkleinern(sQuelle As String, sZiel As String, sTempDoc As String) As Boolean
Dim sPfad As String
Dim objWord As Word.Application
Dim odoc As Word.Document
If Dir(sTempDoc) = "" Then
MsgBox "Leeres Worddokument fehlt"
Exit Function
End If
sPfad = CurrentProject.Path & "\TempBilder\"
If Dir(sPfad, vbDirectory) = "" Then MkDir sPfad
Set objWord = New Word.Application
Set odoc = objWord.Documents.Open(sTempDoc)
odoc.InlineShapes.AddPicture FileName:=sQuelle ', LinkToFile:=False, SaveWithDocument:=True
objWord.ActiveDocument.SaveAs FileName:=sPfad & "Temp.htm", FileFormat:=wdFormatHTML
odoc.Close False
objWord.Quit
Set odoc = Nothing
Set objWord = Nothing
If Dir(sPfad & "Temp-Dateien\image002.jpg") <> "" Then
FileCopy sPfad & "Temp-Dateien\image002.jpg", sZiel
On Error Resume Next
Kill sPfad & "Temp.htm"
Kill sPfad & "Temp-Dateien\filelist.xml"
Kill sPfad & "Temp-Dateien\image001.jpg"
Kill sPfad & "Temp-Dateien\image002.jpg"
BildVerkleinern = True
End If
End Function
'----------Ende------------------------
Jürgen
|