PDA

Vollständige Version anzeigen : Word-Makros(VBA) mit (for)Schleifen?


thalion28
12.08.2003, 10:55
Ich hab folgenden Ausgangstext:

56 $ lalalalalalalalalalalalalalala<und ganz lang weiter>
$ lalalalalalalalalalalalalalala<und ganz lang weiter>***
$ lalalalalalalalalalalalalalala
$ lalalalalalalalalalalalalalala<und ganz lang weiter>
##
[Nächster Block]
##
...

und die Aufgabenstellung:
Erstelle ein Makro was den Text wie folgt formatiert:
Alle Zeilen mit $ rücke auf die selbe Höhe ein!
Alle Zeilen mit ## ersetze durch wagerechten Strich!
Alle Zeilen mit am Ende *** schreibe kursiv!

Ich hab Makros über die Word "Makro aufzeichenen" - Funktion erstellt
die diese Aufgaben schrittweise erledigen, also z. Bsp. Suche nächstes $
rücke Zeile ein! Das kann ich jetzt natürlich benutzen bis ich durch den Text durch bin. Schöner wärs aber wenn es möglich wäre das Word diese Anweisung durchführt bis er einmal komplett durch den Text ist bzw. keine$ mehr findet! Allerdings hab ich bis jetzt eigentlich nur mit erwähnten "Aufzeichnen" - Knopf gearbeitet und mir das eigentlich VBA dahinter nur am Rande angeschaut. Trotzdem dachte ich mir programmieren ist programmieren und eigentlich sollte ich doch um mein schon erstelltes Makro ne Schleife legen können - oder?

Also, was weiß ich, so ungefähr
do Makro1 until Textende
-oder-
solange nächstes $ = true do makro1

edit:Ups zu spät gelesen: Word Version: 2000

Ich bedanke mich schonmal im vorraus
Gruß
thalion28

simba
15.08.2003, 12:44
Hi Thalion,

mir ist der Grund nicht ganz klar, warum du nicht mit alle ersetzen arbeitest:

Selection.Find.Execute Replace:=wdReplaceAll

Was habe ich übesehen?
Gruß Simba

thalion28
22.08.2003, 02:09
Hmm, naja also mehreres

1.) Hab das mit alle ersetzen probiert, so richtig ging das nicht, und daher hoffte ich das das mit der Schleifenidee, ,wenn es die den gibt, eigentlich elganter zu lösen sei!!! Also bleibt die alte Frage - gibts sowas - egal obs auch anders geht...

2.)Microsoft und Word hast du nat. übersehen ;)
Bsp.: benutze ich alle ersetzen um alle ## in
horizontale Linien umzuwandeln kriegt er das nicht hin ... versuchs mal... mit viel tricksen klappts galub ich so halbwegs aber wenn man richtig hinschaut setzt er sie auch dann noch irgendwie nicht richtig ein(zu weit rechts)
Außerdem ist mir(wahrscheinlich aus Unwissenheit)
nicht klar wie ich ihm beigringen kann: Markiere ALLE
Blöcke die ein *** am Ende haben. Ja klar die Sterne allein gehen - aber die entsprechenden Blöcke bzw. Zeilen dazu ??? Und das kann ich schrittweise ja schon machen -> suche ***, markier block,mach kursiv !!!

3.)Ich kann die $ nicht durch tabs ersetzen da
bei langen Zeilen sowas entsteht:
56___$ lalalalalalalalalalalalalalala
_____$ lalalalalalalalalalalalalalala***
_____$ lalalalalalalalalalalalalalalalalalalalalalalalala
lalalalalala
_____$ lalalalalalalalalalalalalalala
##
Ich muss mit Einzug vergößern arbeiten und ich wüßte nicht wie ich das bei ersetzen benutzen kann..


4.)Also Fazit: Umgekehrt: Mir ist nicht klar wie
man alle 3 Aufgaben mit alle ersetzen lösen können sollte! Naja, aber Beispieltext ist ja dabei und wenns jemand tatsächlich hinkriegt, VORALLEM mit SEHR langen lalala Zeilen, dann bin ich beigeistert und gesteh gerne meine Unwissenheit ein :)

Gruß und erneut Dank im voraus!
thalion28