Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Google translate mit Makro

Google translate mit Makro
02.06.2020 09:56:53
Dante
Guten Morgen Forum,
ich habe zu dem Thema zwar einiges finden können, aber aufgrund der Zeitunterschiede der einzelnen Posts auch wiedersprüchliche Sachen.
Kann mir einer kurz sagen ob es aktuell überhaupt möglich ist sich via vba eine Google Übersetzung zu "ziehen"?
Mit deepL funktioniert mein Code zwar, aber die zur Verfügung stehenden Sprachen sind im vergleich zu Google doch etwas eingeschränkt.
Danke schon mal für Eure Antworten.
Gruß
DanteMan
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Google translate mit Makro
02.06.2020 10:22:11
ChrisL
Hi
Hier eine Lösung auf die Schnelle (das Parsen könnte man vermutlich noch eleganter lösen).
Sub t()
Dim xml As Object, strInput As String, strOutput As String
Const strSourceLanguage As String = "DE"
Const strTargetLanguage As String = "EN"
strInput = "Zeig mir die Lösung"
Set xml = CreateObject("MSXML2.XMLHTTP.6.0")
xml.Open "GET", "https://translate.googleapis.com/translate_a/single?client=gtx&sl=" & _
strSourceLanguage & "&tl=" & strTargetLanguage & "&dt=t&q=" & strInput, False
xml.send
strOutput = Split(xml.responseText, ",")(0)
strOutput = Left(strOutput, Len(strOutput) - 1)
strOutput = Right(strOutput, Len(strOutput) - 4)
MsgBox strOutput
End Sub
cu
Chris
Anzeige
AW:Ja, es ist möglich mit VBA translate; zu nutzen
02.06.2020 10:23:49
EtoPHG

Was soll so eine Antwort,EtoPHG?!? Ohne Worte...
02.06.2020 11:07:54
Martin
Es war eine Ja-Nein-Frage! owT
02.06.2020 14:16:46
Luc:?
:-?
Anzeige
Also lieber dumm tun als ernsthaft helfen? o.T.
02.06.2020 16:25:52
Martin
und deine Kommentare sind was genau?
02.06.2020 19:23:41
EtoPHG

Wenn man eine ausführliche AW wünscht, ...
03.06.2020 15:02:36
Luc:?
…sollte man keine Ja-Nein-Frage stellen, Martin;
das lernt man eigentlich schon in der Schule, erst recht dann bei einschlägigen Lehrgängen. In einem Forum kommt es auch auf präzise Fragestellungen an, denn woher soll man wissen, dass dem Frager in solchem Fall nicht ein einfaches Ja oder Nein reicht und er nur seine eigenen Versuche davon abhängig machen will.
Ist das nicht der Fall, hat er wenigstens gelernt, was oben steht. Mit dumm tun hat das rein gar nichts zu tun. Und Chris hat er ja auch nicht geantwortet, nur Zwenn…
Luc :-?
Anzeige
AW: Google translate mit Makro
02.06.2020 12:03:27
Dante
Danke Zwenn,
das schau ich mir dann gleich mal an.
Zum besseren Verständnis habe ich mal mein Übersetzungstool, was derzeit mit deepL läuft hochgeladen. Im Endeffekt möchte ich es so beibehalten, nur eben mit Google translate anstelle von DeepL.
https://www.herber.de/bbs/user/137940.xlsm
Gruß
Dante
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Google Translate mit VBA in Excel nutzen


Schritt-für-Schritt-Anleitung

Um Google Translate mit VBA in Excel zu verwenden, kannst du den folgenden Code nutzen. Dieser Code sendet eine Anfrage an die Google Translate API und gibt die Übersetzung zurück.

Sub t()
    Dim xml As Object, strInput As String, strOutput As String
    Const strSourceLanguage As String = "DE"
    Const strTargetLanguage As String = "EN"
    strInput = "Zeig mir die Lösung"
    Set xml = CreateObject("MSXML2.XMLHTTP.6.0")
    xml.Open "GET", "https://translate.googleapis.com/translate_a/single?client=gtx&sl=" & _
    strSourceLanguage & "&tl=" & strTargetLanguage & "&dt=t&q=" & strInput, False
    xml.send
    strOutput = Split(xml.responseText, ",")(0)
    strOutput = Left(strOutput, Len(strOutput) - 1)
    strOutput = Right(strOutput, Len(strOutput) - 4)
    MsgBox strOutput
End Sub

Dieser Code verwendet die MSXML2.XMLHTTP.6.0-Bibliothek, um eine HTTP-Anfrage zu stellen. Achte darauf, dass du die Quell- und Zielsprache nach Bedarf anpasst.


Häufige Fehler und Lösungen

  • Google Translate Excel funktioniert nicht: Stelle sicher, dass deine Internetverbindung funktioniert und die API von Google erreichbar ist. Eine Firewall oder ein Proxy kann ebenfalls den Zugriff blockieren.

  • VBA Google Translate gibt keine Antwort zurück: Überprüfe den Code auf Syntaxfehler und stelle sicher, dass die Sprache korrekt angegeben ist.

  • Formatierungsprobleme bei der Ausgabe: Wenn die Ausgabe in einer MsgBox nicht richtig angezeigt wird, könnte dies an der Länge der Antwort liegen. Überlege, die Ausgabe in eine Zelle zu schreiben, statt in einer MsgBox anzuzeigen.


Alternative Methoden

Falls die Google Translate API nicht wie gewünscht funktioniert, kannst du auch die DeepL API in Betracht ziehen. Hier ist ein Beispiel, wie du die DeepL API in Excel nutzen kannst:

Sub DeeplTranslate()
    Dim xml As Object, strInput As String, strOutput As String
    Const strTargetLanguage As String = "EN"
    strInput = "Zeig mir die Lösung"
    Set xml = CreateObject("MSXML2.XMLHTTP.6.0")
    xml.Open "POST", "https://api-free.deepl.com/v2/translate", False
    xml.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    xml.send "auth_key=YOUR_AUTH_KEY&text=" & strInput & "&target_lang=" & strTargetLanguage
    strOutput = xml.responseText
    MsgBox strOutput
End Sub

Ersetze YOUR_AUTH_KEY mit deinem DeepL API-Schlüssel.


Praktische Beispiele

Hier sind einige Anwendungsbeispiele für die Verwendung von Google Translate in Excel:

  1. Einfache Übersetzung: Du kannst den oben genannten VBA-Code in ein Modul einfügen und verschiedene Texte übersetzen lassen. Ändere den strInput-Wert, um unterschiedliche Sätze zu testen.

  2. Übersetzung einer ganzen Spalte: Du kannst eine Schleife erstellen, um Inhalte aus einer Spalte zu lesen und die Übersetzungen in eine andere Spalte zu schreiben.

Sub TranslateColumn()
    Dim xml As Object, strInput As String, strOutput As String
    Dim i As Integer
    Set xml = CreateObject("MSXML2.XMLHTTP.6.0")

    For i = 1 To 10 ' Übersetze die ersten 10 Zellen in Spalte A
        strInput = Cells(i, 1).Value
        xml.Open "GET", "https://translate.googleapis.com/translate_a/single?client=gtx&sl=DE&tl=EN&dt=t&q=" & strInput, False
        xml.send
        strOutput = Split(xml.responseText, ",")(0)
        Cells(i, 2).Value = strOutput ' Schreibe die Übersetzung in Spalte B
    Next i
End Sub

Tipps für Profis

  • API-Rate Limits: Achte darauf, dass Google Translate API ein Limit für die Anzahl der Anfragen hat. Übermäßige Anfragen könnten zu Sperrungen führen.

  • Benutzerdefinierte Funktionen: Überlege, eine benutzerdefinierte Funktion in VBA zu erstellen, die die Übersetzung direkt in eine Zelle zurückgibt, ähnlich wie die =GOOGLETRANSLATE-Funktion in Google Sheets.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinem VBA-Code, um mögliche Probleme wie Netzwerkfehler abzufangen.


FAQ: Häufige Fragen

1. Wie kann ich die Quell- und Zielsprache ändern?
Ändere die Werte von strSourceLanguage und strTargetLanguage im Code.

2. Warum funktioniert die Google Translate API manchmal nicht?
Es kann mehrere Gründe geben, wie z.B. Serverprobleme bei Google, Netzwerkprobleme oder falsche API-Anfragen.

3. Gibt es eine Begrenzung für die Anzahl der Übersetzungen?
Ja, Google hat Limits für die Nutzung seiner API. Überprüfe die aktuellen Richtlinien von Google für detaillierte Informationen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige