Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!
Nachdem wir schon gezeigt haben, wie Du Texte in einer Excel-Tabelle übersetzen kannst, schauen wir uns nun an, wir die die DeepL-Techniken für die Gegenüberstellung der englischen und der deutschen Version eines Textes nutzen können. Dazu wollen wir bei einem Text beginnen, der sich in einem Word-Dokument befindet und diesen in ein neues Dokument übertragen, wo wir die einzelnen Absätze des Textes in jeweils eine Zelle in der linken Spalte einer Word-Tabelle einfügen. Nachdem wir den Text so auf die Zellen einer Tabelle aufgeteilt haben, wollen wir in der rechten Spalte per Aufruf der DeepL-REST-API die Übersetzung in der gewünschten Sprache unterbringen. Das Ergebnis: Die Übersetzung eines Textes, wobei jeweils ein Absatz in der einen Sprache dem gleichen Absatz in der anderen Sprache gegenübergestellt wird.
Den VBA-Code, mit dem wir die gewünschten Aufgaben erledigen, fügen wir zunächst in das Klassenmodul ThisDocument des aktuellen Dokuments ein. Hier wollen wir einen Dateiauswahldialog unterbringen, mit dem der Benutzer die Quelldatei für den Ausgangstext selektieren kann.
Diese enthält einfache Absätze mit Texten wie beispielsweise wie in Bild 1. Anschließend soll die Prozedur die Inhalte dieses Dokuments einlesen und in eine neue Tabelle im aktuellen Dokument schreiben – und zwar auf die linke Seite. Eine zweite Prozedur soll alle in der linken Spalte der Tabelle enthaltenen Texte einlesen und mit einem Aufruf der REST-API von DeepL den Text in der gewünschten Sprache ermitteln. Die Übersetzung des aktuellen Absatzes soll dann in die zweite Spalte der Tabelle neben dem Originaltext eingefügt werden.
Bild 1: Beispiel für ein Ausgangsdokument
Hauptprozedur zur Steuerung des Ablaufs
Die Hauptprozedur, die wir einfach aufrufen und welche die übrigen Funktionen und Prozeduren startet, heißt Uebersetzen. Sie ruft als Erstes die Funktion DateiAuswaehlen auf, welche den Dateiauswahldialog öffnet und mit dem der Benutzer die Word-Datei auswählt, aus welcher der zu übersetzende Text eingelesen werden soll (mehr dazu im Anschluss).
Der Pfad zu dieser Datei wird in der Variablen strPfad gespeichert. Die Prozedur Uebersetzen prüft anschließend, ob strPfad nicht die Länge 0 hat, was darauf hindeutet, dass der Benutzer gar keine Datei ausgewählt hat – in diesem Fall wird die Prozedur mit einer Meldung abgebrochen.
Im Else-Teil der Bedingung, die nur angesteuert wird, wenn strPfad nicht leer ist, prüfen wir auch noch, ob strPfad auf eine gültige Datei verweist:
Public Sub Uebersetzen() Dim strPfad As String Dim objTable As Table strPfad = DateiAuswaehlen If Len(strPfad) = 0 Then MsgBox "Keine Datei ausgewählt." Exit Sub Else If Len(Dir(strPfad)) = 0 Then MsgBox "Kein gültiger Dateipfad." Exit Sub End If End If
Ist eine gültige Datei in strPfad angegeben, rufen wir die Funktion TextAusDokumentInTabelle auf und übergeben dieser den Pfad zum Dokument mit dem zu übersetzenden Text. Diese Funktion soll die Tabelle erstellen und mit den Absätzen aus dem Word-Dokument mit dem Originaltext füllen und einen Verweis auf diese Tabelle als Parameter zurückgeben:
Set objTable = TextAusDokumentInTabelle(strPfad)
Ist objTable danach nicht leer, rufen wir schließlich noch die Prozedur UebersetzungDurchfuehren auf und übergeben dieser den Verweis auf die Tabelle, in deren linker Spalte bereits die zu übersetzenden Texte warten:
If Not objTable Is Nothing Then UebersetzungDurchfuehren objTable End If End Sub
Auswahl der Datei mit dem Originaltext