Hallo zusammen,
ich habe folgendes Problem: Ich habe ein Arbeitsblatt auf dem mehrere Shapes aufgezeichnet sind. Dabei sollen die Shapes nicht über die Spalte „Z“ hinausragen. Falls sie das tun, so sollen sie an der entsprechenden Stelle (am Ende der Spalte „Z“) abgeschnitten werden.
Derzeit löse ich das Problem, indem ich ein While Schleife ablaufen lasse und das ausgewählte Shape solange kürze, bis die Sh.BottomRightCell.Address nicht mehr in Spalte „AA“ liegt.
Das Problem ist jedoch, dass dieser Ablauf extrem ineffizient ist (Es gibt viele Shapes auf mehreren Arbeitsblättern, die Teilweise weit über Spalte Z hinausgehen)
Gibt es eine andere Möglichkeit? Z.B. der Sh.BottomRightCell.Address direkt den Wert “$Z” zuzuweisen? Eventuel gibt es entsprechende Set und Get Methoden. Ich habe diesbezüglich in meiner jetzigen Recherche noch nichts gefunden.
Danke für Eure Hilfe
Sub abschneiden()
Dim Sh As Shape
For Each Sh In ActiveSheet.Shapes
While Sh.BottomRightCell.Address >= "AA"
Sh.Width = Sh.Width - 0.5
Wend
Next Sh
End Sub
|