Seite 4 von 4

Re: Start eines Makros

Verfasst: Do, 06.10.2011 15:25
von balu
Hallo Philipp,

mag sein das sich meine Worte nach Haarspalterei anhören, aber dennoch sollte man sich in manchen Situationen genau überlegen was man sagt. Das wiederum ist aber auch nicht immer grad einfach.
Doch es läuft eben nicht flüssig, sondern unterbricht sich.
Nein! Wenn der Text-Cursor eingefroren ist, dann ist das Makro eben nicht unterbrochen! Es verhart nur an einer ganz bestimmten Stelle. Man kann in diesem Zusammenhang auch folgendes sagen: "Das Makro befindet sich in einer Endlos-Schleife!" Eigentlich ist das ein geflügeltes Wort *Endlos-Schleife*, aber es passt ausnahmsweise sehr gut.

Würde das Makro wirklich unterbrochen sein, dann würde der Text-Cursor auch wieder blinken. Oder reden wir jetzt von 2 verschiedenen Paar Schuhe?


Die Lösung des Problems lag nun jedoch in der DO-LOOP Schleife.
Das dort vorhandene Wait schien das Makro zu unterbrechen (?) bzw. anzuhalten.
Jaeien!
Stephan (mit *ph* und nicht mit *f* :wink:) hat aber auch noch mal deutlich gemacht, dass es durchaus noch eine Alternative gibt.
Also ich würde das tun was jemand anderes doch hier bereits geäußert hat (oder bilde ich mir das nur ein) und das Makro an das Ereignis "Ansicht wurde erzeugt" binden, bei mir läuft es dann.
Und das kann ich nur bestätigen, dass es dann läuft. Deine Makros sind unverändert, nur der Aufruf hat sich geändert. Und gut ist!
Was ich zumindest nicht weiß, ob das Makro auch startet und ordnungsgemäß durchläuft, wenn die Datei durch eine andere Datei per Makro im Hintergrund geladen wird. Funktioniert dann auch "Ansicht wurde erzeugt"? Das habe ich jetzt nicht getestet. Das müsstest Du selber mal auf der Arbeit probieren.

Was mir in diesem Zusammenhang wohl schon früher aufgefallen war, ich aber nicht für Beachtungswürdig hielt, war folgendes.
Deine Beispieldatei geöffnet, und ca. 20 bis 30 sekunden nichts gemacht. Auch nicht den Maus-Cursor bewegt. Erst nach dieser Zeit hatte ich die Maus Richtung Symbolleiste bewegt. Und da war mir dann aufgefallen, dass sich die Leiste durch die "Berührung" des Maus-Cursor etwas geändert hatte. Der Name bei dem Textfeld *Schriftname* und das Symbol für Textausrichtung Links wurden befüllt, beziehungsweise aktiv. Das ist aber nicht der Zustand wenn die Datei geöffnet wurde.

Also würde ich das jetzt so für mich interpretieren, dass die Ansicht noch nicht komplett erstellt wurde. Und von daher es ratsamer wäre das Makro, so wie von Stephan gesagt, an diesem Punkt zu aktivieren, anstatt bei "Neues Dokument".

Und wenn wir jetzt wieder an die Messagebox denken, dann ergibt das zumindest für mich ein Sinn wenn das Makro dadurch läuft. Denn durch sie wird eine neue Ansicht erzwungen. Oder Stephan wie siehst Du das?



Gruß
balu

Re: Start eines Makros

Verfasst: Do, 06.10.2011 15:46
von Philipp_19
Hallo
balu hat geschrieben:Nein! Wenn der Text-Cursor eingefroren ist, dann ist das Makro eben nicht unterbrochen! Es verhart nur an einer ganz bestimmten Stelle.
Okay, dazu bin ich wahrscheinlich nicht so tief drin wie ihr. Für mich hat es eben den Eindruck gehabt, dass es pausiert, sich unterbricht oder wie man es nennen mag.
balu hat geschrieben:Würde das Makro wirklich unterbrochen sein, dann würde der Text-Cursor auch wieder blinken. Oder reden wir jetzt von 2 verschiedenen Paar Schuhe?
Das verstehe ich durchaus.
balu hat geschrieben:Jaeien!
Stephan (mit *ph* und nicht mit *f* :wink:) hat aber auch noch mal deutlich gemacht, dass es durchaus noch eine Alternative gibt.
Entschuldige, dann mit ph ;-). Ich werde diese Alternative natürlich testen, hatte mich aber nun erstmal an eine andere Aufgabe gemacht. Das ganze klingt aber durchaus interessant.
balu hat geschrieben:Was ich zumindest nicht weiß, ob das Makro auch startet und ordnungsgemäß durchläuft, wenn die Datei durch eine andere Datei per Makro im Hintergrund geladen wird. Funktioniert dann auch "Ansicht wurde erzeugt"? Das habe ich jetzt nicht getestet. Das müsstest Du selber mal auf der Arbeit probieren.
Werde ich machen. Was genau du mit dem Öffnen der Datei über eine andere meinst, kann ich nicht richtig nachvollziehen. Wenn du auf die Schnittstelle anspielst, so scheint es damit nur ein kleines Problem zu geben, was ich mit dem Makro "Test" umgehen muss.
Werde mir das ganze aber anschauen.
balu hat geschrieben:Also würde ich das jetzt so für mich interpretieren, dass die Ansicht noch nicht komplett erstellt wurde. Und von daher es ratsamer wäre das Makro, so wie von Stephan gesagt, an diesem Punkt zu aktivieren, anstatt bei "Neues Dokument".

Und wenn wir jetzt wieder an die Messagebox denken, dann ergibt das zumindest für mich ein Sinn wenn das Makro dadurch läuft. Denn durch sie wird eine neue Ansicht erzwungen. Oder Stephan wie siehst Du das?
Genau das würde die Veränderung durch die MsgBox erklären. Das wäre eine akzeptable Erklärung, die man sich wohl im Hinterkopf abspeichern sollte.

Aber wenn durch die MessageBox eine neue Ansicht erzwungen wird, würde das bedeuten, dass das Makro ohne MessageBox nicht weiterlaufen würde. Das Entfernen der Codezeile "Wait _" hat das Makro ja aber mit dem Event "Neues Dokument" lauffähig gemacht. Nach deiner Erklärung könnte man schlussfolgern, dass das Wait das Laden der Ansicht "unterbricht" bzw. das dort der Cursor einfriert.

Noch eine Verständnisfrage: Während das Makro (der Cursor) bei mir einfriert, kann ich heiter in dem Dokument arbeiten. Ich kann Texte schreiben, löschen, makieren und bearbeiten. Solange ich nicht in die Menüleiste springe, nimmt er die Veränderungen alle hin, ohen dass das Makro "weiterläuft".
Kann mir das jemand erklären?
Edit: Nach einigen kleinen Tests muss ich das letzte Statement zurücknehmen: Ich bin lediglich in der Lage, Text zu schreiben bzw. zu löschen. Makieren und bearbeiten ist nicht möglich. Frage besteht dennoch.

Grüße

Re: Start eines Makros

Verfasst: Sa, 08.10.2011 17:18
von DPunch
Aloha
F3K Total hat geschrieben:Hallo DPunch,
das habe ich versucht, es ändert sich nix.
Der Code von Stephan wird ausgeführt, der Cusor steht, Xray startet nicht.
Fenster klein/groß-> Xray startet, Cursor blinkt.
Ich habe den Code gerade nochmal getestet, unter XP + 3.2.1 funktioniert er bei mir einwandfrei - sowohl das Problem mit XRay, als auch das von Philipp_19 geschilderte Problem treten mit diesen 2 Codezeilen nicht mehr auf.