Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Graficprogrammierung

Forumthread: Graficprogrammierung

Graficprogrammierung
25.04.2018 20:36:05
Rothe
Ich habe ein Progamm zur Lösung und grafischen Darstellung von Differentialgleichungen geschrieben. Der Funktionsgraf wird programmintern
auf einen festen Bereich im Tabellenblatt kalibriert. Dazu wird ein Koordinaten-
ursprungspunkt in durch ein Klssenmodul bestimmt. Wenn ich nun einen 2.Grafen auf
dem gleichen Tabellenblatt für Vergleiche erzeugen will, ist es sinnvoll, die Ordinate zur besseren Lesbarkeit etwas nach links zu verschieben. Es gilt also
festzustellen, ob bereits ein Funktionsgraf existiert; ist also z.B. ein Pfeil der
Ordinate im Punkt 240, 10 vorhanden?
Dim Pfeil As Object
.........
Set Pfeil = Worksheets(1)
With Pfeil.Shapes.AddLine(930, Orgio.Y0, 940, Orgio.Y0).Line
.DashStyle = msoLineSingle 'Pfeil der Abszisse
.EndArrowheadStyle = msoArrowheadTriangle
End With
With Pfeil.Shapes.AddLine(240, 10, 240, 1).Line
.DashStyle = msoLineSingle 'Pfeil der Ordinate
.EndArrowheadStyle = msoArrowheadTriangle
End With
Hierzu diese Befehlssequenz zur Erzeugung des Pfeils.
Ich könnte natürlich eine Zelle als Anzeiger benutzen, das gefällt mir aber vom Stil
her nicht. Matthias
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Graficprogrammierung
26.04.2018 15:46:42
mmat
Hallo,
du möchtest also prüfen ob ein bestimmtes grafisches Element bereits vorhanden ist?
Man könnte bei der Erzeugung den grafisches Elementen einfach einen Namen geben, der sich später durch eine einfache Schleife wieder finden läßt, z.b. so:
Sub Erzeuge(x As Long, y As Long)
Set Pfeil = Worksheets(1)
Set o = Pfeil.Shapes.AddLine(x, y, x + 100, y + 200)
o.Line.DashStyle = msoLineSingle
o.Line.EndArrowheadStyle = msoArrowheadTriangle
o.Name = "Strich" & Format(x, "0000") & Format(y, "0000")
End Sub

Anzeige
AW: Graficprogrammierung
27.04.2018 21:12:13
Rothe
Hallo mmat, danke für den entscheidenden Hinweis. Die Lösung:
On Error Resume Next
Worksheets(1).Shapes("Ypfeil").Select
If Err.Number 0 Then
With Pfeil.Shapes.AddLine(Orgio.X0, 10, Orgio.X0, 1)
.Name = "Ypfeil" 'Worksheets(1) noch leer
.Line.DashStyle = msoLineSingle
.Line.EndArrowheadStyle = msoArrowheadTriangle
End With
Else
With Pfeil.Shapes.AddLine(Orgio.X0 - 60, 10, Orgio.X0 - 60, 1)
.Line.DashStyle = msoLineSingle 'Pfeil der Ordinate
.Line.EndArrowheadStyle = msoArrowheadTriangle
End With 'Err.Number = 0, Worksheets(1) nicht leer
End If
.....2.Ordinate un 60 nach links.
Man kann auch den von VBA vergebenen Standardnamen verwenden. Den erhält man durch testweise Modulauf-
zeichnung. Bei Quelltexterweiterung kann der sich allerdings ändern.
Ma.
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18