Es mehrere Ansätze, um ChatGPT und ähnliche KI-Lösungen direkt in Microsoft Excel (Desktop-Version) zu integrieren. Je nach Anwendungsfall, Sensibilität der Daten und DSGVO-Konformität bieten sich unterschiedliche Lösungen an:
💡 1. Microsoft Copilot für Excel
Beschreibung:
Copilot ist direkt in Microsoft 365 integriert und basiert auf OpenAI-Technologie (GPT-4/4o). Es steht nur in bestimmten Plänen zur Verfügung (z. B. Microsoft 365 E5, Copilot for Microsoft 365).
Funktionen:
- Analyse von Daten in Echtzeit
- Vorschläge für Formeln, Visualisierungen und Pivot-Tabellen
- Textgenerierung und Datenzusammenfassungen
Eignung für sensible Daten:
✅ Geeignet, da es sich vollständig in die Microsoft-365-Umgebung einfügt.
DSGVO-Konformität:
✅ Ja, sofern Microsoft 365 in der EU-Datenregion genutzt wird und die vertraglichen Datenschutzvereinbarungen (DPA) abgeschlossen sind.
🔌 2. Eigene VBA- oder Office Script-Integration mit OpenAI API
Beschreibung:
Per VBA oder Office Script kann man die OpenAI API direkt ansprechen, z. B. zum Zusammenfassen von Texten oder Interpretieren von Daten.
Funktionen:
- Sehr flexibel
- Nutzung von GPT-4 über API-Key
- Kann lokal oder cloudbasiert eingesetzt werden
Eignung für sensible Daten:
❌ Nicht geeignet, da Daten an die OpenAI-Server (USA) gesendet werden – selbst bei aktivierter „Zero Data Retention“-Option verbleibt ein Risiko.
DSGVO-Konformität:
⚠️ Nur eingeschränkt, da OpenAI keine vollständige DSGVO-Konformität garantiert. Es fehlt u. a. ein AVV (Auftragsverarbeitungsvertrag) nach EU-Recht.
🧩 3. Integration über Azure OpenAI + Power Automate / Power Fx
Beschreibung:
Azure OpenAI bietet GPT-Modelle auf Microsofts Infrastruktur, mit garantierter Datenhaltung in der EU.
Funktionen:
- Zugriff über Power Platform oder direkt über REST API
- Kombinierbar mit Excel-Daten (Power Query, Power Automate, etc.)
Eignung für sensible Daten:
✅ Geeignet, da Microsoft in Azure die volle Kontrolle über Datenhaltung und Zugriff gewährt
DSGVO-Konformität:
✅ Ja, wenn Azure EU-Region verwendet und AVV mit Microsoft abgeschlossen ist
🖥️ 4. Lokale GPT-Modelle (z. B. GPT4All, LM Studio, ollama) + Excel-Anbindung
Beschreibung:
Open-Source-Modelle können lokal (on-premise) betrieben werden, z. B. über Python und COM-Schnittstellen oder REST-API zu Excel.
Funktionen:
- Vollständige lokale Kontrolle
- Keine Cloud, kein externer Anbieter
Eignung für sensible Daten:
✅ Sehr gut geeignet, volle Datenhoheit
DSGVO-Konformität:
✅ Ja, da keine Daten das Unternehmen verlassen
⚠️ Aber: Aufwand für IT-Sicherheit, Modeltraining und Ressourcenbedarf hoch
🔒 Empfehlung bei sensiblen Daten (z. B. Personal-, Finanz-, Kundendaten):
Lösung | Sensible Daten geeignet? | DSGVO-Konform? | Bemerkung |
---|---|---|---|
Microsoft Copilot für Excel | ✅ Ja | ✅ Ja | Einfach, aber nur mit bestimmter Lizenz nutzbar |
Azure OpenAI mit Power Automate | ✅ Ja | ✅ Ja | Sehr flexibel und skalierbar |
Lokales GPT-Modell (on-premise) | ✅ Ja | ✅ Ja | Höchste Sicherheit, aber hoher Aufwand |
OpenAI API direkt (z. B. per VBA) | ❌ Nein | ⚠️ Eingeschränkt | Für interne Tests oder nicht-sensible Daten |
Hier ist ein vollständiges VBA-Beispiel, um über die OpenAI API (z. B. GPT-4) aus Excel Desktop heraus einen Text zu analysieren oder eine Antwort zu generieren. Beachte: Diese Lösung ist nicht DSGVO-konform bei sensiblen Daten!
🛠 Voraussetzungen
- API-Schlüssel von OpenAI: https://platform.openai.com/account/api-keys
- Microsoft XML v6.0 und Scripting Runtime aktivieren:
- VBA-Editor öffnen (
ALT + F11
) - Menü:
Extras > Verweise…
- Haken setzen bei:
- Microsoft XML, v6.0
- Microsoft Scripting Runtime
- VBA-Editor öffnen (
📄 Beispielcode
Sub GPT_Request()
Dim apiKey As String
Dim prompt As String
Dim model As String
Dim response As String
' Dein API-Schlüssel hier eintragen
apiKey = "sk-..." ' << DEIN API-KEY >>
' Eingabe aus Zelle A1
prompt = Range("A1").Value
model = "gpt-4" ' oder "gpt-3.5-turbo"
' API-Aufruf
response = CallOpenAI(apiKey, model, prompt)
' Antwort in Zelle B1
Range("B1").Value = response
End Sub
Function CallOpenAI(apiKey As String, model As String, prompt As String) As String
Dim http As New XMLHTTP60
Dim json As New Dictionary
Dim messages As New Collection
Dim message As New Dictionary
Dim requestBody As String
Dim responseText As String
Dim url As String
' OpenAI Chat Endpoint
url = "https://api.openai.com/v1/chat/completions"
' JSON-Anfrage vorbereiten
message.Add "role", "user"
message.Add "content", prompt
messages.Add message
json.Add "model", model
json.Add "messages", messages
json.Add "temperature", 0.7
requestBody = JsonConverter.ConvertToJson(json)
' HTTP POST
With http
.Open "POST", url, False
.setRequestHeader "Content-Type", "application/json"
.setRequestHeader "Authorization", "Bearer " & apiKey
.Send requestBody
responseText = .responseText
End With
' Antwort parsen
Dim jsonResponse As Object
Set jsonResponse = JsonConverter.ParseJson(responseText)
On Error Resume Next
CallOpenAI = jsonResponse("choices")(1)("message")("content")
On Error GoTo 0
End Function
🔁 JSON-Parser hinzufügen
Damit das obige Beispiel funktioniert, brauchst Du einen JSON-Parser für VBA:
- Lade
JsonConverter.bas
von:
👉 https://github.com/VBA-tools/VBA-JSON - In den VBA-Editor importieren:
Datei > Datei importieren…
→JsonConverter.bas
📌 Hinweis zur Datensicherheit
- Die Daten (Inhalt von Zelle A1) werden an OpenAI gesendet (USA).
- Verwende keine personenbezogenen oder vertraulichen Daten.
- OpenAI bietet eine Option zum Abschalten der Datenspeicherung (https://platform.openai.com/account/data-controls), aber es bleibt ein Restrisiko.
Keine Antworten