VBA Zugriff verhindern

Hallo Liebe Helfer,

gibt es eine Möglichkeit den Zufriff auf den Visual Basic Editor zu verhindern? Ich habe ein komplexes Programm geschrieben welches diverse Eingaben zulässt bzw. verhindert. Ich hab das VBA-Project mit einem Kennwort versehen. Ich hab Alt+F11 gesperrt usw. usw. Allerdings gibt es gerade unter Excel 2007 bzw 2010 dennoch ohne Probleme die Möglichkeit in den VBA-Bereich zu kommen. Wenn ich dort nun auf diese lustige „Pause“-Taste drücke um Visual Basic zu unterbrechen und dann in meiner Tabelle weiterarbeite werden die Fehlerprüfungen verständlicherweise nicht merh ausgeführt. Es ist also eine Leichtigkeit das Programm auszuhebeln. Hat irgendjemand eine Idee? Für Hilfe bin ich mehr als dankbar.

gibt es eine Möglichkeit den Zufriff auf den Visual Basic
Editor zu verhindern? Ich habe ein komplexes Programm
geschrieben welches diverse Eingaben zulässt bzw. verhindert.
Ich hab das VBA-Project mit einem Kennwort versehen. Ich hab
Alt+F11 gesperrt usw. usw. Allerdings gibt es gerade unter
Excel 2007 bzw 2010 dennoch ohne Probleme die Möglichkeit in
den VBA-Bereich zu kommen. Wenn ich dort nun auf diese lustige
„Pause“-Taste drücke um Visual Basic zu unterbrechen und dann
in meiner Tabelle weiterarbeite werden die Fehlerprüfungen
verständlicherweise nicht merh ausgeführt. Es ist also eine
Leichtigkeit das Programm auszuhebeln. Hat irgendjemand eine
Idee? Für Hilfe bin ich mehr als dankbar.

Hallo bleumi,

ich bin mir sehr unsicher ob ich das weiß was du sagst oder nicht.
Wenn du magst mail mir doch bitte was du genau meinst.
Z.B. mit ohne Probleme trotz gesperrter Alt+F11 zum Editor zu
gelangen. Und auch dies Pause-taste sagt mir grad rein gar nix.
Naja, hab grad XL2000 offen, da kenne ich nix was pause heißt.

Zum Sperren von Alt+F11. Klar kannste das in deinem PC tun in
der personl.xls. Aber auf Fremdrechnern kannste das nur tun
mit Start-Code in deiner Mappe.
Was aber wenn jmd. deine Mappe mit deaktivierten Makros öffnet?

Auf dem Gebiet kenne ich mich Null aus, aber es gibt die
Möglichkeit Code in eine dll zu packen oder in etwas anderes auf
dessen Namen ich grad nicht komm.
Erst dann ist der Code nahezu perfekt geschützt.

Nahezu, weil es gibt auch Vollprofis wie Nepumuk :smile:
Lese mal hier genau:
http://www.office-loesung.de/ftopic282244_0_0_asc.php
Und wenn Nepumuk sagt es gibt kein auswertbares Ereignis
für einen VB-Editor-Zugriff was man auswerten könnte um ggfs.
mit Gegencode den VB-Editor daraufhin sofort wieder zu schließen
dann gehe bei ihm davon daß dies zu 100,0% stimmt.

Vager Plan von mir. Wenn du da komplexen Code programmiert hast so
probiere mal den im Link gezeigten Code umzubasteln sodaß
er zeitgesteuert permanent überprüft ob der Vb-Editor offen ist
und dann sofort schließt.

Bei sehr kleinen Zeiteinheiten kann das natürlich die
Performance belasten, austesten.

Sorry, mehr Hilfe kann ich nicht bieten, über die Mail würd ich mich
freuen.

Gruß
Reinhard

Grüezi bleumi

gibt es eine Möglichkeit den Zufriff auf den Visual Basic
Editor zu verhindern? Ich habe ein komplexes Programm
geschrieben welches diverse Eingaben zulässt bzw. verhindert.
Ich hab das VBA-Project mit einem Kennwort versehen. Ich hab
Alt+F11 gesperrt usw. usw. Allerdings gibt es gerade unter
Excel 2007 bzw 2010 dennoch ohne Probleme die Möglichkeit in
den VBA-Bereich zu kommen.

Worauf Du hier abzielst ist mir nicht so ganz klar…

Speichere die Mappe(n) doch mal im binären Format .XLSB ab, dann ist die Datei nicht mehr entZIP-bar und alles ist so wie es auch in den früheren Versionen war.

Wenn ich dort nun auf diese lustige
„Pause“-Taste drücke um Visual Basic zu unterbrechen und dann
in meiner Tabelle weiterarbeite werden die Fehlerprüfungen
verständlicherweise nicht merh ausgeführt. Es ist also eine
Leichtigkeit das Programm auszuhebeln. Hat irgendjemand eine
Idee?

Du könntest der Pause-Taste per VBA eine andere (also eigentlich keine) Funktion zuweisen, dann ist dieser Teil gelöst.

Ansonsten gilt, dass Excel keine 100% zuverlässige Methode bietet den Code zu schützen oder zu verbergen. Mit entsprechenden Tools, Kenntnis und krimineller Energie lassen sich diese Hürden alle überwinden (und nein, wir wollen und dürfen hier nicht näher darauf eingehen).

Als Alternative bleibt, den Code komplett auszulagern in eine .dll deren Rückkompilierung so viel Aufwand fordert dass sie nicht lohnend ist. Dafür benötigst Du dann andere Programmier-Tools als Excel und mit VBA hat das dann nicht mehr wirklich viel zu tun.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Wenn ich dort nun auf diese lustige
„Pause“-Taste drücke um Visual Basic zu unterbrechen

Hallo Bluemi,

lese ml genau nach was zu EnableCancelKey in der Vba-Hilfe steht.

Gruß
Reinhard

Hallo Leute,

das enableCancelKey kenne ich. Die Arbeitsmappe ohne Makros zu öffnen ist auch abgefangen. Das Projekt selber ist auch geschützt und mir ist bewusst, dass dieses Kennwort zu knacken möglich ist. Aber darum geht es mir nicht. Die Alt+F11 ist ebenfalls blockiert. Die Registerkarte mit dem Zugriff auf die Makros ebenfalls. Ich meine folgendes Minimalbeispiel mit diesem Code in „Diese Arbeitsmappe“:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Value = „K“ then
Target.ClearContents
End If
End Sub

Damit fange ich ganz banal ab dass niemand auf einem der Blätter in eine Zelle ein „K“ schreiben kann.
Gehe ich aber nun in den VBA-Editor und klicke ganz simpel mit der linken Maustaste auf den „Unterbrechen“-Button oder wie ich es nenne „Pause-Taste“ weil es eben genauso aussieht wie du Pause-Taste auf einem handelsüblichen CD-Spieler und gehe dann zurück in meine Arbeitsmappe, wird nicht mehr abgefangen, dass ich ein „K“ eingebe. Und genau den Klick auf diesen Button will ich verhindern, verbieten, sperren oder was auch immer.

Grüezi bleumi

Gehe ich aber nun in den VBA-Editor und klicke ganz simpel mit
der linken Maustaste auf den „Unterbrechen“-Button oder wie
ich es nenne „Pause-Taste“

Danke für das Licht ins Dunkel, nun wissen wir auch was die Pause-Taste ist… :wink:

weil es eben genauso aussieht wie
du Pause-Taste auf einem handelsüblichen CD-Spieler und gehe
dann zurück in meine Arbeitsmappe, wird nicht mehr abgefangen,
dass ich ein „K“ eingebe. Und genau den Klick auf diesen
Button will ich verhindern, verbieten, sperren oder was auch
immer.

Wenn Du das VBA-Projekt schützt und Alt+F11 auch abgefangen ist - solltest Du ja eigentlich gar keinen Zugriff auf diese Taste haben…?

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Die naive Hoffnung dass ich auf den VB-Editor keinen Zugriff habe, den hatte ich auch. Allerdings gilt das meines Erachtens nur bis Excel 2003. In der 2007er-Version hab ich bereits dieses Ribbon mit der sogenannten „Entwicklerregisterkarte“ und da kann ich den Button für den Editor einfach anklicken. Oder kann ich das auch ausblenden bzw ausgrauen?

Grüezi bleumi

Das kannst Du allenfalls über die XML-Programmierung des Ribbons tun, ist aber nicht ganz trivial.

Programmierungen mit reinem Excel sind nicht ‚bulletproof‘ hinzubekommen, dafür ist VBA als Programmiersprache nunmal nicht ausgelegt.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -