Schriftfarbe aus Worddatei auslesen

  • Hallo, ich muss aus einer Word-Datei die Schriftfarbe auslesen.

    Habe mal die Wordfile angehängt um die es geht. Ich arbeite mit Word 2010.

    Weiss garnicht, was da bestenfalls der Rückgabewert sein könnte..

    Am besten wäre wohl ne Funktion wie

    isTextRed(<Text>)

    Habt ihr eine Idee?
    Viele Dank im Voraus.

    Gruß , zobi

  • Was brauchst Du genau? Musst Du die Textteile des Dokumentes extrahieren die rot sind oder musst Du nur wissen ob überhaupt etwas rot ist?

  • Ich muss wissen ob ein bestimmter Text in der File rot oder schwarz ist.

    Es ist nämlich so, dass der rote Text in der angehängten File eigentlich schwarz sein soll, aber unserer Programmierer haben, das Makro noch nicht entsprechend umgeschrieben.

    Heisst, solange der "bestimmte Text" rot ist, ist die generierte Word-File falsch generiert.
    Wenn der Text schwarz ist, dann ist es ok.

  • Lad Dir mal die erweiterte Word UDF hier herunter. Dann sollte folgendes Skript Dir einen bestimmten Text im Dokument suchen und die Farbe dazu ausgeben.

    [autoit]

    #AutoIt3Wrapper_AU3Check_Parameters= -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #AutoIt3Wrapper_AU3Check_Stop_OnWarning=Y

    [/autoit][autoit][/autoit][autoit]

    #include <WordEX.au3>

    [/autoit][autoit][/autoit][autoit]

    ; Create application object
    Global $oAppl = _Word_Create()
    If @error <> 0 Then Exit MsgBox(16, "Word UDF: _Word_DocFind Example", "Error creating a new Word application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    ; Open test document readonly
    Global $oDoc = _Word_DocOpen($oAppl, "Test.doc", Default, Default, True)
    If @error <> 0 Then Exit MsgBox(16, "Word UDF: _Word_DocFind Example", "Error opening 'Test.doc'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)

    [/autoit][autoit][/autoit][autoit]

    Example1($oDoc)

    [/autoit][autoit][/autoit][autoit]

    Exit

    [/autoit][autoit][/autoit][autoit]

    ; *****************************************************************************
    ; Example 1
    ; Find the last text "test document" in the document and mark it bold.
    ; *****************************************************************************
    Func Example1($oDoc)

    [/autoit][autoit][/autoit][autoit]

    Local $oRangeFound
    #forceref $oRangeFound
    $oRangeFound = _Word_DocFind($oDoc, "google", 0, Default, False)
    If @error <> 0 Then Return MsgBox(16, "Word UDF: _Word_DocFind Example 1", "Error locating the specified text in the document." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    ConsoleWrite("Color: " & $oRangeFound.Font.Color & @CRLF & "ColorIndex: " & $oRangeFound.Font.ColorIndex & @CRLF)

    [/autoit][autoit][/autoit][autoit]

    EndFunc ;==>Example1

    [/autoit]