Bilder in Zellen importieren

Per VBA lassen sich Bilder aus einem angegebenen Verzeichnis auslesen und importieren. Die vorgestellte Prozedur liest die Bilder aus dem eingestellten Verzeichnis "F:\Pic" aus.


Die im Verzeichnis vorhandenen Bilder werden an die Spaltenbreite der Spalte A skaliert. Abhängig von der Spaltenbreite werden die vorhandenen Bilder vergrößert oder verkleinert, wobei die Seitenverhältnise unverändert bleiben.


Nach dem Import wird die Zeilenhöhe an das skalierte Bild angepasst. Damit befindet sich das Bild genau innerhalb einer Zelle.


Im vorstellten Beispiel beginnt der Import in Zeile 5 der Spalte A.

 

Erfassen Sie den VBA-Code in einem Code-Modulblatt.

________________________________________________________________________________

     
Sub BilderImport()
'*********************************************************************************
'** Bilder werden in die Spalte A eingefügt. Die Bilder werden auf die  **
'** eingestellte Spaltebreite skaliert. Die Zeilenhöhe wird an die         **
'** skalierte Bildhöhe angepasst                                                     **
'*********************************************************************************

'* * Dimensionierung der Variablen
Dim strVerzeichnis$, strDatei$
Dim pct As Picture
Dim lngZeile As Long 'Zeile zum Eintragen der Bilder
Dim lngSpalte As Long 'Spalte zum Eintragen der Bilder
Dim varBreite As Variant 'Spaltenbreite
Dim varHoehe As Variant


'** Verzeichnis und Dateinamen definieren und auslesen
strVerzeichnis = "F:\Pic"
strDatei = Dir(strVerzeichnis & "\*.jpg")

'** Startzeile + Spalte festelegen
lngZeile = 5
lngSpalte = 1

'** Ermittlung der Spaltenbreite
varBreite = Columns("A:A").Width

Cells(lngZeile, lngSpalte).Select
Cells(lngZeile, lngSpalte + 1) = strDatei  
' schreiben Dateinamen
Set pct = ActiveSheet.Pictures.Insert(strVerzeichnis & "\" & strDatei)

With ActiveSheet.Shapes("Picture 1")
  
'** Auslesen der Breite
  ActiveSheet.Shapes("Picture 1").Select
  Selection.ShapeRange.LockAspectRatio = msoTrue
  
  
'** Bild auf aktuelle Spaltenbreite skalieren
  Selection.ShapeRange.Width = varBreite
  
  
'** Zeilenhöhe festlegen
  varHoehe = ActiveSheet.Shapes("Picture 1").Height
  Rows(lngZeile).RowHeight = varHoehe
End With

'** Zähler für Shape definieren
shp = 2

'** Zeilenzähler erhöhen
lngZeile = lngZeile + 1


'** Bild 2 bis n durchlaufen
Do While strDatei <> ""
  strDatei = Dir()
  
If strDatei = "" Then Exit Do
  Cells(lngZeile, lngSpalte).Select
  
Set pct = ActiveSheet.Pictures.Insert(strVerzeichnis & "\" & strDatei)
  ActiveSheet.Shapes("Picture " & shp).Select
  Cells(lngZeile, lngSpalte + 1) = strDatei  
' schreiben Dateinamen
  Selection.ShapeRange.LockAspectRatio = msoTrue
  
  Selection.ShapeRange.Width = varBreite 
'* 5.355 'Bild auf Spaltenbreite skallieren
  
  
'** Zeilenhöhe festlegen
  varHoehe = ActiveSheet.Shapes("Picture " & shp).Height
  Rows(lngZeile).RowHeight = varHoehe
  
  
'** Zeilenzähler erhöhen
  lngZeile = lngZeile + 1
  
  
'** Shape-Zahler erhöhen
  shp = shp + 1
  
Loop
End Sub 

________________________________________________________________________________

 

   

Aktuell sind 37 Gäste und keine Mitglieder online

   
Twitter Account für Excel-InsideExcel-Inside auf FacebookExcel-Inside auf Linked InExcel-Live News blogExcel-Inside RSS-FeedExcel-Inside auf Xing

Excel Auftragsprogrammierung

Access Auftragsprogrammierung
Word Auftragsprogrammierung

Outlook Auftragsprogrammierung

 Maßgeschneiderte
Individuallösungen
  für Ihren Erfolg
   

Sie haben eine Frage ...
... hier geht´s zum Office Forum

Forum Office-Fragen

   
   
   
   

Forum Office-FragenOffice-Fragen.de ist das Forum rund um Microsoft Office, PALO und LibreOffice.
[Excel, Word, Outlook, Access, Visio, Office365, Office mac: u.v.m.]

Wenn Sie Fragen haben, dann können Sie diese jederzeit gerne im Forum stellen. Die anwesenden Moderatoren und ggf.
auch andere Forumsteilnehmer werden Ihre Problemstellung schnellstmöglich bearbeiten.

Möchten Sie Ihr Wissen weitergeben? Dann sind Sie selbstverständlich auch jederzeit herzlich im Forum willkommen.

Jeder registrierte Benutzer erhält das kostenlose E-Book "Die 100 wichtigsten Formeln und Funktionen" für Excel.

Registrieren Sie sich noch heute und sichern Sie sich das kostenlose Willkommensgeschenk.

» zum Forum...

   
Live tracking and statistics