ich bin auf der Suche nach einer Möglichkeit, den Zugriff auf den VB-Editor (und damit auch aufs Direktfenster) zu verhindern, um keine VBA-Befehle zuzulassen.
Dies hier schaut m.E. bisher recht vielversprechend aus:
Sub VBAEnable()
Dim c As CommandBarControl
With Application
'Extras, Makro deaktivieren
.CommandBars("Worksheet Menu Bar").Controls("extras").Controls("Makro").Enabled = True
'"Code anzeigen" deaktivieren:
For Each c In .CommandBars.FindControls(ID:=1561)
c.Enabled = True
Next c
.OnKey "%{F8}"
.OnKey "%{F11}"
.OnKey "+%{F11}"
End With
End Sub
Sub VBADisable()
Dim c As CommandBarControl
With Application
'Extras, Makro aktivieren
.CommandBars("Worksheet Menu Bar").Controls("Extras").Controls("Makro").Enabled = False
'"Code anzeigen" aktivieren:
For Each c In .CommandBars.FindControls(ID:=1561)
c.Enabled = False
Next c
.OnKey "%{F8}", ""
.OnKey "%{F11}", "SetAdmin" 'externe Prozedur: Kennwortabfrage und ggf. Aufruf von _
VBAEnable
.OnKey "+%{F11}", ""
End With
End Sub
Es wird das Menu Extras-Makro deaktiviert, außerdem alle "Code anzeigen"-Befehle (Control-ID 1561).
Das Öffnen der Mappe mit deaktivierten Makros habe ich bereits ausgeschlossen.
Habe ich eine Möglichkeit vergessen?
Danke,
Matthias