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
- UserForm mit Texteingabe und Ausgabe
- Verbindung zur OpenAI Chat API
- 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