Chat-Assistenz direkt in Word: ChatGPT-artige Hilfe für Texte im Dokument per OpenAI Chat API in UserForm

Worum geht’s?

Du schreibst ein Dokument in Word.
Brauchst Hilfe beim Formulieren, Umschreiben, Zusammenfassen.
Aber willst nicht ständig zwischen Word und Browser hin- und herspringen.

Also baust Du Dir die GPT-Hilfe direkt ins Word-Dokument.
Per UserForm. Und Chat API.
Ich zeig Dir, wie.

Was brauchst Du?

  • Microsoft Word mit aktivem Makro-Zugriff
  • Ein wenig Erfahrung mit VBA UserForms
  • Einen OpenAI API-Key
  • Lust, das Ganze produktionsreif zu machen

Idee: GPT fragt per Chat, zeigt Antwort direkt in Word

Du markierst einen Text im Dokument
Klickst auf einen Button
Gibst in einer kleinen Chat-Box Deine Frage ein
GPT antwortet direkt daneben
Optional ersetzt Du den Text mit der GPT-Antwort

Aufbau in 3 Schritten

  1. UserForm mit Texteingabe und Ausgabe
  2. Verbindung zur OpenAI Chat API
  3. Integration mit markiertem Text im Word-Dokument

Beispiel: UserForm „frmChatAssistent“

Die Form enthält:

  • TextBox „txtPrompt“ (Multiline, für Deine Eingabe)
  • CommandButton „cmdSenden“ (zum Auslösen)
  • TextBox „txtAntwort“ (Multiline, Locked = True)
  • Optional: Button „cmdEinfügen“ (ersetzt markierten Text)

Modul: OpenAI Chat API ansprechen

Function SendeAnGPT(prompt As String) As String
    Dim http As Object
    Dim json As String
    Dim result As String
    Dim apiKey As String

    apiKey = "sk-..." ' Dein API-Key hier

    Set http = CreateObject("MSXML2.XMLHTTP")

    json = "{""model"":""gpt-4"",""messages"":[{""role"":""user"",""content"":""" & Replace(prompt, """", "\""") & """}],""temperature"":0.7}"

    With http
        .Open "POST", "https://api.openai.com/v1/chat/completions", False
        .setRequestHeader "Content-Type", "application/json"
        .setRequestHeader "Authorization", "Bearer " & apiKey
        .send json
        result = .responseText
    End With

    Dim startPos As Long, endPos As Long
    startPos = InStr(result, """content"":""") + 11
    endPos = InStr(startPos, result, """}""")
    SendeAnGPT = Mid(result, startPos, endPos - startPos)
End Function

Code im Formular

Private Sub cmdSenden_Click()
    Dim frage As String
    Dim antwort As String

    frage = txtPrompt.Text

    If Len(Trim(frage)) = 0 Then
        MsgBox "Bitte eine Eingabe machen.", vbExclamation
        Exit Sub
    End If

    txtAntwort.Text = "Warte auf Antwort ..."
    DoEvents

    antwort = SendeAnGPT(frage)
    txtAntwort.Text = antwort
End Sub

Text aus Word direkt übernehmen

Private Sub UserForm_Initialize()
    If Selection.Type = wdSelectionNormal Then
        txtPrompt.Text = "Bitte optimiere folgenden Text:" & vbCrLf & Selection.Text
    Else
        txtPrompt.Text = ""
    End If
End Sub

Antwort direkt in Word einfügen

Private Sub cmdEinfügen_Click()
    If Len(txtAntwort.Text) > 0 Then
        Selection.Text = txtAntwort.Text
        Unload Me
    End If
End Sub

Sicherheit, Geschwindigkeit, Alltagstauglichkeit

  • OpenAI-API ist schnell, aber nicht offlinefähig
  • Die Antwort kommt als reiner Text, kein Markdown
  • Keine Antwort? Prüfe API-Key und Rate-Limit
  • Großer Vorteil: Kein Copy-Paste mehr zwischen Word und Browser

Erweiterungsideen

  • Auswahl des GPT-Modells per Dropdown
  • Chat-Verlauf in Liste speichern
  • Token-Zähler und Cost-Tracking
  • Mehrsprachigkeit der Oberfläche

Wenn Du oft Texte in Word optimieren musst – mach Dir die GPT-Hilfe direkt ins Fenster, dann läuft das wie von selbst.

Keine Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert