Microsoft Office Automatisierung mit VBA

Jeden Tag klickt jemand in Deinem Unternehmen die gleichen 47 Schritte in Excel durch. Jeden. Einzelnen. Tag.

Daten aus einer Datei kopieren, in eine andere einfügen, Formatierung anpassen, Summen prüfen, als PDF speichern, per Outlook verschicken. Das dauert 45 Minuten. Jeden Tag. Seit drei Jahren.

Das sind 540 Stunden. Rund 68 Arbeitstage. Fast ein Viertel eines Jahresgehalts — verbrannt mit Copy-Paste.

VBA kann das in 30 Sekunden erledigen. Ein Klick, ein Makro, fertig.

Ich bin Sönke Schäfer, der Datenschäfer 🐑. Ich automatisiere Microsoft Office für KMU im Norden. Nicht mit teuren Plattformen, nicht mit Cloud-Abos, sondern mit VBA — der Programmiersprache, die in jedem Excel, jedem Access, jedem Outlook bereits eingebaut ist. Kostenlos. Seit über 25 Jahren.

Was ist VBA — und warum ist es noch relevant?

VBA steht für Visual Basic for Applications. Es ist die Programmiersprache, die in allen Microsoft-Office-Anwendungen steckt: Excel, Access, Word, Outlook, PowerPoint. Damit kannst Du alles automatisieren, was Du in Office auch manuell tun könntest — nur schneller, fehlerfreier und wiederholbar.

„Aber ist VBA nicht veraltet?“ Nein. VBA ist wie ein Schraubenschlüssel — nicht hip, nicht neu, aber das richtige Werkzeug für den Job. Microsoft hat VBA weder abgekündigt noch ersetzt. Es läuft in Office 2024, es läuft in Microsoft 365, und es wird auch morgen noch laufen.

Es gibt modernere Alternativen (Power Automate, Office Scripts, Python in Excel). Die haben ihre Berechtigung. Aber für die meisten Automatisierungen in einem KMU ist VBA nach wie vor der schnellste, günstigste und zuverlässigste Weg.

Was ich für Dich automatisieren kann

Excel-Automatisierung

Excel ist das Werkzeug, in dem die meiste manuelle Arbeit steckt — und wo VBA den größten Hebel hat.

Typische Aufgaben, die ich automatisiere:

Reporting: Monatsbericht, der aus drei Quelldateien zusammengebaut wird — automatisch. Jeden Monat gleich. Kein Vergessen, keine Tippfehler, keine Formatierungsabweichungen.

Datenaufbereitung: CSV-Dateien importieren, Spalten umbenennen, Formate vereinheitlichen, Duplikate markieren, Ergebnis speichern. Was manuell eine Stunde dauert, läuft per Makro in Sekunden.

Massenverarbeitung: 200 Excel-Dateien aus einem Ordner einlesen, bestimmte Werte extrahieren, in einer Zusammenfassung konsolidieren. VBA iteriert durch Dateien, wie Du durch einen Aktenschrank blätterst — nur schneller.

Formular-Logik: Eingabemasken in Excel, die Felder ein- und ausblenden, Pflichtfelder prüfen, Berechnungen im Hintergrund ausführen und das Ergebnis als PDF speichern.

Outlook-Automatisierung

Outlook ist mehr als ein E-Mail-Programm. Mit VBA wird es zum Arbeitsautomaten.

E-Mail-Versand aus Daten: Du hast eine Excel-Liste mit 150 Kunden, die jeweils eine individuelle E-Mail bekommen sollen? VBA erstellt jede E-Mail mit persönlicher Anrede, individuellem Anhang und dem richtigen Betreff — und legt sie in den Postausgang.

E-Mail-Verarbeitung: Eingehende E-Mails automatisch in Ordner sortieren, Anhänge extrahieren und auf dem Netzlaufwerk ablegen, Absender in eine Liste eintragen.

Termin-Automatisierung: Aus einer Excel-Tabelle automatisch Outlook-Termine erstellen — mit Erinnerung, Teilnehmern und Beschreibung.

Word-Automatisierung

Word-Dokumente, die nach einem festen Schema erstellt werden, sind perfekte VBA-Kandidaten.

Serienbriefe auf Steroiden: Klassische Serienbriefe können nur Text ersetzen. Mit VBA kannst Du Tabellen einfügen, Bilder einbetten, Absätze je nach Bedingung ein- oder ausblenden und das Ergebnis als einzelne PDFs speichern.

Vertrags- und Angebotsgenerierung: Stammdaten aus Access oder Excel holen, in eine Word-Vorlage einfüllen, als PDF speichern und per Outlook verschicken. Ein Klick, drei Minuten statt einer Stunde.

Dokumentenkonvertierung: 50 Word-Dateien in einem Ordner automatisch als PDF speichern. Oder umgekehrt: Text aus PDFs extrahieren und in Word-Tabellen einfügen.

Access-Automatisierung

Access und VBA gehören zusammen wie Hammer und Nagel. Jede Access-Anwendung, die mehr tut als Daten anzeigen, braucht VBA.

Formulare steuern, Geschäftslogik abbilden, Berichte generieren, E-Mails verschicken, Excel-Exporte erstellen, Schnittstellen zu SQL Server oder REST-APIs bedienen — das alles ist VBA-Territorium in Access. Mehr dazu auf der Access-Entwicklung Seite.

Die 32-Bit auf 64-Bit Umstellung

Das ist das Thema, das mir aktuell am häufigsten begegnet. Und mein meistgelesener Praxisbeitrag.

Das Problem: Du aktualisierst auf Microsoft 365 oder Office 2024. Die neue Version ist standardmäßig 64-Bit. Am nächsten Morgen starten Deine VBA-Makros nicht mehr. Fehlermeldung: „Die Anweisung ist für 64-Bit nicht gültig“ oder „Compile Error“.

Die Ursache: VBA-Code, der Windows-API-Funktionen aufruft (z. B. für Dateioperationen, Fenstersteuerung, Zwischenablage), muss in 64-Bit anders deklariert werden. Das betrifft die Declare-Anweisungen im Code.

Die Lösung: Jede API-Deklaration muss um PtrSafe ergänzt werden, und Pointer-Datentypen müssen von Long auf LongPtr umgestellt werden. Mit bedingter Kompilierung lässt sich der Code so schreiben, dass er sowohl unter 32-Bit als auch unter 64-Bit funktioniert:

#If VBA7 Then
    Private Declare PtrSafe Function FindWindow Lib "user32" _
        Alias "FindWindowA" ( _
        ByVal lpClassName As String, _
        ByVal lpWindowName As String) As LongPtr
#Else
    Private Declare Function FindWindow Lib "user32" _
        Alias "FindWindowA" ( _
        ByVal lpClassName As String, _
        ByVal lpWindowName As String) As Long
#End If

Was in der Praxis passiert: Die meisten KMU haben keine vollständige Liste ihrer API-Deklarationen. Der Code ist über Jahre gewachsen, verteilt auf dutzende Module. Ich gehe den gesamten Code systematisch durch, identifiziere alle betroffenen Stellen und passe sie an. Bei einem typischen Projekt mit 20–40 Modulen ist das in 1–2 Tagen erledigt.

Die 50 häufigsten API-Deklarationen habe ich in einem separaten Blogbeitrag zusammengestellt — mit der korrekten 32-Bit- und 64-Bit-Variante für jede Funktion: Umstellung von 32-Bit-VBA auf 64-Bit-VBA

VBA vs. Power Automate — wann was?

Seit Microsoft Power Automate pusht, stellt sich die Frage: Braucht man VBA überhaupt noch?

VBA ist die bessere Wahl, wenn:

  • Du Office-Dokumente manipulieren musst (Zellen formatieren, Absätze einfügen, Folien erstellen)
  • Die Automatisierung auf einem lokalen Rechner laufen soll, ohne Cloud-Abhängigkeit
  • Du komplexe Logik mit vielen Bedingungen, Schleifen und Fehlerbehandlung brauchst
  • Geschwindigkeit wichtig ist (VBA verarbeitet 10.000 Excel-Zeilen in Sekunden)
  • Kein Microsoft-365-Abo vorhanden ist

Power Automate ist die bessere Wahl, wenn:

  • Du Workflows zwischen verschiedenen Cloud-Diensten verbinden willst (SharePoint, Teams, Outlook)
  • Genehmigungsprozesse mit mehreren Beteiligten automatisiert werden sollen
  • Die Automatisierung unabhängig von einem bestimmten Rechner laufen soll
  • Du RPA brauchst (Mausklicks und Tastatureingaben in alten Programmen simulieren)

In vielen KMU ist die Antwort: beides. VBA für die lokale Office-Arbeit, Power Automate für die Cloud-Workflows. Kein Widerspruch, sondern Ergänzung.

Mehr zu Power Automate auf der Power Platform Seite.

VBA vs. Office Scripts — die neue Alternative

Seit 2021 bietet Microsoft mit Office Scripts eine Alternative zu VBA — speziell für Excel im Web. Scripts werden in TypeScript geschrieben und laufen im Browser, nicht auf dem lokalen Rechner.

Office Scripts sind interessant, wenn:

  • Du Excel-Automatisierungen brauchst, die auch in Excel Online funktionieren
  • Du die Scripts mit Power Automate kombinieren willst
  • Dein Team keine lokale Office-Installation hat

VBA bleibt überlegen, wenn:

  • Du mit Access, Word oder Outlook arbeitest (Scripts gibt es nur für Excel)
  • Du APIs, DLLs oder COM-Objekte ansprichst
  • Dein Code jahrelang gewachsen ist und zuverlässig läuft

Für die meisten KMU, die ich betreue, ist VBA auf absehbare Zeit die pragmatischere Wahl. Office Scripts sind eine Ergänzung für bestimmte Szenarien, kein Ersatz.

VBA und KI — Access mit ChatGPT verbinden

Ein Thema, das gerade viel Aufmerksamkeit bekommt — und mein meistgelesener Blogbeitrag: Access mit ChatGPT verbinden.

Per VBA kannst Du REST-APIs ansprechen — auch die von OpenAI, Anthropic oder lokalen LLMs. Das öffnet Möglichkeiten, die vor zwei Jahren noch Science Fiction waren:

  • Kundenbeschwerden automatisch kategorisieren und zusammenfassen
  • Freitext-Eingaben in strukturierte Daten umwandeln
  • Intelligente Suchfunktionen in der eigenen Datenbank
  • Automatische E-Mail-Entwürfe basierend auf Datenbankeinträgen

Das funktioniert heute, mit VBA, in Access, ohne Cloud-Migration. Der SQL Server liefert die Daten, VBA orchestriert den Prozess, und die KI-API erledigt die Textarbeit.

Qualität, Wartbarkeit, Dokumentation

Der größte Feind von VBA-Code ist nicht die Sprache — es sind die fehlenden Standards. Ich sehe regelmäßig Module mit 3.000 Zeilen ohne einen einzigen Kommentar, Copy-Paste-Code über dutzende Formulare, und Variablennamen wie x, temp2 und blatt_neu_alt_backup.

Meine Standards bei jeder VBA-Entwicklung:

  • Optionaler Fehlerbehandlungsblock in jeder Prozedur
  • Sprechende Variablen- und Prozedurnamen
  • Modulare Struktur: Eine Prozedur, eine Aufgabe
  • Kommentare dort, wo der Code nicht selbsterklärend ist
  • Versionierung und Änderungshistorie im Code-Header

Das Ziel: Wenn in drei Jahren jemand anderes Deinen Code anfassen muss, soll er verstehen, was passiert — ohne mich anrufen zu müssen. (Obwohl ich natürlich trotzdem gerne helfe.)

So arbeite ich

Analyse: Was wird heute manuell gemacht? Wie oft? Wie lange dauert es? Wo passieren Fehler? Ich schaue mir den Ist-Zustand an und rechne aus, was Automatisierung konkret spart.

Machbarkeit: Nicht alles, was theoretisch automatisierbar ist, lohnt sich auch. Wenn ein Prozess zweimal im Jahr vorkommt, ist ein Makro Overkill. Wenn er täglich vorkommt, ist jeder Tag ohne Makro verschwendete Zeit.

Entwicklung: Ich schreibe den Code, teste ihn mit Deinen echten Daten und dokumentiere ihn. Du bekommst kein Black-Box-Makro, sondern nachvollziehbaren, wartbaren Code.

Übergabe: Ich zeige Dir und Deinem Team, wie die Automatisierung funktioniert — und wo ihr sie selbst anpassen könnt.

Aus der Praxis

„Sönke hat unsere komplexe Datenbanklösung auf Basis von MS Access analysiert, modernisiert und um zentrale Funktionen erweitert. Die Lösung läuft stabil, ist durchdacht dokumentiert und lässt sich bei Bedarf unkompliziert erweitern.“

Weiterführende Beiträge im Blog

Dein Büro verdient weniger Copy-Paste

Egal ob Du einen einzelnen Excel-Report automatisieren willst oder eine komplette Office-Landschaft mit VBA und Access steuern möchtest — ich helfe Dir, die richtige Lösung zu finden und umzusetzen.

📍 Mein Büro liegt in Sierksdorf, zentral in Ostholstein — erreichbar für Unternehmen in Neustadt, Eutin, Lübeck, Kiel und Hamburg. Ich arbeite auch remote.

👉 Kostenloses Erstgespräch buchen — beschreib mir Deinen nervigsten manuellen Prozess, und ich sage Dir, ob VBA helfen kann.

🛡️ IT-Haftungscheck machen — prüfe in 5 Minuten, ob Deine IT-Infrastruktur ein Risiko für die Geschäftsführung ist.

Datenschäfer 🐑 — Ich bringe Ruhe in Deine Datenlandschaft.

Schreibe einen Kommentar

Nach oben scrollen