AW: verzogene Grafik mit VBA zurücksetzen
17.02.2008 12:15:06
Jürg
Hallo Franz
besten Dank für Deine Antwort. Damit konnte ich es lösen. Siehe Beispielcode. Alle Grafiken (aus Datei einfügen) in einer Spalte zurücksetzen.
Danke und Gruss
Jürg
Private Sub CommandButton1_Click()
Dim Spalte, Zelle As String
Dim shp As Shape
Dim Orignalhoehe, Originalbreite As Double
' alle Bilder wieder gleich
Spalte = InputBox("Spalte als Grossbuchstabe eingeben")
For Each shp In ActiveSheet.Shapes
If shp.Type = msoPicture Then
Zelle = shp.TopLeftCell.Address
If InStr(1, Zelle, Spalte) Then
' Shape auf Originalgröße setzen
shp.LockAspectRatio = msoFalse
shp.ScaleHeight 1, True
shp.ScaleWidth 1, True
Originalhoehe = shp.Height 'in Punkten
Originalbreite = shp.Width 'in Punkten
' MsgBox "Original-Höhe: " & Format(Originalhoehe * 2.54 / 72, "0.00") & " cm" & vbLf & _
_
' "Original-Breite: " & Format(Originalbreite * 2.54 / 72, "0.00") & " cm"
'Abmessungen des Shape neu setzen, Breite wird proportional angepasst
shp.Height = 4 / 2.54 * 72 '4 cm umgerechnet in Punkte
shp.ScaleWidth shp.Height / Originalhoehe, True
shp.LockAspectRatio = msoTrue
End If
End If
Next shp
End Sub