(17.04.2024, 18:11)Glausius schrieb: wie das gehen kann.
Es fiel mir schwer, die Füße stillzuhalten, aber dazu muss ich nun doch meinen Senf abgeben:
- Makros müssen aktiv sein, wenn überhaupt ein Effekt erzielt werden soll. Das sind sie bei den meisten nicht - und das gut so. Jüngst ging mal wieder durch die Nachrichten, dass mit AddIns und Makros massiver Schaden angerichtet werden kann. Nicht, dass das neu wäre, aber es wurde lange nicht mehr mit dieser Tragweite und Klarheit allgemein ins Bewusstsein gerufen. Es ist also fahrlässig, wenn nicht sogar vorsätzlich, einem unbedarften Nutzer die Aktivierung von Makros vorzuschreiben. Für mich mittlerweile ein No-Go! Zudem trainiert das "Aktivieren von Makros" den Reflex, dies immer zu tun - auch wenn es nicht ratsam ist.
- Hier wird eine Mappe aus einem Mailprogramm gestartet oder von dort auf Festplatte gesichert. Eine Art, wie makroverseuchte Mappen NIE auf einen fremden Rechner gelangen dürfen - Begründung analog zu vor. Glücklicherweise hat MS hier reagiert und deaktiviert Makros in solchen Mappen recht zuverlässig -sofern die Systeme aktuell sind. Es ist daher höchst wahrscheinlich (und gut so), dass die Makros auf dem Zielrechner also überhaupt nicht (ohne Tricksereien) starten.
- Das Schutzniveau, das mit diesem Makro erreicht wird, ist unmessbar gering. Wirklich jeder, der es will, bekommt das ausgehebelt. Schriftfarben zu ändern, um Daten "verschwinden" zu lassen, ist - sorry, aber anders kann ich es nicht formulieren - an Lächerlichkeit nicht mehr zu überbieten.
- Eine Mappe, die sich zwangsweise und ungefragt selbst speichert, ist untragbar! Sie hebelt das gewohnte Verhalten aus und lässt den Nutzer im Zweifel mit nicht erwartbaren Ergebnissen zurück. Noch ein No-Go!
Handwerkliche Umsetzung:
- Der Code arbeitet unzuverlässig und hält seine Versprechungen nicht: Der "Sicherheitsmechanismus" basiert auf "Activesheet". Es genügt, beim Speichern ein anderes Blatt zu aktivieren, damit der ganze "Schutz" ins Leere läuft. Was hier zur Krönung dann noch das Selection-Objekt zu suchen hat, will ich eigentlich nicht mehr wissen. Dann wird auch noch das aktive Workbook gesichert - das setzt dem Tadel aus dem vorherigen Anstrich noch die Krone auf! Wenn der Nutzer eine andere Mappe aktiv hat, wird diese ungefragt gesichert. Das hinterlässt mich fassungslos. Dass Application.DisplayAlerts nicht mehr auf True gesetzt wird, "rundet" das Gesamtpaket ab.
Das ist, in Summe, nicht mehr als eine riskante, ggf. schädliche Spielerei und hat mit einem ernsthaftem Schutz gegen Missbrauch der Datei absolut nichts zu tun. Allein dies vorbehaltlos vorzugaukeln ist gefährlich, sollte sich mal jemand darauf verlassen.
Mir ist es Wurscht, wie @Taunusmann seine "wertvolle" Mappe schützen will. Ich werde auch keine Tipps dazu geben, weil es dafür zuallererst essentiell wäre, das Sicherheitsbedürfnis klar festzulegen - was mit der gewohnt lustlos hingehusteten Anfrage des TE unmöglich ist.
Aber bitte: Solche Tipps zur "Sicherheit" will ich eigentlich nirgends mehr lesen - schon gar nicht in einem Forum, das ein Mindestmaß an Seriosität als Anspruch an sich stellt.
Eine Mappe, die mit solchen Mechanismen "geschützt" wird, würde bei mir übrigens sofort vom Rechner verschwinden (wenn sie überhaupt dorthin gelangt), weil sie erahnen lässt, mit welcher "Sachkunde" der Rest entwickelt wurde. Für diesen Zweifel muss ich nicht einmal die ganzen Fragen des TE kennen, die er hier und andernorts gestellt hat.
Es gibt ein paar Grundregeln, die einem bewusst sein müssen und die über allen anderen Überlegungen stehen müssen:
- Sicherheit gibt es bei Excel nicht.
- VBA zum "Schutz" ist sinnlos
Daraus folgt:
- Gebe ich einem Nutzer eine Mappe in die Hand, dann hat er 100% Kontrolle darüber. ER!, kein anderer, auch nicht der Verfasser!
- Gebe ich dem Nutzer - auch nur ein einzige Mal - Zugriff auf die Mappe, dann hat er ihn immer.