Excel: Übersetzungen mit DeepL

Im Artikel “Texte übersetzen mit DeepL” (www.vbentwickler.de/322) haben wir gezeigt, wie man mithilfe einer in der Basisversion kostenlosen Web-API Übersetzungen von Texten durchführen kann. Das Ergebnis dieses Artikels war jedoch nur eine VBA-Funktion, mit der sich ein als Parameter angegebener Text übersetzen lässt. Das ist für Otto Normalverbraucher natürlich etwas sperrig, sodass wir diese Funktion nun einmal mit in einer Excel-Tabelle gespeicherten Texten ausprobieren wollen. Gleichzeitig lernen wir etwas über das Auslesen und Schreiben von Inhalten aus und in Excel-Tabellen.

DeepL-Code zum Workbook hinzufügen

Als Erstes fügen wir den benötigten Code zum VBA-Projekt des Workbooks hinzu, in welchem wir die Funktion zum Übersetzen einsetzen wollen. Dazu öffnen wir einfach den VBA-Editor, am schnellsten mit der Tastenkombination Alt + F11, und ziehen dann die Datei mdlDeepL.bas aus dem Download zu diesem Artikel in den Projekt-Explorer des VBA-Editors. Das Ergebnis sieht anschließend wie in Bild 1 aus – das Modul landet im Ordner Module.

Eingefügtes Modul mit den Übersetzungs-Funktionen

Bild 1: Eingefügtes Modul mit den Übersetzungs-Funktionen

Inhalt einer Zelle übersetzen

Wenn wir nun den Inhalt einer Zelle übersetzen wollen, brauchen wir nur die Funktion TranslateDeepl, die wir im Modul mdlDeepL finden, auf den Inhalt dieser Zelle anzuwenden und das Ergebnis in eine weitere Zelle zu schreiben.

Dabei starten wir mit der Konstellation aus Bild 2. Der Text aus der Zelle A2 soll übersetzt und in die Zelle B2 geschrieben werden.

Dieser Text soll übersetzt werden.

Bild 2: Dieser Text soll übersetzt werden.

Wir steuern dies zunächst über den VBA-Editor. Hier legen wir die folgende Prozedur an:

Public Sub Uebersetzen()
     Dim strOriginal As String
     Dim strUebersetzung As String
     strOriginal = ActiveSheet.Cells(2, 1)
     strUebersetzung = TranslateDeepl(strOriginal, _
         sGerman, tBritishEnglish)
     ActiveSheet.Cells(2, 2) = strUebersetzung
End Sub

Die Prozedur liest zuerst den Inhalt der Zelle aus der zweiten Zeile der ersten Spalte ein und schreibt diesen in die Variable strOriginal.

Dann ermittelt sie mit dem Aufruf der Funktion TranslateDeepL die Übersetzung des Textes und schreibt diese in die Variable strUebersetzung.

Dabei übergibt sie den Originaltext aus strOriginal als ersten Parameter sowie Konstanten für die Original- und die Zielsprache als zweiten und dritten Parameter. Das Ergebnis aus der Variablen strUebersetzung schreibt die Prozedur dann in die zweite Zeile der zweiten Spalte. Mehr brauchen wir nicht!

Und die Prozedur lässt sich auch komplett ohne Variablen schreiben:

Im Artikel “Texte übersetzen mit DeepL” (www.vbentwickler.de/322) haben wir gezeigt, wie man mithilfe einer in der Basisversion kostenlosen Web-API Übersetzungen von Texten durchführen kann. Das Ergebnis dieses Artikels war jedoch nur eine VBA-Funktion, mit der sich ein als Parameter angegebener Text übersetzen lässt. Das ist für Otto Normalverbraucher natürlich etwas sperrig, sodass wir diese Funktion nun einmal mit in einer Excel-Tabelle gespeicherten Texten ausprobieren wollen. Gleichzeitig lernen wir etwas über das Auslesen und Schreiben von Inhalten aus und in Excel-Tabellen.

DeepL-Code zum Workbook hinzufügen

Als Erstes fügen wir den benötigten Code zum VBA-Projekt des Workbooks hinzu, in welchem wir die Funktion zum Übersetzen einsetzen wollen. Dazu öffnen wir einfach den VBA-Editor, am schnellsten mit der Tastenkombination Alt + F11, und ziehen dann die Datei mdlDeepL.bas aus dem Download zu diesem Artikel in den Projekt-Explorer des VBA-Editors. Das Ergebnis sieht anschließend wie in Bild 1 aus – das Modul landet im Ordner Module.

Eingefügtes Modul mit den Übersetzungs-Funktionen

Bild 1: Eingefügtes Modul mit den Übersetzungs-Funktionen

Inhalt einer Zelle übersetzen

Wenn wir nun den Inhalt einer Zelle übersetzen wollen, brauchen wir nur die Funktion TranslateDeepl, die wir im Modul mdlDeepL finden, auf den Inhalt dieser Zelle anzuwenden und das Ergebnis in eine weitere Zelle zu schreiben.

Dabei starten wir mit der Konstellation aus Bild 2. Der Text aus der Zelle A2 soll übersetzt und in die Zelle B2 geschrieben werden.

Dieser Text soll übersetzt werden.

Bild 2: Dieser Text soll übersetzt werden.

Wir steuern dies zunächst über den VBA-Editor. Hier legen wir die folgende Prozedur an:

Public Sub Uebersetzen()
     Dim strOriginal As String
     Dim strUebersetzung As String
     strOriginal = ActiveSheet.Cells(2, 1)
     strUebersetzung = TranslateDeepl(strOriginal, _
         sGerman, tBritishEnglish)
     ActiveSheet.Cells(2, 2) = strUebersetzung
End Sub

Die Prozedur liest zuerst den Inhalt der Zelle aus der zweiten Zeile der ersten Spalte ein und schreibt diesen in die Variable strOriginal.

Dann ermittelt sie mit dem Aufruf der Funktion TranslateDeepL die Übersetzung des Textes und schreibt diese in die Variable strUebersetzung.

Dabei übergibt sie den Originaltext aus strOriginal als ersten Parameter sowie Konstanten für die Original- und die Zielsprache als zweiten und dritten Parameter. Das Ergebnis aus der Variablen strUebersetzung schreibt die Prozedur dann in die zweite Zeile der zweiten Spalte. Mehr brauchen wir nicht!

Und die Prozedur lässt sich auch komplett ohne Variablen schreiben:

Access, SQL und Cloud Automation

Unser exklusives Angebot für Dich!

VB-Entwickler
12,50 € im Monat*

(Gilt für den Abschluss eines Jahres-Abonnements.)

Hier geht’s weiter →

Die ersten 4 Wochen kostenlos testen – voller Zugriff auf alle Artikel, vollständigen Code und Beispieldatenbanken. Kein Risiko: Wenn es nicht passt, kündigst Du einfach innerhalb der ersten vier Wochen.

PayPal VISA Mastercard SEPA
Kostenlos & unverbindlich

Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?

Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?

In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.

Jetzt kostenloses Access-Audit anfordern →