Ausführgeschwindigkeit von Makros

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

wolffsed
Beiträge: 7
Registriert: Mi, 22.02.2006 22:29

Ausführgeschwindigkeit von Makros

Beitrag von wolffsed »

Mir fällt auf, dass Makros in Calc im Vergleich zu Excel _deutlich_ langsamer ausgeführt werden. Außerdem bekomme ich während der Ausführung keinen WaitCursor angezeigt. Warum ist das so?
Kann die Ausführungsgeschwindigkeit damit zu tun haben, dass für die Makros Java notwendig ist?
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Mir fällt auf, dass Makros in Calc im Vergleich zu Excel _deutlich_ langsamer ausgeführt werden.
Kann sein, habe ich mir noch nie Gedanken gemacht. Könntest Du bitte einen Beispielcode posten (eigentlich zwei für Calc und Excel) bei dem es sich so verhält?
Außerdem bekomme ich während der Ausführung keinen WaitCursor angezeigt. Warum ist das so?
Die Sanduhr ist einfach nicht vorgesehen. Mauscursor zu programmieren ist meines Wissens in OOoBasic schwierig, bisher habe ich immer vorgeschlagen eine Fortschrittsanzeige auf einem Basic-Dialog oder die der Statuszeile als Alternative für die Sanduhr zu verwenden.
Kann die Ausführungsgeschwindigkeit damit zu tun haben, dass für die Makros Java notwendig ist?
Nein. Deine Makros laufen doch, sonst könntest Du ja nicht feststellen das sie langsamer laufen. Ich schließe jetzt mal nicht grundsätzlich aus das man in bestimmten Fällen Java brauchte, ohne zu wissen was das für Makros wären, aber ganz sicher werden schon funktionierende Makros durch Java-Installation nicht schneller.



Gruß
Stephan
wolffsed
Beiträge: 7
Registriert: Mi, 22.02.2006 22:29

Beitrag von wolffsed »

Stephan hat geschrieben:
Kann die Ausführungsgeschwindigkeit damit zu tun haben, dass für die Makros Java notwendig ist?
Nein. Deine Makros laufen doch, sonst könntest Du ja nicht feststellen das sie langsamer laufen. Ich schließe jetzt mal nicht grundsätzlich aus das man in bestimmten Fällen Java brauchte, ohne zu wissen was das für Makros wären, aber ganz sicher werden schon funktionierende Makros durch Java-Installation nicht schneller.
8)
Wenn ich keine Java-Engine auf meiner Maschine installiert habe bekomme ich den Hinweis, dass Makros deshalb nicht ausgeführt werden können! Also ist Java doch notwendig, oder widersprichst Du...!??
wolffsed
Beiträge: 7
Registriert: Mi, 22.02.2006 22:29

Beitrag von wolffsed »

Ich muss meine Aussage im Hinblick auf Java korrigieren: Heute morgen kann ich das Makro ausführen auch wenn Java in den Calc Optionen ausgeschaltet ist... aber:

Die Ausführungsgeschwindigkeit ist eindeutig viel zu langsam. Und durch den nicht vorhandenen WaitCursor bzw. einen Fortschrittsbalken erkennt der Benutzer auch garnicht, ob etwas getan wird oder nicht.

Das ist mE "suboptimal" um es vornehm zu formulieren. Das kann ich meinen Benutzer nicht zumuten.
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Beitrag von Karolus »

Hallo

Stephan schrieb:
Könntest Du bitte einen Beispielcode posten (eigentlich zwei für Calc und Excel) bei dem es sich so verhält?
@Stephan
Wenn Wolfgang konkrete Fragen nicht beantwortet weil es seinem user nicht zuzumuten ist ;->
dann tu ich das mal , in calc meint er wohl dieses :


Sub leerezellennullen()
oSelect=ThisComponent.CurrentSelection
oColumn=oselect.Columns
oRow=oSelect.Rows
For n= 0 To oColumn.getCount-1
For m = 0 To oRow.getCount-1
oCell=oselect.getCellByPosition (n, m)
Select Case oCell.String
Case ""
oCell.value = 0
End Select
next
next
End Sub

Stephan , falls es dir bekannt vorkommt ,es war vor kurzem noch zum Setzen der Hintergrundfarbe gedacht; ich habe lediglich eine Zeile so geändert ,das leere Zellen mit
Nullwerten versehen werden.
Das entsprechende Excel -Makro kenne ich nicht , das muss Wolfgang schon selber
liefern

Gruß Karo
wolffsed
Beiträge: 7
Registriert: Mi, 22.02.2006 22:29

Beitrag von wolffsed »

Karolus hat geschrieben:Das entsprechende Excel -Makro kenne ich nicht , das muss Wolfgang schon selber liefern
In Excel brauche ich für diese Aufgabe kein Makro... Da mache ich solche Dinge über Suchen und Ersetzen.

Wir nutzen aber in Excel durchaus deutlich komplexere Makros als das oben beschriebene und in Dateien, die deutlich größer sind als meine aktuelle Testdatei mit 5500 Zeilen.

Das Makro in OO braucht bei der aktuellen Testdatei "gefühlte" 90 Sekunden - ich hab's nicht gestoppt. Das ist einfach zu lange, zumal ich nicht erkennen kann, ob die Ausführung noch aktiv ist oder nicht... :roll:
Antworten