Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Zugriff auf VB-Editor verhindern

Betrifft: Zugriff auf VB-Editor verhindern von: Matthias G
Geschrieben am: 19.05.2008 15:39:58

Hallo Leute,

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

  

Betrifft: AW: Zugriff auf VB-Editor verhindern von: Daniel
Geschrieben am: 19.05.2008 16:00:24

Du könntest noch probieren was passiert, wenn ein Workbook mit aktivierten Makros geöffnet ist und deine Datei erst im Anschluss geöffnet wird...
Im Zweifelfall sollte ein Passwortschutz für das VBA Projekt hier dann weiterhelfen!

Daniel


  

Betrifft: AW: Zugriff auf VB-Editor verhindern von: Matthias G
Geschrieben am: 19.05.2008 16:04:24

Hallo Daniel,

Danke für deine Antwort.

Du könntest noch probieren was passiert, wenn ein Workbook mit aktivierten Makros geöffnet ist und deine Datei erst im Anschluss geöffnet wird...
Das schließe ich aus, indem in (mit VB) erst eine neue Excel-Instanz öffne.

Im Zweifelfall sollte ein Passwortschutz für das VBA Projekt hier dann weiterhelfen!
Ja, das soll sowieso gesetzt sein.

Ich lass mal weiter auf offen.

Gruß Matthias


  

Betrifft: noch offen o.T. von: Matthias G
Geschrieben am: 19.05.2008 16:05:04

-


  

Betrifft: AW: Zugriff auf VB-Editor verhindern von: Ramses
Geschrieben am: 19.05.2008 16:05:59

Hallo

und wie willst du verfahren, wenn deine Mappe mit nicht aktivierten Makros geöffnet wird, und dein "Schutz" dann gar nicht ausgeführt werden kann ? :-)

Gruss Rainer


  

Betrifft: AW: Zugriff auf VB-Editor verhindern von: Matthias G
Geschrieben am: 19.05.2008 16:17:05

Hallo Rainer,

und wie willst du verfahren, wenn deine Mappe mit nicht aktivierten Makros geöffnet wird, und dein "Schutz" dann gar nicht ausgeführt werden kann ? :-)

Ich öffne die Datei mit einem kleinen Visual Basic-Programm (also eine kleine .exe-Datei). Die Mappe ist kennwortgeschützt, das Kennwort wird vom VB-Programm an Excel weitergegeben. Man muss also das Kennwort nicht wissen, um die Mappe zu öffnen.
Wenn man das Kennwort weiß, ist mein Schutz sinnlos, das weiß ich.

Gruß Matthias


  

Betrifft: AW: Zugriff auf VB-Editor verhindern von: Ramses
Geschrieben am: 19.05.2008 16:36:49

Hallo

Dann mach doch aus der EXCEL Mappe eine EXE !!!
Dort kannst du genau definieren was dann gemacht werden soll und wie sie sich verhalten darf

Geht doch nicht sagst du !

Doch,... das geht sage ich :-)

http://orlando.mvps.org/

Die Nummer 2: Converter from XL to EXE

Das ist eine oberelegante Variante.

Gruss Rainer


  

Betrifft: AW: Zugriff auf VB-Editor verhindern von: Matthias G
Geschrieben am: 19.05.2008 16:47:55

Hallo Rainer,

Das Programm kannte ich nicht.
Das werde ich mal testen.
Vielen Dank für den Hinweis!

Gruß Matthias


  

Betrifft: AW: Zugriff auf VB-Editor verhindern von: ransi
Geschrieben am: 19.05.2008 16:20:17

Hallo

Habe ich eine Möglichkeit vergessen?



Was wenn ich einen CommandButton aus SteuerelementeToolBox aufziehe und eine Doppelclick drauf mache ??

Was wenn ich über Menu "Anpassen" einfach einen neuen "Makro" Button in eine Symbolleiste ziehe ?

Was wenn... ??

Was wenn... ??

ransi


  

Betrifft: AW: Zugriff auf VB-Editor verhindern von: Matthias G
Geschrieben am: 19.05.2008 16:33:55

Danke Ransi,

deine erwähnten Möglichkeiten lassen sich durch


With Application
    .CommandBars.DisableCustomize = True
    .CommandBars("Visual Basic").Enabled = False
    .CommandBars("Control Toolbox").Enabled = False
End With


verhindern.

Was fehlt noch? Ich weiß, es gibt nichts 100%ig sicheres in Excel, aber ich will diesem Ideal wenigstens so nah wie möglich kommen.

Gruß Matthias


  

Betrifft: AW: Zugriff auf VB-Editor verhindern von: ransi
Geschrieben am: 19.05.2008 16:55:48

HAllo MAtthias

Was fehlt noch?



Für OttoNormalUser wahrscheinlich nichts, aber für Leute die sich auskennen und unbedingt an die Daten oder den Programmcode wollen ist das Alles nichts ernsthaftes.

Wenn du die Mappe fertig hast, lädst du sie mal hoch ?

ransi



ransi


  

Betrifft: AW: Zugriff auf VB-Editor verhindern von: Matthias G
Geschrieben am: 19.05.2008 17:06:08

Hallo Ransi,

ich muss die Mappe nicht hochladen, sie hat bis jetzt diesen Code:

Modul1:


Option Explicit

Sub VBADisable()
Dim c As CommandBarControl
With Application
    .CommandBars.DisableCustomize = True
    .CommandBars("Visual Basic").Enabled = False
    .CommandBars("Control Toolbox").Enabled = False
    'Makro zuweisen' deaktivieren
    For Each c In .CommandBars.FindControls(ID:=859)
        c.Enabled = False
    Next c
    'Makros.. deaktivieren
    For Each c In .CommandBars.FindControls(ID:=186)
        c.Enabled = False
    Next c
    'Extras, Makro deaktivieren
    For Each c In .CommandBars.FindControls(ID:=30017)
        c.Enabled = False
    Next c
    '"Code anzeigen" deaktivieren:
    For Each c In .CommandBars.FindControls(ID:=1561)
        c.Enabled = False
    Next c
    .OnKey "%{F8}", "VBAMsg"
    .OnKey "%{F11}", "SetAdmin"
    .OnKey "+%{F11}", ""
End With
End Sub

Sub VBAEnable()
Dim c As CommandBarControl
With Application
    .CommandBars.DisableCustomize = False
    .CommandBars("Visual Basic").Enabled = True
    .CommandBars("Control Toolbox").Enabled = True
    'Makro zuweisen' aktivieren
    For Each c In .CommandBars.FindControls(ID:=859)
        c.Enabled = True
    Next c
    'Makros.. aktivieren
    For Each c In .CommandBars.FindControls(ID:=186)
        c.Enabled = True
    Next c
    'Extras, Makro aktivieren:
    For Each c In .CommandBars.FindControls(ID:=30017)
        c.Enabled = True
    Next c
    '"Code anzeigen" aktivieren:
    For Each c In .CommandBars.FindControls(ID:=1561)
        c.Enabled = True
    Next c
    .OnKey "%{F8}"
    .OnKey "%{F11}"
    .OnKey "+%{F11}"
End With
End Sub

Sub SetAdmin()
If InputBox("Passwort:") = "12345" Then
    VBAEnable
    MsgBox "Zugriff auf den VB-Editor freigegeben."
Else
    MsgBox "Falsches Kennwort!"
End If
End Sub

Sub VBAMsg()
MsgBox "Kein Zugriff auf den VB-Editor erlaubt!"
End Sub



DieseArbeitsmappe:


Private Sub Workbook_Open()
VBADisable
MsgBox "Zugriff auf VBA sollte gesperrt sein."
End Sub



Wäre nett, wenn du mal schauen könntest, was da noch geht (natürlich bei aktivierten Makros).

Achtung, vor dem Schließen der Mappe VBAEnable ausführen, damit alles wiederhergestellt ist.

Gruß Matthias


  

Betrifft: AW: Zugriff auf VB-Editor verhindern von: ransi
Geschrieben am: 19.05.2008 23:23:41

Hallo MAtthias

was da noch geht 



Ohne das ich es jetzt ernsthaft versucht hätte...
Du öffnest die Datei mit einem VB-Script. Das Kennwort gibts du mit.
Also relativ sicher.

Wie man da jetzt trotzdem reinkommt werde ich hier nicht posten.
Wie kann ich dich kontakten ?

ransi


  

Betrifft: AW: Zugriff auf VB-Editor verhindern von: Matthias G
Geschrieben am: 20.05.2008 00:20:00

Hallo ransi,

Wie kann ich dich kontakten ?



z.B. ICQ 308633332

Gruß Matthias


  

Betrifft: AW: Zugriff auf VB-Editor verhindern von: Ramses
Geschrieben am: 20.05.2008 00:57:34

Hallo

"...Du öffnest die Datei mit einem VB-Script. Das Kennwort gibts du mit..."

Wenn das Script nicht kompiliert ist,.... dann sehe ich darin absolut keinen Schutz, weil das Passwort dann im Klartext vorhanden ist.

Gruss Rainer


  

Betrifft: AW: Zugriff auf VB-Editor verhindern von: Matthias G
Geschrieben am: 20.05.2008 01:04:04

Hi Rainer,

ja, stimmt so auch nicht (wahl falsch zitiert oder falsch verstanden), mit einem VB-Programm (exe).

Gruß Matthias


 

Beiträge aus den Excel-Beispielen zum Thema "Zugriff auf VB-Editor verhindern"