Der aufgezeichnete Code für Suchen & Ersetzen

Das folgende Beispiel zeigt den Code, der beim Aufzeichnen von Suchen & Ersetzen in Word erzeugt wird. Wie Sie Code aufzeichen, finden Sie auf der Seite Makro aufzeichnen.

Aufgabe sollte hier sein, alle Wörter Dokument im Text durch das Wort Dokument1 zu ersetzen. Bei der Aufzeichnung werden auch Einstellungen erzeugt, die zur Ausführung der Aufgabe nicht unbedingt notwendig sind. In Word finden Sie es unter Bearbeiten | Ersetzen

 

               
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
Sub Suchen_aufgezeichnet() 
    '
    ' Suchen_aufgezeichnet Makro
    ' Makro aufgezeichnet am xx.xx.xxxx von www.vba-wordwelt.de
    '
   Selection.Find.ClearFormatting 
   Selection.Find.Replacement.ClearFormatting 
   With Selection.Find 
      .Text = "Dokument" 
      .Replacement.Text = "Dokument1" 
      .Forward = True 
      .Wrap = wdFindContinue 
      .Format = False 
      .MatchCase = False 
      .MatchWholeWord = False 
      .MatchWildcards = False 
      .MatchSoundsLike = False 
      .MatchAllWordForms = False 
   End With 
    
   Selection.Find.Execute Replace:=wdReplaceAll 
    
End Sub 
 


Im Folgenden sehen die den gleichen Code für die genannte Aufgabe, allerdings nur den Code, der auch unbedingt notwendig ist. Da sehen Sie bereits die Unterschiede. Sie müssen je nach Ihrer Aufgabe entscheiden, welche Einstellungen Sie übernehmen wollen oder nicht.

 

               
001
002
003
004
005
006
007
008
009
010
011
012
013
Sub Suchen_mindest_Code() 
    
   With Selection.Find 
      .Text = "Dokument" 
      .Replacement.Text = "Dokument1" 
      .Forward = True 
      .Wrap = wdFindContinue 
   End With 
    
   Selection.Find.Execute Replace:=wdReplaceAll 
    
End Sub 

 

Schauen Sie sich jetzt mal die Zeile 10 an. In dieser Zeile sehen Sie den Befehl Selection.Find.Ececute mit einem Parameter, also einer zusätzlichen Angabe nach dem eigentlichen Befehl. Dieser Parameter kann entsprechend ergänzt werden. Es können dadurch in dem oberen Teil einige Zeilen als Parameter dieses Befehls geschrieben werden.

 

Somit kann man den Code auf eine Zeile reduzieren: 

               
001
002
003
004
005
006
007
008
009
Sub Suchen_optimiert_Code() 
      
   Selection.Find.Execute FindText:="Dokument", ReplaceWith:="Dokument1", Forward:=True, Wrap:=wdFindContinue, Replace:=wdReplaceAll 
    
    'diese Zeile kann auch so geschrieben werden
   Selection.Find.Execute "Dokument", , , , , , True, wdFindContinue, , "Dokument1", wdReplaceAll 
    
End Sub 

 

Der Befehl Selection.Find.Execute kann alle notwendigen Parameter aufnehmen. Sie können den Namen des Parameters schreiben mit einem := und den zugehörigen Werten, dann müssen Sie nicht alle Prameter angeben und die Reihenfolge spielt keine Rolle.

Das ist in Zeile 6 anders. Hier müssen Sie die Reihenfolge einhalten und dafür aber auch nur die zugehörigen Werte schreiben.

Jetzt fragen Sie sicherlich - woher weiß ich denn, wo welche Prameter stehen? Das ist eigentlich ganz einfach: Sollten Sie den Befehl in das Codefenster schreiben, so erhalten Sie als Ergänzung alle Parameter angezeigt. Jetzt können Sie die Alternativen auswählen wie im Codebeispiel angezeigt. 

Die Nachteile der letzten Schreibweisen liegen natürlich auf der Hand: Es sind sehr lange Zeilen! Und wenn Sie nicht gerade einen größeren Bildschirm haben, dann sehen Sie das Ende der Zeile schon nicht mehr. Aber auch dafür gibt es eine Lösung: Die Zeilen können mit einem kleinen Trick in einer neuen Zeile fortgesetzt werden. Dazu müssen Sie an die Stelle, an der Sie einen Zeilenumbruch einfügen wollen, einfach einen Leerschritt und anschließend einen Unterstrich einfügen. Dann den Code in der nächsten Zeile fortsetzen. Der Code sieht anschließend so aus:

               
001
002
003
004
005
006
007
008
009
010
011
012
013
014
Sub Suchen_optimiert_Code() 
      
   Selection.Find.Execute FindText:="Dokument", _ 
   ReplaceWith:="Dokument1", _ 
   Forward:=True, _ 
   Wrap:=wdFindContinue, _ 
   Replace:=wdReplaceAll 
    
    'diese Zeile kann auch so geschrieben werden
   Selection.Find.Execute "Dokument", , , , , , True, _ 
   wdFindContinue, , "Dokument1", wdReplaceAll 
    
End Sub 


Nun entscheiden Sie selbst, welche Variante Sie bevorzugen. Für die Ausführung des Codes und seine Funktionen spielt es keine Rolle.

 



zurück zur Übersicht Suchen - Ersetzen
Diese Seite zu Mister Wong hinzufügen
Diese Seite zu ecure.del.icio.us hinzufügen
Diese Seite zu webnews hinzufügen
Diese Seite zu Google Bookmarks hinzufügen
Diese Seite zu linkarena hinzufügen
Diese Seite zu Yahoo hinzufügen






nützliche Links

Makros aufzeichnen Makros aufzeichnen
Suchen/Ersetzen in Word 2003 Suchen/Ersetzen in Word 2003
Suchen/Ersetzen in Word 2007 Suchen/Ersetzen in Word 2007






Für weitere Infos bitte auf den Text klicken

http://www.prawi-officewelt.de
 .::. nach oben .::.
 
 
©2008 - 2024 www.VBA-Wordwelt.de - alle Rechte vorbehalten
 
Kontakt | Impressum
los Suche

Cookies speichern Informationen lokal auf Ihrem Rechner, ohne die Verwendung kann der Funktionsumfang beeinträchtigt werden. Weitere Informationen


Annehmen