Funktionreferenz


_Word_DocFind

Beschreibung anzeigen in

Führt die angegebene Suchfunktion durh oder wiederholt sie

#include <Word.au3>
_Word_DocFind ( $oDoc [, $sFindText = "" [, $vSearchRange = 0 [, $oFindRange = Default [, $bForward = True [, $bMatchCase = False [, $bMatchWholeWord = False [, $bMatchWildcards = False [, $bMatchSoundsLike = False [, $bMatchAllWordForms = False [, $bFormat = False]]]]]]]]]] )

Parameter

$oDoc Word Document Objekt
$sFindText [optional] Der Text nach dem gesucht werden soll. "" gibt an, dass nur nach Formatierung gesucht werden soll.
Es kann nach Steuerzeichen gesucht werden, indem der entsprechende Zeichencode angegeben wird.
Beispiel: "^p" entspricht einem Paragraphenzeichen, "^t" einem Tabulatorzeichen (Standard = "")
$vSearchRange [optional] Definiert die Markierung (Selection) oder den Bereich (Range) der durchsucht werden soll. Mögliche Werte:
    -1 - Durchsucht die aktive Markierung
  0 - Durchsucht das ganze Dokument document (Standard)
Ein beliebiger Bereich (Range) des Dokumentes
$oFindRange [optional] Definiert den Bereich (Range) den der letzte Aufruf von _Word_DocFind() zurückgegeben hat.
Dieser ist notwendig, wenn nach dem nächsten oder vorhergehenden Vorkommen von $sFindText gesucht werden soll.
Wenn dieser Parameter auf Standard gesetzt ist, dann beginnt die Suche am Beginn von $vSearchRange (Standard)
$bForward [optional] Bei True wird vorwärts gesucht (in Richtung Dokumentenende) (Standard = True)
$bMatchCase [optional] Bei True wird Groß-/Kleinschreibung bei der Suche beachtet (Standard = False)
$bMatchWholeWord [optional] Bei True wird nur nach ganzen Worten gesucht (Standard = False)
$bMatchWildcards [optional] Bei True enthält der Suchtext spezille Suchoperatoren (Standard = False)
$bMatchSoundsLike [optional] Bei True werden Worte, die dem Suchtext ähnlich klingen gefunden (Standard = False)
$bMatchAllWordForms [optional] Bei True werden alle Abwandlungen des Suchtextes gefunden
(e.g. "sitzen" findet "sitzen" und "saß") (Standard = False)
$bFormat [optional] Bei True wird zusätzlich zum oder anstatt des Suchtextes nach Textformatierung gesucht (Standard = False)

Rückgabewert

Erfolg: Ein Bereichs-Objekt (Range) das den gefundenen Text umfasst.
Fehler: 0 und sets @error ungleich 0.
@error: 1 - $oDoc ist kein Objekt
2 - $vSearchRange ist kein Objekt
3 - $oFindRange ist kein Objekt
4 - $sFindText konnte nicht gefunden werden. @extended wird auf den COM Fehlercode gesetzt

Verwandte Funktionen

_Word_DocFindReplace

Beispiel

Beispiel 1

#include <MsgBoxConstants.au3>
#include <Word.au3>

; Erzeugt ein neues oder stellt eine Verbindung zu einem bestehenden Word-Objekt her
Local $oWord = _Word_Create()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocFind Beispiel 1", _
        "Fehler beim Erstellen eines neuen Word-Anwendungsobjektes." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
; Öffnet das Testdokument im Lesemodus
Local $oDoc = _Word_DocOpen($oWord, @ScriptDir & "\Extras\Test.doc", Default, Default, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocFind Beispiel 1", _
        "Fehler beim Öffnen von '.\Extras\Test.doc'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)

; Findet das erste Auftreten von "test document". Suchrichtung vom Ende zum Anfang des Dokumentes. Markiert die gefundene Stelle in fetter Schrift.
Local $oRangeFound
#forceref $oRangeFound
$oRangeFound = _Word_DocFind($oDoc, "test document", 0, Default, False)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocFind Beispiel 1", _
        "Fehler beim Suchen des angegebenen Textes." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
$oRangeFound.Bold = True
MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocFind Beispiel 1", _
        "Der Text 'test document' wurde vom Ende des Dokumentes in Richtung Dokumentenanfang gesucht, gefunden und fett markiert.")

Beispiel 2

#include <MsgBoxConstants.au3>
#include <Word.au3>

; Erzeugt ein neues oder stellt eine Verbindung zu einem bestehenden Word-Objekt her
Local $oWord = _Word_Create()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocFind Beispiel 2", _
        "Fehler beim Erstellen eines neuen Word-Anwendungsobjektes." & @CRLF & "@error = " & @error & ", @extended = " & @extended)

; Öffnet das Testdokument im Lesemodus
Local $oDoc = _Word_DocOpen($oWord, @ScriptDir & "\Extras\Test.doc", Default, Default, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocFind Beispiel 2", _
        "Fehler beim Öffnen von '.\Extras\Test.doc'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)

; Unterstreicht den Text "line" in den Absätzen 2-4.
Local $oRangeFound, $oSearchRange
$oSearchRange = _Word_DocRangeSet($oDoc, -1, $wdParagraph, 1, $wdParagraph, 3)
$oRangeFound = _Word_DocFind($oDoc, "line", $oSearchRange)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocFind Beispiel 2", _
        "Fehler beim Suchen des angegebenen Textes im Dokument." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
$oRangeFound.Underline = True
While 1
    $oRangeFound = _Word_DocFind($oDoc, "line", $oSearchRange, $oRangeFound)
    If @error Then ExitLoop
    $oRangeFound.Underline = True
WEnd
MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocFind Beispiel 2", _
        "Alle Vorkommen der Zeichenkette 'line' in den Absätzen 2-4 wurden unterstrichen.")

Beispiel 3

#include <MsgBoxConstants.au3>
#include <Word.au3>

; Erzeugt ein neues oder stellt eine Verbindung zu einem bestehenden Word-Objekt her
Local $oWord = _Word_Create()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocFind Beispiel 3", _
        "Fehler beim Erstellen eines neuen Word-Anwendungsobjektes." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
; Öffnet das Testdokument im Lesemodus
Local $oDoc = _Word_DocOpen($oWord, @ScriptDir & "\Extras\Test.doc", Default, Default, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocFind Beispiel 3", _
        "Fehler beim Öffnen von '.\Extras\Test.doc'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)

; Search for text "line" in lines 2-4 and mark the following number as bold.
; If the number is "3" insert text before text "line".
Local $oRangeFound, $oSearchRange, $oRangeText
$oSearchRange = _Word_DocRangeSet($oDoc, -1, $wdParagraph, 1, $wdParagraph, 3)
$oRangeFound = _Word_DocFind($oDoc, "line", $oSearchRange)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocFind Beispiel 3", _
        "Error locating the specified text in the document." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
; Mark the line number as bold. Create a new range moved one word to the right
$oRangeText = _Word_DocRangeSet($oDoc, $oRangeFound, Default, 1, Default, 1)
$oRangeText.Bold = True
While 1
    $oRangeFound = _Word_DocFind($oDoc, "line", $oSearchRange, $oRangeFound)
    If @error Then ExitLoop
    ; Mark the line number as bold. Create a new range (duplicate to not alter the result of the find operating) and move it one word to the right
    $oRangeText = $oRangeFound.Duplicate
    $oRangeText = _Word_DocRangeSet($oDoc, $oRangeText, Default, 1, Default, 1)
    $oRangeText.Bold = True
    ; Insert text if linenumber = 3
    If StringStripWS($oRangeText.Text, 8) = "3" Then $oRangeFound.InsertBefore("(maybe) ")
WEnd
MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocFind Beispiel 3", _
        "All line numbers in paragraphs 2-4 marked as bold." & @CRLF & "Text inserted before 'line 3'.")

Beispiel 4

#include <MsgBoxConstants.au3>
#include <Word.au3>

; Erzeugt ein neues oder stellt eine Verbindung zu einem bestehenden Word-Objekt her
Local $oWord = _Word_Create()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocFind Beispiel 4", _
        "Fehler beim Erstellen des Word-Anwendungsobjektes." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
; Öffnet das Testdokument im Lesemodus
Local $oDoc = _Word_DocOpen($oWord, @ScriptDir & "\Extras\Test.doc", Default, Default, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocFind Beispiel 4", _
        "Fehler beim Öffnen von '.\Extras\Test.doc'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)

; Ersetzt das Paragraf-Steuerzeichen durch Paragraf-Steuerzeichen + Text + Paragraf-Steuerzeichen.
; Ersetzt nur das erste Auftreten.
Local $oRangeFound
$oRangeFound = _Word_DocFind($oDoc, "^p")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocFind Beispiel 4", _
        "Fehler beim Suchen des Paragraf-Steuerzeichens." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
$oRangeFound.InsertAfter("[New Line] ")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocFind Beispiel 4", _
        "Fehler beim Einfügen des Textes." & @CRLF & "@error = " & @error & _
        ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Word UDF: _Word_DocFind Beispiel 4", "Das Paragraf-Steuerzeichen wurde erfolgreich ersetzt" & @CRLF & _
        "und der Text eingefügt.")