Ich möchte eine Linie zeichen und deren Endpunkte ermitteln, nachdem ich die Linie manuell verädert habe. Da jedoch nor die Ecken des Kastens ausgegeben werden, in dem sich die Linie befindet bekomme ich ein falsches Ergebnis, wenn ich von einer waagerechten Linie den rechten Endpunkt nach oben bewege. Der Code hierzu sieht wie folgt aus:
' Globale Variablen
Dim Masst As Shape
Dim Kante_1 As Shape
Dim Kante_2 As Shape
Dim Masstna As String
Dim K1na As String
Dim K2na As String
Public Sub Grundlinien()
Dim Masstnr As Long
Dim K1nr As Long
Dim K2nr As Long
Dim x1 As Integer
Set Kante_1 = ActiveSheet.Shapes.AddLine(200, 300, 600, 300)
K1nr = s_index + 2
' MsgBox "Linie 1 =" & K1nr
K1na = ActiveSheet.Shapes(K1nr).name
ActiveSheet.Shapes.Range(Array(K1na)).Select
With Selection.ShapeRange.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(150, 0, 0)
.Weight = 1.5
End With
Set Kante_2 = ActiveSheet.Shapes.AddLine(300, 200, 300, 500)
K2nr = K1nr + 1
K2na = ActiveSheet.Shapes(K2nr).name
ActiveSheet.Shapes.Range(Array(K2na)).Select
With Selection.ShapeRange.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(150, 0, 0)
.Weight = 1.5
End With
End Sub
Public Sub Auswertung_1()
MsgBox "Punkt 1: " & Kante_1.Left & " / " & Kante_1.Top & vbCrLf & _
"Punkt 2: " & Kante_1.Left + Kante_1.Width & " / " & Kante_1.Top + Kante_1.Height
MsgBox "Punkt 1: " & Kante_2.Left & " / " & Kante_2.Top & vbCrLf & _
"Punkt 2: " & Kante_2.Left + Kante_2.Width & " / " & Kante_2.Top + Kante_2.Height
End Sub
|