Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
912to916
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
912to916
912to916
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Grafikprogrammierung

Grafikprogrammierung
13.10.2007 20:21:10
Jean
Hallo,
ich bitte um eine kurze Erklärung folgender Zeile:
.shapes.addline(72#,68.4,520,68.4).select.
Besonders interessiert mich die Bedeutung des Zeichens #. Welche Bedeutung hat dieses Zeichen beim Zeichnen einer Linie? Und weshalb das select am Ende der Zeile?
Könnte man der Linie nicht einen Namen geben? Wenn ja, wie?
Dank im Voraus.
Gruß
Jean

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Grafikprogrammierung
ransi
HAllo Jean
Das select liefert der recorder.
Einen NAmen kannst du so vergeben:
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit


Public Sub test()
ActiveSheet.Shapes.AddLine(72#, 68.4, 520, 68.4).Name = "Irgendwas"
End Sub

Die Zahlen sind in der Hilfe zu addline recht gut erklärt.
Was # bedeutet weiss ich nicht.
raNSI

Anzeige
AW: Grafikprogrammierung
13.10.2007 20:35:00
Beverly
Hi,
# bedeutet meines Wissens, dass es eine Integerzahl ist. Man kann # auch weglassen - wird offensichtlich vom Makrorecorder eingefügt.
________________________________________

AW: Grafikprogrammierung
13.10.2007 21:11:00
Jean
Hallo Beverly,
ich danke Dir für Deinen Beitrag.
Bevor ich auf den aktuellen Beitrag eingehe, möchte ich Dir mitteilen, dass ich schon häufig mit großem Interesse Deine Beiträge verfolgt habe und großen Wissenzuwachs daraus entnommen habe. Danke.
Nun zum aktuellen Beitrag:
Mir ist nicht ganz klar, weshalb der Recorder solche Sachen machen sollte.
Kann es nicht sein, dass es andere Gründe dafür geben kann?
Gruß
Jean.

Anzeige
AW: Grafikprogrammierung
13.10.2007 20:39:00
Jean
Hallo raNSI,
ich danke Dir für Deinen Beitrag, besonders für die Objekttaufe.
Ja, die Hilfe gibt einiges her, aber leider nichts zur Beduetung des # Rautezeichens in dieser Zeile.
Ich suche weiter ... Irgendeine Bedeutung sollte das Zeichen ja haben.
Vielleicht hast Du noch eine Idee, wie man diese Frage lösen könnte.
Gruß
Jean

AW: Grafikprogrammierung
13.10.2007 20:56:00
Original
Hi,
aus der Hilfe, solltest du auch gelegentlich installieren:
Double-Datentyp
Variablen vom Datentyp Double (Gleitkommazahl mit doppelter Genauigkeit) werden als 64-Bit-Gleitkommazahlen (8 Bytes) nach IEEE im Bereich von -1,79769313486231E308 bis -4,94065645841247E-324 für negative Werte und von 4,94065645841247E-324 bis 1,79769313486232E308 für positive Werte gespeichert. Das Typkennzeichen für Double ist das Zeichen (#).
mfg Kurt

Anzeige
AW: Grafikprogrammierung
13.10.2007 21:04:00
Jean
Hallo Kurt,
ich danke Dir für Deinen Hinweis.
Den Typ Double kenne ich, die Beziehung zum Befehl Addline bzw als Zusatz zu diesem Befehl war mir bisher nicht bekannt. So ganz einsichtig ist mir die Sache in dieser Konstellation noch immer nicht.
Gruß
Jean

AW: Grafikprogrammierung
13.10.2007 21:22:00
Renee
Hi Jean,
Für praktisch jeden Ausdruck in VBA gibt es eine Hilfe. Gehe dazu auf das entsprechende Wort (z.B. AddLine) und drück die F1 Taste.
Der Ausdruck .shapes.addline(72#,68.4,520,68.4) muss ja irgendwoher kommen.
Was sich der Schreiber allerdings dabei gedacht hat bleibt uns verborgen.
Die 72# macht keinen Sinn, da die Parameter der AddLine Methode alles Single-Werte sind, dann wäre 72! richtig(er). Im Zusammenhang mit der AddLine Methode würden die Variables-Type-Characters nur Sinn machen, wenn die Punktkoordinaten durch (kompliziertere) Rechnungen entstehen. Bei Einzelwerten machen die Typendeklarationen keinen Sinn.
GreetZ Renee

Anzeige
AW: Grafikprogrammierung
13.10.2007 21:28:00
Jean
Hallo Renne,
das habe ich getan, wie Du auch. Ich danke Dir für Deinen Beitrag.
Trotz allem: Ich rätsle weiter. Du auch?
Gruß
Jean

AW: Grafikprogrammierung
13.10.2007 22:00:22
Original
Hi,
der Makrorekorder muss schließlich den Wert aus dem Koordinaten des Cursors ermitteln,
wenn das keine Rechnerei ist?
mfg Kurt

Deklaration von Koordinaten
13.10.2007 23:51:00
Koordinaten
Hallo zusammen,
Nein ich rätsle nicht weiter. Die Aufzeichnung des Makrorekorders ist nun mal so und Kurt könnte durchaus recht haben, das 'quasi zur Sicherheit' alles in Double Werte umgerechnet wird und dann im Endresultat solche Artefakte stehen bleiben.
Wie es auch sei, ich würde den Code halt am Schluss überarbeiten und die Artefakte entfernen.
GreetZ Renee

Anzeige
Die ganze Diskussion um "Macrorecorders Bart"...
14.10.2007 02:30:00
Luc:-?
...macht wenig Sinn, Jean,
aber trotzdem noch meine Meinung:
Ich denke, dass bzgl des # (sog. Nummernkreuz, nicht Raute!) eher Beverly recht hat und das hier wirklich nur eine Ganzzahl bezeichnen soll, auch, wenn das nicht immer gesetzt wird. VBA macht das nämlich auch automatisch bei bestimmten vbFktt wie z.B. InchesToPoints immer dann, wenn eine Zahl ohne Dezimalpkt angegeben wird (und zumindest auch eine solche erwartet bzw nicht erwartet wird - das müsste man mal näher betrachten, was mir bisher aber schnurz war und ist!). Mit den Typkurzbezeichnungen hat das m.M. nach nichts zu tun, zumal die ja auch eher bei Variablenbezeichnungen auftauchen müssten. Also ist das eher der VBA-Unterstützungsfunktionalität geschuldet als der Fktionsweise des Recorders wie bei .Select.
Gruß + schönen Sonntag
Luc :-?

Anzeige
AW: Die ganze Diskussion um "Macrorecorders Bart"...
14.10.2007 11:25:00
Original
Hi,
ist dir schon mal aufgefallen, dass das # nur verwendet wird, wenn der Wert eine Ganzzahl ist?
Da der Rekorder keine Variablen deklariert(warum eigentlich, VBA in Corel kann das?), würde
der Kopiler von einem Integerwert ausgehen, was falsch wäre. In anderen Fällen führen der-
artige Verhältinsse zu einem Überlauf.
MsgBox 32565 * 10 'Überlauf
MsgBox 32565 * 10& 'kein Überlauf
mfg Kurt

Ja, eben, Kurt! ;-) Gruß owT
16.10.2007 02:52:00
Luc:-?
:-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige