Wenn Sie schon einmal mit VBA in Excel gearbeitet haben und plötzlich die gelbe Sicherheitswarnung erscheint, dass Makros deaktiviert sind, ist das ziemlich ärgerlich. Viele öffnen die Datei dann gar nicht erst, besonders wenn sie der Quelle nicht vertrauen. Der Trick besteht darin, die Makros digital zu signieren – quasi ein „Vertrau mir“-Zertifikat für Excel. Dadurch wird bewiesen, dass das Makro tatsächlich von einer vertrauenswürdigen Quelle stammt, und die Sicherheitswarnung wird nicht mehr jedes Mal ausgelöst. Warum das funktioniert, ist zwar nicht ganz klar, aber es scheint Ihren Code zu legitimieren und die lästige Warnung zu umgehen. Und ja, wenn sich Ihre Makros auf einem USB-Stick befinden, ist der Vorgang etwas aufwendiger, da Sie mit einem privaten Schlüssel signieren, der außerhalb des Rechners gespeichert ist. Diese Anleitung erklärt Ihnen Schritt für Schritt, wie Sie Ihre VBA-Makros signieren, egal ob Sie ein selbstsigniertes Zertifikat oder eines von einer Zertifizierungsstelle verwenden, damit Ihre Makros von Excel als sicher erkannt werden.
Wie man Excel-Makros digital signiert
Wenn Sie Ihre Makros signieren, fügen Sie dem VBA-Projekt eine spezielle, verschlüsselte Signatur hinzu. Stellen Sie sich das wie ein digitales Siegel vor, das Ihren Code versiegelt. Dadurch wird bestätigt, dass er seit Ihrer Signierung unverändert geblieben ist. Hierfür wird ein Codesignaturzertifikat verwendet, das Ihr System anhand vertrauenswürdiger Zertifizierungsstellen überprüft. Wenn Sie diesen Schritt auslassen, behandelt Excel alle Makros als potenziell gefährlich, weshalb die Warnung angezeigt wird. Signieren Sie Ihre Makros jedoch ordnungsgemäß, gelten sie als vertrauenswürdig und die Warnung wird nicht mehr angezeigt. Diese Methode ist praktisch, wenn Sie regelmäßig Dateien austauschen oder Berichte automatisieren möchten, ohne andere mit Sicherheitswarnungen zu beunruhigen.
Im Folgenden finden Sie die Schritte zum Signieren Ihrer Excel-Makros, insbesondere wenn Sie einen USB-Hardware-Token verwenden, auf dem Ihr privater Schlüssel gespeichert ist. Der Vorgang erfordert etwas mehr Aufwand, da Sie zunächst sicherstellen müssen, dass Windows Ihr Zertifikat erkennt, und es anschließend im Visual Basic-Editor von Excel signieren müssen.
- Öffnen Sie die Excel-Datei mit den Makros, die Sie signieren möchten. Speichern Sie sie als .xlsm oder .xlsb, bevor Sie etwas anderes tun.Überspringen Sie diesen Schritt nicht, sonst funktioniert es nicht.
- Stecken Sie Ihren USB-Hardware-Token in Ihren PC. Dieses Gerät enthält Ihren privaten Schlüssel und ist für die Signierung mit einem Hardware-Zertifikat unerlässlich. Lassen Sie es während des gesamten Vorgangs angeschlossen.
- Als Nächstes sollten Sie überprüfen, ob Windows Ihr Zertifikat vom USB-Token erkennt.Öffnen Sie die Internetoptionen – diese finden Sie über die Suchfunktion im Startmenü oder in der Systemsteuerung. Klicken Sie auf die Registerkarte Inhalte und anschließend auf die Schaltfläche Zertifikate. Suchen Sie auf der Registerkarte Persönlich nach Ihrem Codesignaturzertifikat. Falls es nicht angezeigt wird, müssen Sie es möglicherweise mit der Software der Zertifizierungsstelle oder dem Dienstprogramm Ihres USB-Tokens laden. Oftmals muss das Zertifikat zuerst in Windows importiert werden, bevor Excel es erkennt. Haben Sie etwas Geduld – manchmal kann es etwas dauern.
- Öffnen Sie in Excel die Registerkarte Entwicklertools. Falls diese nicht sichtbar ist, klicken Sie mit der rechten Maustaste auf den Menübandbereich, wählen Sie Menüband anpassen, aktivieren Sie das Kontrollkästchen für Entwicklertools und klicken Sie auf OK.
- Klicken Sie auf das Visual Basic-Symbol oder drücken Sie die entsprechende Taste Alt + F11, um den VBA-Editor zu öffnen.
- Im VBA-Editor gehen Sie zu Tools > Digitale Signatur. Ein kleines Fenster öffnet sich, das Ihnen anzeigt, dass das Projekt noch nicht signiert ist.
- Klicken Sie im Dialogfeld Digitale Signatur auf die Schaltfläche Auswählen…. Daraufhin öffnet sich eine Liste der verfügbaren Zertifikate. Wenn alles korrekt eingerichtet ist, sollte das Zertifikat Ihres USB-Tokens angezeigt werden. Wählen Sie Ihr Codesignaturzertifikat aus und klicken Sie auf OK.
- Klicken Sie im Hauptdialogfeld auf OK, um die Signatur zu speichern. Ihrem VBA-Projekt ist nun eine vertrauenswürdige Signatur zugeordnet.
Schließen Sie den VBA-Editor und wechseln Sie zurück zu Excel. Speichern Sie die Datei mit Strg + S. Geben Sie das Zertifikatpasswort ein, wenn Sie dazu aufgefordert werden (falls Ihr Zertifikat eines benötigt).Nach dem Speichern ist die Signatur eingebettet. Zur Überprüfung öffnen Sie die Datei erneut und prüfen Sie, ob die gelbe Sicherheitswarnung verschwunden ist oder die Signatur nun als vertrauenswürdig angezeigt wird. Sie können auch VBA erneut öffnen und überprüfen, ob Ihr Zertifikat unter Tools > Digitale Signatur aufgeführt ist.
Wenn Sie die Gültigkeitsdauer Ihrer Signatur verlängern möchten – insbesondere wenn das Zertifikat ablaufen könnte – können Sie einen Zeitstempel hinzufügen. Bei einer Konfiguration musste ich den folgenden Befehl in einer Eingabeaufforderung oder PowerShell mit Administratorrechten ausführen:
signtool sign /tr http://timestamp.digicert.com /td SHA256 /fd SHA256 /a "path\to\yourfile.exe"
Dadurch wird Ihre Signatur mit einem Zeitstempelserver verknüpft, sodass sie auch dann gültig bleibt, wenn Ihr Zertifikat später abläuft. Ersetzen Sie einfach „Pfad\zu\IhrerDatei.exe“ durch den tatsächlichen Pfad Ihrer Datei. Sie erhalten eine Erfolgsmeldung – ein gutes Zeichen.
Wie signiert man ein Makro in Excel digital?
Am einfachsten öffnen Sie Ihre Arbeitsmappe mit aktivierten Makros und Alt + F11rufen dann den VBA-Editor auf. Wählen Sie im Menü Tools > Digitale Signatur. Klicken Sie auf Auswählen…, wählen Sie Ihr Zertifikat (selbstsigniert oder von einer Zertifizierungsstelle ausgestellt) und klicken Sie auf OK. Speichern Sie die Arbeitsmappe anschließend sofort. Ihr Makro ist nun signiert, und jede Änderung führt zum Verlust der Signatur – beachten Sie dies also, wenn Sie später Änderungen vornehmen möchten.
Wie kann ich eine gesamte Excel-Arbeitsmappe digital signieren?
Das Signieren der gesamten Arbeitsmappe funktioniert etwas anders. Sie können eine sichtbare Signaturzeile über Einfügen > Text > Signaturzeile einfügen – diese Zeile dient der manuellen Unterschrift. Für eine unsichtbare Signatur gehen Sie zu Datei > Informationen > Arbeitsmappe schützen > Digitale Signatur hinzufügen. Beide Methoden setzen ein gültiges Zertifikat voraus und belegen die Authentizität des Dokuments. Beachten Sie, dass der eigentliche Signiervorgang in der Regel dasselbe Zertifikat verwendet, das Sie auch zum Signieren von Makros nutzen. Die Signierung erfolgt über die Optionen „Arbeitsmappe schützen“ oder „Signaturzeile“.