VBA - Sperren
Hallo zusammen
Eine Frage
kann man wirkungsvoll die tastenkombi Alt+F11 mit einem makro sperren , so das ein zugriff auf VBA nicht möglich ist
allen einen guten Rutsch
Antwort schreiben
Antwort 1 von Hajo_Zi vom 31.12.2019, 15:08 Options
Hallo Nick,
falls Du den Zugriff auf Dein VBA Projekt verhindern willst schütze das VBA Projekt. In Excel ist aber nichts sicher.
Gruß Hajo
Antwort 2 von coros vom 31.12.2019, 17:22 Options
Hallo Kambarka,
nachfolgende Makros deaktivieren, bzw. aktivieren die Tastenkombination "Alt F11" und noch weitere Menüleisteneinträge, mit denen es möglich wäre, in die VBA-Umgebung zu wechseln.
Allerdings ist diese Variante, wie Hajo es bereits angedeutet hat, nicht 100%ig sicher. Denn wird die Datei ohne Makros zu aktivieren geöffnet , kann man in den VB-Editor wechseln. Um soetwas abzufangen, muss man mit anderen Mitteln als mit Excelmitteln arbeiten.
Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.[b]Option Explicit
Sub VBA_Anwahl_aus()
With Application
'Symbolleistenmenü unter "Ansicht _
deaktivieren
If Val(Application.Version) <= 11 Then _
.CommandBars("Toolbar List").Enabled = False
'Die Funktion "Anpassen" Im Menüpunkt "Extras" wird deaktiviert
.CommandBars("Worksheet Menu Bar"). _
Controls("Extras").Controls("Anpassen...").Enabled = False
'Die Funktion "Makro" Im Menüpunkt "Extras" wird deaktiviert
.CommandBars("Worksheet Menu Bar"). _
Controls("Extras").Controls("Makro").Enabled = False
'Die Symbolleiste "Steuerelement/Toolbox" wird deaktiviert falls geöffnet
.CommandBars("Control Toolbox").Visible = False
'Die Symbolleiste "Visual Basic" wird deaktiviert falls geöffnet
.CommandBars("Visual Basic").Visible = False
'Tastenkombination Alt F11 wird deaktiviert
.OnKey "%{F11}", ""
'VBA-Editor schließen wenn geöffnet
.VBE.MainWindow.Visible = False
End With
End Sub
Sub VBA_Anwahl_ein()
With Application
'Symbolleistenmenü unter "Ansicht _
deaktivieren
If Val(Application.Version) <= 11 Then _
.CommandBars("Toolbar List").Enabled = True
'Die Funktion "Anpassen" Im Menüpunkt "Extras" wird deaktiviert
.CommandBars("Worksheet Menu Bar"). _
Controls("Extras").Controls("Anpassen...").Enabled = True
'Die Funktion "Makro" Im Menüpunkt "Extras" wird deaktiviert
.CommandBars("Worksheet Menu Bar"). _
Controls("Extras").Controls("Makro").Enabled = True
'Tastenkombination Alt F11 wird deaktiviert
.OnKey "%{F11}"
End With
End Sub
[/b]
Wie Du das VBA-Projekt dann noch schützen kannst, kannst Du auf
meiner HP in der
Rubrik Anleitungen und dort dann in der
Anleitungsnummer 12 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird. Allerdings ist auch dieses, wie von Hajo angemerkt auch kein richtiger Schutz.
Bei Fragen melde Dich.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 3 von Hajo_Zi vom 31.12.2019, 17:33 Options
Hallo Oliver,
ich vermute mal wird der VBA Editor vor dem öffnen der Datei aktiviert. Kommt man auch an den Code,
Gruß Hajo
Antwort 4 von coros vom 31.12.2019, 17:39 Options
Hallo Hajo,
nein, der Editor wird durch die Zeile
[b].VBE.MainWindow.Visible = False[/b]
geschlossen. Aber eben nur, wenn die Makros aktiviert wurden. Daher arbeite ich immer, wenn in der Datei keiner an die VBA-Umgebung usw. herankommen soll, mit Visual Basic. Damit erstelle ich eine Exe-Datei, die mir die Exceldatei öffnet und dabei alle Enstellungen vornimmt. Die Exceldatei erhält ein Lesepasswort und noch ein paar andere Dinge und ist ohne die Exe-Datei nicht zu öffnen.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 5 von kvtv vom 02.01.2020, 20:26 Options
Hallo Oliver (Coros),
Du schreibst in der letzten Antwort über eine EXE-Datei. Kannst Du mir sagen wie das Funktioniert und was man dafür benötigt. Eine kleine Anleitung wäre nett.
Vielen Dank im voraus.
Gruß Karsten
Antwort 6 von coros vom 03.01.2020, 06:26 Options
Hallo Karsten,
Du benötigst dafür Visual Basic 5 oder 6. Dort erstellst Du eine Exe-Datei, die Dir die Exceldatei öffnet und übergibst im Öffnen-Befehl das Lesepasswort.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 7 von kvtv vom 04.01.2020, 22:27 Options
Hallo Oliver,
vielen Dank ersmal für Deine promte Antwort. Auf dem Gebiet bin ich aber ein totaler Anfänger. Kannst du mir denn mal die Zeile Posten, die ich in eine EXE umwandeln muß?
Als Beispiel könnte die Excel Datei test.xls und das Lesepasswort passwort heißen.
Kann man denn beim öffnen der EXE-Datei die Makros nicht auch blockieren , sodaß die Macros dann garnicht ausgeführt werden?
Vielen Dank im voraus.
Gruß Karsten
Antwort 8 von coros vom 05.01.2020, 06:03 Options
Hallo Karsten,
es geht nicht darum etwas in eine Exe-Datei umzuwandeln, sondern eine Exe-Datei zu erstellen. Hast Du denn überhaupt das Programm Visual Basic 5 oder 6? Wenn nicht, würde Dir auch kein Code helfen.
Die Exe-Datei kann beim Öffnen nicht blockiert werden.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.