Warum das hilfreich ist
Weil Du nicht jeden Mitarbeitenden zur Formel in Zelle D14 briefen willst.
Oder weil jemand fragt: „Was macht denn die Formel da?“
Oder: „Warum ist hier eine Null?“
Mit einer kleinen Chatfunktion im Excel-Formular kannst Du GPT direkt fragen lassen.
Zelle anklicken → Erklärung bekommen.
In natürlicher Sprache.
Was die Funktion leisten soll
- Aktuelle Zelle erkennen
- Zellwert und/oder Formel auslesen
- Frage formulieren (z. B. „Was macht diese Formel?“)
- GPT-Antwort anzeigen – im eigenen UserForm
Voraussetzungen
- Excel mit VBA
- OpenAI API-Key
- UserForm mit einem Textfeld + Button
Schritt 1: UserForm vorbereiten
Erstelle eine UserForm
namens frmGPTChat
.
Element | Name | Typ |
---|---|---|
Textfeld | txtFrage | TextBox |
Textfeld | txtAntwort | TextBox (Multiline, ScrollBars) |
Button | btnSenden | CommandButton |
Setze txtAntwort.MultiLine = True
, ScrollBars = fmScrollBarsVertical
.
Schritt 2: Zellinhalt und Formel holen
Function HoleZellenInfo() As String
Dim zelle As Range
Set zelle = ActiveCell
Dim inhalt As String
Dim formel As String
inhalt = CStr(zelle.Value)
formel = zelle.Formula
HoleZellenInfo = "Wert: " & inhalt & vbCrLf & "Formel: " & formel
End Function
Schritt 3: API-Aufruf an GPT
Function SendeAnGPT(frage As String) As String
Dim http As Object
Dim apiKey As String
Dim json As String
apiKey = "DEIN_API_KEY"
json = "{" & _
"""model"": ""gpt-4""," & _
"""messages"": [{" & _
"""role"": ""user""," & _
"""content"": """ & Replace(frage, """", "\""") & """" & _
"}]" & _
"}"
Set http = CreateObject("MSXML2.ServerXMLHTTP")
http.Open "POST", "https://api.openai.com/v1/chat/completions", False
http.setRequestHeader "Content-Type", "application/json"
http.setRequestHeader "Authorization", "Bearer " & apiKey
http.Send json
SendeAnGPT = ExtrahiereGPTAntwort(http.responseText)
End Function
Schritt 4: JSON-Antwort extrahieren
Function ExtrahiereGPTAntwort(json As String) As String
Dim sc As Object
Set sc = CreateObject("ScriptControl")
sc.Language = "JScript"
sc.AddCode "function parse(j){return JSON.parse(j).choices[0].message.content;}"
ExtrahiereGPTAntwort = sc.Run("parse", json)
End Function
Schritt 5: Button im Formular verknüpfen
Private Sub btnSenden_Click()
Dim eingabe As String
Dim antwort As String
eingabe = txtFrage.Text
If eingabe = "" Then
MsgBox "Bitte eine Frage eingeben."
Exit Sub
End If
antwort = SendeAnGPT(eingabe)
txtAntwort.Text = antwort
End Sub
Schritt 6: UserForm starten mit Zellbezug
Sub StarteGPTChat()
Dim info As String
info = HoleZellenInfo()
frmGPTChat.txtFrage.Text = "Erkläre bitte Folgendes: " & vbCrLf & info
frmGPTChat.txtAntwort.Text = ""
frmGPTChat.Show
End Sub
Was Du damit machen kannst
Anwendungsfall | Beispielfrage |
---|---|
Formel erklären | „Was macht diese Formel in E14 genau?“ |
Wert prüfen | „Warum kommt hier ein negativer Wert raus?“ |
Zellkontext beschreiben lassen | „Wofür könnte dieser Wert in B7 stehen?“ |
Inhalt umformulieren | „Formuliere diesen Satz in geschäftlicher Sprache.“ |
Erweiterungsmöglichkeiten
- Chatverlauf im Sheet protokollieren
- Auswahl, ob Formel oder Zellwert übergeben wird
- Sprache umschalten per Dropdown
- Antwort per Button in Kommentar schreiben
Was Du beachten musst
- GPT sieht nur, was Du ihm gibst – keine Referenz auf andere Zellen ohne Kontext
- Formelparser in GPT ist gut, aber nicht unfehlbar
- Längere Antworten kannst Du im Textfeld besser mit Scrollbars anzeigen
- Makros nur in .xlsm speichern
„Excel kann rechnen. GPT erklärt, warum.“
Wenn Du sowas im Projekt brauchst – ich helf Dir beim Einbauen.
Ohne Add-In. Direkt mit Bordmitteln. Verständlich.
No responses yet