könnten Sie eine Funktion verwenden, um die breiteste Form zurückzukehren und seine Breite festgelegt, zu
Function GetWidestShape(widestShpWidth As Long) As Shape
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If shp.Width > widestShpWidth Then
widestShpWidth = shp.Width
Set GetWidestShape = shp
End If
Next
End Function
, die Sie in Ihrem Haupt Code ausgenutzt werden könnte wie folgt:
Sub Main()
Dim widestShp As Shape
Dim widestShpWidth As Long
Set widestShp = GetWidestShape(widestShpWidth) '<--| get the widest shape along with ist width
With widestShp
' ...
' your code to act on referenced shape
'...
End With
End Sub
natürlich ist die Dual Ansatz auch möglich:
Function GetWidestShapeWidth(widestShp As Shape) As Long
Dim shp As Shape
Dim widestShpWidth As Long
For Each shp In ActiveSheet.Shapes
If shp.Width > widestShpWidth Then
widestShpWidth = shp.Width
Set widestShp = shp
End If
Next
End Function
Sub Main()
Dim widestShp As Shape
Dim widestShpWidth As Long
widestShpWidth = GetWidestShapeWidth(widestShp) '<--| get the width of the widest shape along with the widest shape
With widestShp
' ...
' your code to act on referenced shape
'...
End With
End Sub
Willkommen bei Stackoverflow! Wenn Sie eine Frage posten, geben Sie bitte Ihren Code frei und versuchen Sie, Ihr Problem so gut wie möglich zu erklären. Im Moment ist es sehr unklar, wonach Sie fragen. –
Welchen genauen Teil dieses Problems haben Sie? –
Hallo nochmal. Tut mir leid, dass ich in den Fragen nicht so klar bin. Hier ist ein Teil des Codes, um besser zu erklären – user7381321