Inhaltsverzeichnis
Das Wichtigste vorab
Wie validiert man Excel mit VBA?
Für Excel mit VBA im GMP-Einsatz definieren Sie Verwendungszweck, fachliche Regeln und Fehlerfolgen. Identifizieren Sie den geprüften Code-, Datei- und Umgebungsstand. Verbinden Sie Code-Review mit nachvollziehbaren Tests für Normalfälle, Grenzen, falsche Eingaben und Abbruch. Dokumentieren Sie Ergebnisse, Abweichungen und Freigabe. Eine Makrosignatur oder erfolgreiche Ausführung allein belegt weder fachliche Richtigkeit noch einen kontrollierten Betrieb.
- Der Prüfgegenstand ist der fachliche Ablauf einschließlich VBA, Formeln, Datenquellen und Umgebung.
- Unabhängige Sollwerte und gezielte Grenzfälle machen Codefehler sichtbar.
- Programmfreigabe, Makrosicherheit und Prüfung des einzelnen Ergebnisses sind unterschiedliche Aufgaben.
- Jede relevante Änderung braucht einen nachvollziehbaren Stand und eine begründete Testauswahl.
Wann gehört VBA zur Excel-Validierung?
Ein Makro kann Werte berechnen, Dateien importieren, Datensätze aussortieren, Freigaben vorbereiten oder Berichte exportieren. Prüfen Sie deshalb zuerst den vollständigen Ablauf: Welche Daten kommen herein, welche Entscheidungen trifft der Code, und welches Ergebnis wird anschließend verwendet? Auch eine scheinbar einfache Sortierfunktion kann die Zuordnung von Probe und Ergebnis verändern.
Die EMA nennt für GMP-Spreadsheets mit individuellem Code ausdrücklich die Validierung nach Annex 11; VBA ist ihr Beispiel. Daraus folgt keine pauschale Pflicht für jede Bürodokumentation. Innerhalb der GMP-Anwendung bestimmen Verwendungszweck und Risiko die Prüfungstiefe. Ein Formatierungsmakro und eine Berechnung zur Qualitätsentscheidung haben unterschiedliche Fehlerfolgen.
Dieser Leitfaden vertieft Excel mit VBA im pharmazeutischen GMP-Umfeld. Die FDA-Quellen betreffen Arzneimittel-CGMP, sofern dieser Bereich für Ihren Prozess einschlägig ist. Die folgenden Prüfschritte sind praktische Umsetzungsvorschläge; sie ersetzen keine Festlegung Ihres konkreten Anwendungsumfangs.
Programmversion, Vorlage und Ergebnisdatensatz auseinanderhalten
Die Bezeichnung „Version 2“ reicht nicht, wenn verschiedene Dateien denselben Namen tragen. Definieren Sie einen freigegebenen Stand aus Arbeitsmappe, VBA-Projekt und relevanter Konfiguration. Verknüpfen Sie ihn mit Änderungsgrund, Prüfung und Freigabe. Ein konkreter Analysevorgang erhält zusätzlich eine eigene Datensatzkennung; hundert ausgefüllte Kopien sind nicht hundert Softwareversionen.
Eine mögliche Logik lautet: Vorlage V1.0 ist freigegeben; V1.1-RC1 ist ein Prüfkandidat; V1.1 ist die daraus freigegebene Auslieferung. Eine Änderung während der Prüfung erhält einen neuen Kandidatenstand. Nummerierung allein schützt nichts: Zugriff, Ablage und Zuordnung müssen den Wechsel nachvollziehbar machen.
| Bestandteil | Festzuhalten | Praktischer Nachweis |
|---|---|---|
| Arbeitsmappe | Dateistand, Blätter, Formeln, Namen und Einstellungen | Kontrollierte Originaldatei; eindeutige Releasekennung |
| VBA-Projekt | Module, Formulare, Referenzen und Codeänderung | Codevergleich plus Zuordnung zur tatsächlich geprüften Datei |
| Umgebung | Excel-Build, Betriebssystem, Office-Bitness, relevante Add-ins | Umgebungsprotokoll des Tests; vereinbarter Betriebsumfang |
| Prüfgrundlage | Anforderungen, Testdaten, unabhängige Sollwerte | Versionierte Testfälle, Ergebnisse, Abweichungen und Review |
| Ergebnisdatensatz | Vorgangskennung, Eingaben, Programmstand und Bearbeitung | Zusammenhängende Aufzeichnung mit fachlicher Bewertung |
Fachliche Regeln vor dem Code-Review festlegen
Beschreiben Sie eine Berechnung ohne VBA: erlaubte Eingaben, Einheiten, Rechenschritte, Rundungszeitpunkt, Grenzwerte und Verhalten bei fehlenden Daten. Sonst bestätigt der Test lediglich, dass der Code das tut, was er bereits tut. Erwartete Ergebnisse sollten aus der freigegebenen Rechenvorschrift unabhängig hergeleitet werden.
Im Code-Review prüfen Sie anschließend die Umsetzung: Werden Arbeitsmappe und Tabellenbereich eindeutig angesprochen? Bleiben Probenkennungen beim Sortieren verbunden? Was geschieht bei zusätzlichen Zeilen, leeren Importdateien oder einem anderen aktiven Blatt? Diese Fragen sind eigene Prüfvorschläge und werden nach dem tatsächlichen Datenfluss ausgewählt.
Option Explicit hilft, nicht deklarierte Variablen beim Kompilieren zu erkennen. Das entdeckt jedoch keine fachlich falsche Einheit und keinen vertauschten Bezug auf zwei gültige Variablen. Codeprüfung und Ausführung mit gezielten Testdaten ergänzen sich; ein fehlerfreier Compile-Lauf ist kein Nachweis korrekter Ergebnisse.
Beispiel: Eine Rundungsänderung gezielt prüfen
Illustratives Beispiel: Ein Makro berechnet aus zwei positiven Werten A und B den Quotienten A/B. Für diesen Beispielprozess wird festgelegt: B muss größer als null sein; das Ergebnis wird einmal am Ende auf eine ganze Zahl gerundet; genau halbe Werte werden aufgerundet. Diese Vorgabe ist eine gewählte Beispielregel, keine allgemeine GMP-Rundungsregel.
Version R1 verwendet VBA Round. Microsoft beschreibt dafür Banker's Rounding: Ein halber Wert wird zur nächsten geraden Zahl gerundet. Bei 5/2 liegt damit genau der kritische Fall vor. Der Kandidat R2 soll die festgelegte Beispielregel umsetzen. Die Auswahl einer anderen Funktion muss sich an dieser Anforderung orientieren; eine Microsoft-Empfehlung ersetzt die fachliche Entscheidung nicht.
Die Sollwerte der folgenden Matrix wurden unabhängig mit Dezimalarithmetik geprüft. Die Arbeitsmappe wurde hier nicht ausgeführt. R1 und R2 sind fiktive Beispielstände. U1 bezeichnet die vor Durchführung vollständig zu dokumentierende Desktop-Testumgebung; U1 ist keine behauptete Excel-Version. Ist-Ergebnis, Ausführungsdatum und Tester kommen erst bei der tatsächlichen Prüfung hinzu.
Testmatrix für Codeänderung und unveränderte Funktionen
Prüfen Sie zuerst, ob der ausgewählte Test den Unterschied zwischen R1 und R2 überhaupt sichtbar macht. Ein Vergleich nur mit 7/2 würde beide Rundungsregeln mit dem Ergebnis 4 passieren lassen. Ergänzen Sie danach Grenzfälle und Fehlerpfade; die folgende Matrix ist ein Ausgangspunkt, kein vollständiger Validierungsplan.
| Version / Umgebung | Testdaten oder Ereignis | Erwartetes Ergebnis | Review-Schwerpunkt |
|---|---|---|---|
| R1 / U1 | A=5; B=2 | Fachliches Soll 3; VBA-Round-Verhalten 2 macht die Abweichung sichtbar | Test erkennt den bekannten Unterschied |
| R2 / U1 | A=5; B=2 | 3 nach der festgelegten Beispielregel | Neuer Code erfüllt die geänderte Anforderung |
| R2 / U1 | A=7; B=2 | 4 | Unveränderter Fall bleibt korrekt |
| R2 / U1 | A=249 bzw. 251; B=100 | 2 bzw. 3 | Werte beiderseits der Rundungsgrenze |
| R2 / U1 | B=0, leer oder Text | Eingabe zurückweisen; kein verwendbares neues Ergebnis | Keine stille Ersetzung und kein altes Ergebnis als neu |
| R2 / U1 | Abbruch vor Abschluss; danach erneuter Start | Unvollständigen Lauf erkennen; sauberer Neustart | Keine Vermischung von Teilergebnissen |
| R2 / U1 | Zielablage ohne Schreibrecht | Speicherfehler sichtbar; keine Erfolgsmeldung | Exportstatus stimmt mit vorhandener Datei überein |
| R2 / U1, Makros blockiert | Datei öffnen und Berechnung anfordern | Keine erfolgreiche Makroausführung behaupten | Öffnen der Datei nicht als Verarbeitung werten |
Fehlereingaben und Abbruch dürfen keine plausiblen Altwerte liefern
Ein sinnvoller Negativtest beginnt mit einem erfolgreichen Lauf und erzeugt danach einen Fehler. Bleibt die alte Ergebniszelle sichtbar, muss der Benutzer ihren Status eindeutig erkennen können. Bestehende Aufzeichnungen werden dabei nicht gelöscht; der neue fehlgeschlagene Versuch darf nur nicht als erfolgreiches neues Ergebnis erscheinen.
On Error Resume Next kann die Ausführung nach einem Laufzeitfehler fortsetzen. Das ist nicht grundsätzlich falsch, verlangt aber eine passende Prüfung und Behandlung des Fehlers. Eine pauschale Fortsetzung bis zur Erfolgsmeldung kann beispielsweise einen fehlgeschlagenen Import überdecken. Prüfen Sie deshalb auch den Fehlerpfad nach dem ersten geschriebenen Wert.
Verändert der Code Application.EnableEvents oder den Berechnungsmodus, gehört die kontrollierte Wiederherstellung des vorherigen Zustands in das Design. Prüfen Sie normale Beendigung und behandelte Fehler. Ein Prozessabsturz kann solche Aufräumlogik verhindern; dafür braucht es einen erkennbaren unvollständigen Lauf und einen geregelten Wiederanlauf. Abhängige Formeln sollten vor dem Ergebnisexport nachweislich den aktuellen Datenstand verwenden.
Makrosicherheit und Signatur beweisen keine Rechenkorrektheit
Die IT legt fest, welcher Code ausgeführt werden darf. Microsoft beschreibt für Office unter Windows eine vom Herkunfts- und Vertrauensstatus sowie von Richtlinien abhängige Makroblockierung. Eine blockierte Datei muss im vorgesehenen Arbeitsablauf erkennbar unbenutzbar für die Makroverarbeitung sein. Sicherheitsregeln sollten nicht pauschal gelockert werden, um einen Test zum Laufen zu bringen.
Eine VBA-Projektsignatur schützt die Aussage über den signierten Codestand, nicht die Richtigkeit der Berechnung. Bei Codeänderungen wird die Signatur entfernt; ist das gültige zuvor verwendete Zertifikat auf dem Rechner vorhanden, kann das Projekt beim Speichern automatisch neu signiert werden. „Die Datei ist signiert“ ist deshalb kein ausreichender Vergleich mit der freigegebenen Version.
Trennen Sie drei Entscheidungen: Darf der Code starten? Ist genau dieser Programmstand fachlich freigegeben? Wurde der einzelne Ergebnisdatensatz geprüft? Die Makrosignatur beantwortet nicht automatisch alle drei Fragen und ersetzt keine elektronische Freigabesignatur des Datensatzes.
Desktop, Office-Bitness und Abhängigkeiten berücksichtigen
Excel im Web kann VBA-Makros weder erstellen noch ausführen oder bearbeiten. Eine Makrodatei lässt sich dort trotzdem öffnen und bearbeiten. Prüfen Sie deshalb, wie Benutzer zur vorgesehenen Desktop-Ausführung gelangen und wie eine bloß geöffnete Datei von einem abgeschlossenen Makrolauf unterschieden wird.
Bei Windows-API-Aufrufen können Unterschiede zwischen 32- und 64-Bit-Office relevant sein. Microsoft weist darauf hin, dass PtrSafe allein nicht genügt: Zeiger, Handles und zugehörige Deklarationen müssen passen. Daraus folgt keine pauschale Änderungspflicht für jedes Makro. Ermitteln Sie zuerst, ob solche Aufrufe oder andere Architekturabhängigkeiten vorliegen.
Weitere eigene Prüffragen betreffen Dezimaltrennzeichen im Import, Bibliotheksreferenzen, Add-ins und Netzwerkpfade. Legen Sie unterstützte Kombinationen fest und begründen Sie die Testauswahl. Eine unüberschaubare Vielfalt an Arbeitsplatzkonfigurationen kann mehr Aufwand verursachen als die eigentliche Rechenänderung.
Freigabe, spätere Änderungen und Aufwand im KMU planen
Für ein überschaubares Projekt sollte der Fachbereich Rechenvorschrift, Beispieldaten und Grenzfälle bereitstellen. Ein Codeverantwortlicher erklärt Implementierung und Abhängigkeiten. IT dokumentiert Betriebsumgebung und Verteilung; QA bewertet den vorgesehenen Nachweis und die Freigabe im Qualitätssystem. Prüft eine Person mehrere Bereiche, müssen Kompetenz und Review trotzdem nachvollziehbar sein.
Der Aufwand hängt besonders von unbekanntem Altcode, fehlenden Anforderungen, externen Datenquellen, vielen Dateikopien und unklaren Änderungsrechten ab. Beginnen Sie mit einer Bestandsaufnahme und einem abgegrenzten kritischen Ablauf. Eine Zahl von Makrozeilen oder eine pauschale Tageszahl erlaubt keine belastbare Aufwandsschätzung.
Bei einer Änderung dokumentieren Sie betroffene Anforderungen, gemeinsame Funktionen, Datenformate und benötigte Wiederholungsprüfungen. Bewahren Sie die Zuordnung früherer Datensätze zum damaligen Stand. Ein PDF kann ein nützlicher Bericht sein; es ersetzt nicht automatisch die für die Rekonstruktion benötigten Eingaben, Verarbeitungsinformationen und Metadaten. Prüfen Sie den Abruf eines abgeschlossenen Vorgangs praktisch.
Checkliste vor Freigabe einer VBA-Änderung
Nutzen Sie diese Arbeitsliste für die gemeinsame Durchsicht. Ein fehlender Punkt ist ein konkreter Klärungsbedarf; Häkchen allein belegen keine erfolgreiche Prüfung.
- Verwendungszweck, relevante Makros und fachliche Fehlerfolgen sind beschrieben.
- Die geprüfte Datei ist eindeutig mit Code, Konfiguration und Umgebung verbunden.
- Sollwerte wurden unabhängig vom zu prüfenden Makro bestimmt.
- Normalfälle, Grenzfälle, falsche Eingaben, Abbruch und fehlgeschlagene Speicherung sind geprüft.
- Altwerte und Teilergebnisse können nicht mit einem erfolgreichen neuen Lauf verwechselt werden.
- Makroausführung, Signatur und fachliche Freigabe sind getrennt bewertet.
- Änderungen, Abweichungen, Review und akzeptierte Betriebsgrenzen sind dokumentiert.
- Verteilung, Rücknahme alter Vorlagen und Abruf früherer Aufzeichnungen sind geregelt.
Häufige Fragen zu Excel mit VBA
Muss jede Excel-Datei mit VBA validiert werden?
Entscheidend ist der Anwendungsbereich. Die EMA verlangt für GMP-Spreadsheets mit individuellem Code eine Validierung nach Annex 11. Daraus lässt sich keine pauschale Pflicht für private oder allgemeine Bürodateien ableiten. Dokumentieren Sie zuerst den GMP-Bezug; legen Sie anschließend den Umfang anhand von Funktionen und Fehlerfolgen fest.
Muss jede Codezeile einen eigenen Testfall bekommen?
Eine starre Zuordnung „eine Zeile, ein Test“ ist kein brauchbarer Nachweisplan. Ordnen Sie Anforderungen, kritische Verzweigungen und Fehlerpfade passenden Prüfungen zu. Code-Review kann technische Zusammenhänge sichtbar machen; Ausführungstests zeigen Verhalten in der vorgesehenen Umgebung. Begründen Sie, welche Kombination die konkreten Risiken ausreichend abdeckt.
Genügen historische Datensätze als Testdaten?
Sie sind hilfreich für typische Abläufe, enthalten aber möglicherweise keine Grenzfälle oder Fehler. Ergänzen Sie gezielt leere Werte, falsche Datentypen und Fälle beiderseits einer Entscheidungsgrenze. Berechnen Sie Sollwerte unabhängig. Historische Ausgaben des gleichen Makros sind allein kein unabhängiger Beleg dafür, dass die Berechnung richtig ist.
Ist Git für VBA-Versionskontrolle vorgeschrieben?
Die genannten GMP-Quellen schreiben Git nicht vor. Entscheidend sind kontrollierte Änderungen und die eindeutige Zuordnung des freigegebenen Stands. Git kann Codevergleiche unterstützen; exportierte Module allein erfassen aber nicht automatisch sämtliche Arbeitsmappenbestandteile. Halten Sie deshalb auch die tatsächlich geprüfte Datei, Konfiguration und Freigabe nachvollziehbar zusammen.
Reicht eine digitale Makrosignatur als Freigabenachweis?
Nein. Sie ersetzt weder fachliche Tests noch den Bezug zu Ihrem genehmigten Release. Microsoft beschreibt außerdem eine automatische Neusignierung beim Speichern, wenn das zuvor verwendete gültige Zertifikat auf dem Rechner vorhanden ist. Vergleichen Sie den signierten Stand daher mit dem kontrollierten Freigabepaket und regeln Sie die Signierberechtigung.
Warum kann VBA Round ein anderes Ergebnis liefern als erwartet?
VBA Round verwendet Banker's Rounding. Das kann bei genau halben Werten von einer fachlich verlangten anderen Rundungsregel abweichen. Definieren Sie Rundungsstelle, Zeitpunkt und Umgang mit halben Werten, bevor Sie eine Funktion auswählen. Prüfen Sie auch Werte unmittelbar neben der Grenze; eine reine Zellformatierung ersetzt die definierte Berechnung nicht.
Quellen: [5]
Was ist bei einem Makroabbruch der wichtigste Test?
Prüfen Sie, ob ein unvollständiger Lauf als solcher erkennbar bleibt und beim Neustart keine alten und neuen Ergebnisse vermischt werden. Testen Sie dazu den Abbruch nach einer ersten Datenänderung. Beziehen Sie Speicherfehler und veränderte Anwendungseinstellungen ein; ein abgefangener Laufzeitfehler ist nicht dasselbe wie ein beendeter Excel-Prozess.
Kann eine VBA-Arbeitsmappe im Browser validiert betrieben werden?
Excel im Web führt VBA nicht aus. Wenn Ihr freigegebener Prozess die Makrofunktion benötigt, ist das Öffnen im Browser kein Ersatz für die Desktop-Ausführung. Legen Sie den zulässigen Ausführungsweg fest und prüfen Sie, dass Benutzer aus einer nicht ausgeführten Datei keine vermeintlich neuen Ergebnisse übernehmen.
Quellen: [11]
Muss nach jedem Office-Update alles neu getestet werden?
Leiten Sie den Umfang aus der dokumentierten Auswirkung ab. Ein Update kann relevante Komponenten betreffen, ohne den VBA-Code zu ändern; umgekehrt rechtfertigt nicht jedes Update automatisch eine vollständige Wiederholung. Prüfen Sie besonders Schnittstellen, Berechnungsabhängigkeiten und Sicherheitsrichtlinien. Dokumentieren Sie die Auswahl der Wiederholungsprüfungen und verbleibende Betriebsgrenzen.
Wie bereitet ein kleines Team die VBA-Validierung effizient vor?
Stellen Sie zuerst die verwendete Originaldatei, Codezugang, Rechenvorschrift, einen vollständigen Beispielvorgang und die Arbeitsplatzkonfiguration bereit. Benennen Sie Fachverantwortlichen, Codeverantwortlichen, IT und QA. Fehlen Codeverständnis oder unabhängige Sollwerte, klären Sie diese Lücke vor umfangreichen Testprotokollen: Sonst wird dokumentiert, ohne die fachliche Richtigkeit beurteilen zu können.
Quellen & fachlicher Stand
Grundlage sind die genannten EU-GMP- und FDA-Quellen sowie öffentlich zugängliche Microsoft-Dokumentationen, abgerufen am 6. Oktober 2026. Microsoft-Angaben sind an die beschriebenen Plattformen gebunden. Testmatrix, Versionsschema und Prüfschritte sind eigene illustrative Umsetzungsvorschläge; die Beispielarbeitsmappe wurde nicht ausgeführt.
- EMA: GMP/GDP Questions and Answers – Annex 11, Spreadsheets
- Europäische Kommission: EU-GMP Annex 11, Computerised Systems, 2011
- Europäische Kommission: EU-GMP Kapitel 4, Documentation, 2011
- FDA: Data Integrity and Compliance With Drug CGMP, finale Guidance, 2018
- Microsoft Learn: Round function (Visual Basic for Applications)
- Microsoft Learn: On Error statement
- Microsoft Learn: Application.EnableEvents property (Excel)
- Microsoft Learn: Application.Calculation property (Excel)
- Microsoft Support: Digitally sign your VBA macro project
- Microsoft Learn: Macros from the internet are blocked by default in Office
- Microsoft Support: Work with VBA macros in Excel for the web
- Microsoft Learn: 64-bit Visual Basic for Applications overview
- Microsoft Learn: Option Explicit statement
Zuletzt fachlich geprüft am 06.10.2026.
Den Prüfbedarf Ihrer VBA-Arbeitsmappe klären
Daniel Herrmann Consulting unterstützt Sie dabei, vorhandene Excel-Anwendungen abzugrenzen, Nachweislücken zu bewerten und Änderungen nachvollziehbar umzusetzen. Ausgangspunkt sind Ihr Prozess und die tatsächlich genutzte Arbeitsmappe.
- IT-GxP-Audit →
Vorhandene Arbeitsmappen, Betriebsregeln und Validierungsnachweise auf konkrete Lücken prüfen.
- IT-GxP-Consulting →
Anforderungen, Änderungskontrolle und risikobasierte Prüfungen für Ihren VBA-Prozess ausarbeiten.
