
Ich habe eine Arbeitsmappe mit vielen Blättern, Makros und Berechnungen. Ich muss dieses Blatt jetzt versenden (was erst gestern geplant war). Wie sperre ich es, damit Benutzer:
- können Sie nicht auf die Makros zugreifen/sie nicht sehen?
- können ausgeblendete Blätter nicht sichtbar machen?
- können Code nicht sehen oder Code nicht hinzufügen/
Ich habe alle Zellen durchgesehen und entsperrt, die ich ändern möchte. Zeilen mit Schaltflächen und Formeln ausgeblendet und dann gesperrt. Arbeitsblätter ausgeblendet. Ich habe das Arbeitsblatt jetzt mit einem Kennwort geschützt.
Jedoch,verhindert dies, dass Benutzer auf die Makros/den Code zugreifen können?oderBlätter sichtbar machen?Wenn nicht, wie kann ich die Arbeitsmappe richtig/sicher/vollständig sperren?
Das klingt nach einer Art Big-Brother-Sicherheitsvorkehrung, aber ich stelle nur sicher, dass die miteinander verknüpften Zellen nicht versehentlich geändert werden oder ein Makro ausgeführt wird, das ich nicht benötige.
Vielen Dank
Michael.
Antwort1
Erstens - beachten Sie, dass die meisten Schutzfunktionen in ExcelnichtSicherheitsfunktionen. Die meisten davon können ganz einfach geknackt oder umgangen werden. Sie sind gut, um versehentliche Schäden zu verhindern – aber sie halten niemanden auf, der weiß, was er tut und wirklich die Teile sehen will, die Sie versteckt haben.
Dennoch hier einige Antworten:
Erster Schutz
Sie haben dies abgedeckt, im Grunde Zellen sperren und Dinge verstecken und benötigt.
Dann schützenjedenBlatt.
Schützen Sie dann die Arbeitsmappe selbst.
Sehr versteckte Blätter
Blätter können „sehr“ ausgeblendet werden, d. h. sie können dann nur per VBA wieder eingeblendet werden (sie erscheinen nicht in der Einblendliste der Benutzeroberfläche). Dies geschieht einfach über eine VBA-Zeile, die mindestens einmal ausgeführt werden muss, um die Änderung der Einstellung auszulösen, und die nach der Ausführung nicht in der Datei gespeichert werden muss (dies kann jedoch nützlich sein, um sich später zu merken, welche Blätter eingeblendet werden sollen):
Sheets("Sheet1").Visible = xlVeryHidden
Versteckter VBA-Code
Legen Sie für Ihr Projekt ein Kennwort fest. Klicken Sie im VBA-Editor mit der rechten Maustaste auf Ihr Modul Project Explorer
, wählen Sie <ProjectName> Properties
auf der Registerkarte ein Kennwort aus und legen Sie es fest Protection
.
Beachten Sie, dass diese mit roher Gewalt geöffnet werden können.
Versteckte Makros
Ich nehme an, Sie meinen hier, dass Sie nicht möchten, dass sie in der Makroliste angezeigt werden, wenn jemand das Run Macro
Fenster öffnet?
Machen Sie dazu das gewünschte Makro entweder zu einem Private Sub
oder einem Function
. Dadurch werden sie als Makros nicht sichtbar, können aber dennoch von anderem Code im selben Modul aufgerufen werden.
Ich glaube nicht, dass man Menschen davon abhalten kann,läuftdie sichtbaren Makros und Sie können Schaltflächen keine versteckten Makros zuweisen.
Antwort2
Wenn Sie nur verhindern möchten, dass die Empfänger versehentlich einige Bits ändern, reicht der Schutz von Excel aus. Wenn es sich jedoch um vertrauliche Daten handelt, die die Empfänger der Arbeitsmappe nicht sehen können sollen, sind diese Schutzfunktionen nicht geeignet.
Wenn Sie nur die Daten und nicht die Formatierung anzeigen möchten, können Sie alle versteckten Daten ganz einfach „löschen“, indem Sie jedes Blatt als CSV exportieren und es dann als neue Excel-Arbeitsmappe erneut importieren. (Der zweite Schritt ist streng genommen optional, aber die Leute sind nicht an CSV-Dateien gewöhnt, daher ist es besser, eine Excel-Datei zu senden, wie sie es erwarten.)
Wenn Sie ein vorzeigbares Ergebnis wünschen, das nicht geändert werden kann, drucken Sie die Blätter in eine PDF-Datei und senden Sie diese.