Hi.
Der allereinfachste Fall wäre so lösbar.
Dabei kommt der Text natürlich aus der Zelle und ist nicht wie hier im Beispiel, im Quelltext vorgegeben.
Option Explicit
Sub Test()
Dim vntText As Variant
Dim i As Long
'Beispiel
vntText = "Hund ist haarig"
'Leerzeichen als Trennzeichen
vntText = Split(vntText, " ")
'Ausgabe rückwärts
For i = UBound(vntText) To LBound(vntText) Step -1
Debug.Print vntText(i)
Next
End Sub
Damit hat man dann eine Liste mit den zu übersetzenden Wörtern, welche man in dem selbstdefinierten Wörterbuch sucht. Mit Replace kann man sie dann durch das Fremdwort schließlich ersetzen (Find-Methode des Range-Objekts).
Etwas komplizierter wird es, wenn im Satz noch Zeichen wie z.B. das Komma vorkommen - "Hund ist haarig, aber trocken". Der obige Quelltext würde dann "haarig" zusammen mit dem Komma erfassen und dies findet er dann nicht im Wörterbuch. Da gibt es auch noch verzwicktere Beispiele, an die man im ersten Moment gar nicht denkt. Wie auch immer, die einfachste Lösung wäre hier diese Zeichen (also z.B. das Komma) zu entfernen (Replace). Die etwas aufwendigere Variante bestünde darin, die Wörter zu erkennen und alles andere zu ignorieren (parsen). Das würde per Schleife gelöst, die alle zusammenhängende Buchstaben erfasst.
Gruß
|