Inhalt
- VBA-Anmeldebereich erklärt
- Schritt 1 - Zugriff auf VBA und Erstellen eines Formulars
- Schritt 2 - Hinzufügen von Elementen zum Formular
- Schritt 3 - Hinzufügen von VBA-Code
- Schritt 4 - Schutz der Blätter und Zurücksetzen der Anmeldung
- Wie haben Sie das gefunden?
- Fragen & Antworten
Ich benutze VBA / VB.Net, um bessere Wege zu finden, um alltägliche Aufgaben zu erledigen
VBA-Anmeldebereich erklärt
Viele Menschen verwenden täglich Excel und teilen ihre Arbeitsmappen mit anderen Benutzern. Einer der frustrierenden Aspekte beim Teilen ist, dass andere Personen Ihre Daten ändern, bearbeiten oder löschen können. Durch Erstellen eines Anmeldebereichs können Sie steuern, welche Blätter für alle nicht angemeldeten Personen angezeigt werden können. Dies ist in vielen Anwendungen nützlich, z. B. in Verwaltungssystemen, in denen anstelle mehrerer Arbeitsmappen Informationen (z. B. Budgets) ferngehalten werden Von weniger hochrangigen Mitarbeitern sperren Sie es einfach hinter einer Anmeldeoption.
Excel hat seine Grenzen und ein erfahrener Benutzer von VBA- und Microsoft-Systemen kann diese Anmeldung möglicherweise umgehen. Für den durchschnittlichen Benutzer ist dies jedoch mehr als ausreichend.
Mit VBA (Visual Basic für Applikationen) können Benutzer von Microsoft-Anwendungen benutzerdefinierten Code erstellen und ihn zum Ausführen von Aktionen verwenden, die ansonsten nicht enthalten sind. Also lasst uns anfangen.
Schritt 1 - Zugriff auf VBA und Erstellen eines Formulars
Auf VBA kann auf zwei Arten zugegriffen werden:
- Drücken Sie einfach ALT + F11.
- Gehen Sie zu den Optionen und wählen Sie "Registerkarte" Entwickler anzeigen "". Klicken Sie dann auf Visual Basic (ab 2007).
Wenn der Editor geöffnet wird, wird ein graues Fenster mit einem Projektmanager auf der linken Seite angezeigt.
Projektmanager - Hier wechseln Sie zwischen Ihren Arbeitsmappenblättern, Formularen und Modulen, um Code anzuzeigen und zu bearbeiten.
Klicken Sie zunächst mit der rechten Maustaste auf "VBAProject (Buch1)"(oder wie auch immer Ihre Arbeitsmappe heißt) und wählen Sie"Einfügen" und dann "Benutzerformular’.
Sie erhalten ein leeres Formular. Wenn sich die Toolbox nicht automatisch öffnet, klicken Sie auf das Symbol in der Symbolleiste, das einen Schraubenschlüssel und einen Hammer darstellt. Diese Toolbox enthält alles, was Sie zum Erstellen des Anmeldebildschirms benötigen.
Schritt 2 - Hinzufügen von Elementen zum Formular
Nachdem Sie Ihr neu erstelltes Formular erstellt haben, müssen Sie es so einrichten, dass es wie ein Anmeldeformular aussieht. Folgen Sie den unteren Schritten.
- In dem Eigenschaften Fenster (unten links) sehen Sie "Name"Feld, ändern Sie dies in" Login ".
- Beachten Sie, dass der UserForm-Titel immer noch "Userform1" lautet. Sie müssen auch die "Bildbeschriftung"Feld zu so etwas wie" Bitte anmelden ".
- Wählen Sie in der Toolbox die Schaltfläche "A" und platzieren Sie eine Beschriftung in der oberen linken Ecke der UserForm. Sie müssen das Etikett bearbeiten, um "Benutzername" zu lesen. Sie können dies tun, indem Sie entweder einmal klicken, 2 Sekunden warten und dann erneut klicken (durch Doppelklicken gelangen Sie zum Codebildschirm für dieses Etikett) oder das bearbeiten Bildbeschriftung im Eigenschaftenfenster.
- Passen Sie die Größe der Beschriftung an den Text an, da sie sonst andere Elemente überlappen kann.
- Wählen Sie aus der Toolbox "AB |" Klicken Sie auf die Schaltfläche und platzieren Sie ein Textfeld unter der Bezeichnung "Benutzername".
- Bearbeiten Sie bei ausgewähltem neuen Textfeld die Option "Name"Feld zu" Benutzername ". Dieser Name wird verwendet, um auf das Textfeld in dem Code zu verweisen, den wir später schreiben werden.
- Wiederholen Sie die Schritte 2 bis 6 für das Feld "Passwort" und die Bezeichnung, um sicherzustellen, dass das Textfeld den Namen "Passwort" trägt.
- Suchen Sie bei ausgewähltem Textfeld "Passwort" die Option "PasswordChar"Eigenschaft aus dem Eigenschaftenfenster. Fügen Sie ein" * "in dieses Feld ein. Dies bedeutet, dass die eingegebenen Zeichen wie ein Standardkennwortfeld ausgeblendet sind.
- Klicken Sie in der Toolbox auf Befehlsschaltfläche Symbol (sieht aus wie ein graues Rechteck) und zeichnen Sie eine Schaltfläche unter dem Passwortfeld. Ändern Sie den Namen der Befehlsschaltfläche von "CommandButton1" in "LoginButton" und die Beschriftung in "Login".
- Sie können jetzt die Größe des gesamten Benutzerformulars an die darauf platzierten Elemente anpassen, wie im Beispiel.
Das war's, das Formular wird erstellt. Jetzt müssen wir den Code dahinter hinzufügen, um zu sagen, was mit den darauf eingegebenen Informationen zu tun ist.
Schritt 3 - Hinzufügen von VBA-Code
Dies ist das Bit, das die meisten Leute nicht verstehen. Anstatt Ihnen einfach zu sagen, dass Sie etwas kopieren und einfügen sollen, ist es viel besser, wenn Sie die folgenden Schritte ausführen und verstehen, wie der Codeprozess funktioniert.
In diesem Handbuch richten wir den Benutzernamen auf "Admin" und das Passwort auf "1234" ein.
1. Doppelklicken Sie im Editorfenster auf die zuvor erstellte Anmeldeschaltfläche. Die Ansicht ändert sich in "Codeansicht" und zeigt Folgendes an:
Private Sub LoginButton_Click () End Sub
Ihr gesamter Code für die Schaltfläche muss zwischen diesen Zeilen geschrieben werden.
2. Wir müssen Excel mitteilen, wie überprüft werden soll, ob der Benutzername mit "Admin" übereinstimmt. Dazu müssen wir schreiben:
Wenn Me.Username.Value = "Admin" Dann
Diese Zeile weist Excel an, zu überprüfen, ob der Wert im Textfeld "Benutzername" gleich "Admin" ist.
Schreiben Sie darunter:
Wenn Me.Password.Value = "1234" Dann
Diese Zeile weist Excel an, zu überprüfen, ob der Wert im Textfeld "Kennwort" gleich "1234" ist.
Die beiden Zeilen zusammen prüfen, ob alle Anmeldeinformationen korrekt sind. Jetzt müssen wir VBA mitteilen, was zu tun ist, wenn dies der Fall ist. Sie sollten darunter schreiben:
LoginFlag = True
Dadurch wird ein Anmeldeflag gesetzt, mit dem wir beim Öffnen von Blättern vergleichen können. Es ist jedoch noch nicht eingerichtet. Wir werden das gleich behandeln. Jetzt müssen wir Excel anweisen, nicht mehr nach den Werten zu suchen und was zu tun ist, wenn sie nicht die richtigen Werte sind. Schreiben Sie unterhalb der LoginFlag-Zeile:
Unload Me Exit Sub End If End If MsgBox "Entschuldigung, falsche Anmeldedaten"
Die Anweisung "Unload Me" stellt sicher, dass das Formular bei erfolgreicher Anmeldung geschlossen wird. Die Zeile "Exit Sub" beendet den Rest des Codes, wenn der LoginFlag auf true gesetzt ist. Die beiden "End If" -Anweisungen weisen Excel an, die Überprüfung der zuvor festgelegten relevanten IF-Anweisungen zu beenden. Die Anweisung "MsgBox" lädt ein Popup-Fenster, wenn die Anmeldung nicht erfolgreich ist.
Insgesamt sollte Ihr Code so aussehen.
Private Sub LoginButton_Click () If Me.Username.Value = "Admin" Then If Me.Password.Value = "1234" Then LoginFlag = True Unload Me Exit Sub End If End If MsgBox "Entschuldigung, falsche Anmeldedaten"
Was ist also mit dem LoginFlag? Wir müssen dies so einrichten, dass es sich immer an den letzten Zustand erinnert. VBA setzt alle Variablen sofort zurück, wenn der Code beendet wird. Daher müssen wir ihn anweisen, sich zu erinnern.
Klicken Sie mit der rechten Maustaste in das Projektfenster und wählen Sie "Einfügen" und dann "Modul" (kein Klassenmodul!) Und kopieren Sie Folgendes hinein.
Global LoginFlag As Boolean
Das "Global" weist Excel an, sich die Variable auch nach Abschluss der Ausführung des Codes zu merken und dem gesamten Programm den Zugriff auf den gespeicherten Wert zu ermöglichen. Das "Boolean" teilt Excel lediglich mit, dass diese Variable entweder "True" oder "False" ist.
Jetzt müssen wir nur noch die Blätter schützen, die wir schützen möchten, um zu überprüfen, ob die "LoginFlag" wahr ist, und um das Flag beim Öffnen der Arbeitsmappe zurückzusetzen.
Schritt 4 - Schutz der Blätter und Zurücksetzen der Anmeldung
Erstellen Sie zunächst ein neues Blatt, wenn Sie noch nicht mehr als ein Blatt haben.
Öffnen Sie den VBA-Editor erneut (drücken Sie ALT + F11). Öffnen Sie im Projektfenster den Code für Blatt 2 und schreiben Sie:
Private Sub Worksheet_Activate () Wenn LoginFlag = False, dann Arbeitsblätter (1) .Activate Login.Show End If End Sub
Dieser Code prüft, ob LoginFlag False ist. Wenn dies der Fall ist, wird das erste Blatt in der Arbeitsmappe geöffnet und das Anmeldeformular für den Benutzer zum Anmelden geöffnet. Beachten Sie, dass Sie diesen Code auf Blatt 1 nicht verwenden können!
Sie können diesen Code auf jedes Blatt kopieren, das Sie im VBA-Editor schützen möchten.
Alles, was übrig bleibt, ist das Zurücksetzen des LoginFlag beim Öffnen der Arbeitsmappe (sodass es an Flase zurückgegeben wird, wenn es mit dem LoginFlag auf True gespeichert wird). Öffnen Sie im Projektfenster das Element "ThisWorkbook" und schreiben Sie:
Private Sub Workbook_Open () LoginFlag = False End Sub
Das war's, Sie haben jetzt ein voll funktionsfähiges Anmeldesystem, um Ihre Blätter vor dem Anzeigen und Bearbeiten zu schützen. Menschen können jedoch weiterhin auf andere Weise löschen, umbenennen und manipulieren! Achten Sie in Zukunft auf Anleitungen, um dies zu verhindern.
Wie haben Sie das gefunden?
Dieser Artikel ist genau und nach bestem Wissen des Autors. Der Inhalt dient nur zu Informations- oder Unterhaltungszwecken und ersetzt nicht die persönliche Beratung oder professionelle Beratung in geschäftlichen, finanziellen, rechtlichen oder technischen Angelegenheiten.
Fragen & Antworten
Frage: Kann der Erstellungsprozess der Excel-VBA-Anmeldung so geändert werden, dass mehrere Benutzer ihre eigene Anmeldung haben?
Antworten: Ja, Sie können beispielsweise den Windows-Anmeldenamen des Benutzers abrufen und eine IF-Anweisung ausführen, um zu überprüfen, ob es sich um einen bestimmten Benutzer handelt, und dann dieses Anmeldekennwort erwarten
Frage: Wie würde ich vorgehen, um das Windows-Benutzer-Login zu erhalten?
Antworten: Application.UserName gibt den Benutzernamen der aktuell angemeldeten Person zurück.
Dim Var
Var = Application.UserName
Das Obige würde dazu führen, dass "Var" den Benutzernamen des aktuell angemeldeten Windows-Benutzers enthält