AW: For-Each-Next-Schleife
12.05.2007 09:29:14
fcs
Hallo Hutzebutz,
mit einer der beiden folgenden Varianten kannst du eingebette Grafiken in Schleifen abarbeiten.
Falls du nur Bilder und keine weiten grafischen Elemente (Linien, Textboxen, Steuerelemenete etc.) im Tabellenblatt hast, dann kannst du die If-Abfrage weglassen.
Gruß
Franz
Sub Bilder()
Dim wks As Worksheet, Bild As Shape, Zelle As Range
Set wks = ActiveSheet
Set Zelle = wks.Cells(2, 4) '1. Zelle zum Bild-Positionieren
'Bilder werden auf eine einheitliche Höhe gebracht und untereinander angeorddnet
For Each Bild In wks.Shapes
With Bild
If .Type = msoPicture Then
.Top = Zelle.Top + 2
.Left = Zelle.Left + 2
.Width = .Width * .Height / 300
.Height = 300
Set Zelle = wks.Cells(.BottomRightCell.Row + 1, Zelle.Column)
End If
End With
Next
End Sub
Sub Bilder2()
Dim wks As Worksheet, Bild As Shape, Zelle As Range, I%
Set wks = ActiveSheet
Set Zelle = wks.Cells(2, 4) '1. Zelle zum Bild-Positionieren
'Bilder werden auf eine einheitliche Höhe gebracht und untereinander angeorddnet
For I% = 1 To wks.Shapes.Count
Set Bild = wks.Shapes(I%)
With Bild
If .Type = msoPicture Then
.Top = Zelle.Top + 2
.Left = Zelle.Left + 2
.Width = .Width * .Height / 300
.Height = 300
Set Zelle = wks.Cells(.BottomRightCell.Row + 1, Zelle.Column)
End If
End With
Next
End Sub