Přihlášení VBA | Jak vytvořit přihlašovací formulář v aplikaci Excel VBA?
Přihlašovací formulář Excel VBA
Je možné vytvořit uživatelský formulář založený na přihlašování v aplikaci Excel VBA se všemi rozevíracími seznamy přihlašovacích ID a heslo bude sdíleno samostatně. V určitém okamžiku musíte mít představu o vytvoření přihlašovacího formuláře založeného na hesle, který vyžaduje, aby si uživatel vybral své uživatelské ID a zadal heslo pro přístup k požadovanému listu.
V tomto článku vám ukážeme, jak vytvořit přihlašovací formulář uživatele pomocí aplikace Excel VBA.
Jak vytvořit přihlašovací uživatelský formulář?
Předpokládejme například, že máte prodejní čísla podle regionů v různých listech. Máme 4 různé názvy zón a každý list zóny má pouze související data. Nyní je myšlenkou vytvořit přihlašovací formulář, kde by prodejní hlava zóny „Východ“ měla vidět pouze data zóny „Východ“, nikoli jiné zóny, ale jako administrátor byste měli vidět všechny listy zón.
Tuto šablonu VBA Přihlášení Excel si můžete stáhnout zde - Šablonu VBA Přihlášení ExcelNejprve musíme vložit název listu s názvem „Správce“. V tomto listu správce musíme vytvořit pověření „Přihlásit se“ a „Heslo“.
Pojmenoval jsem zónu a heslo stejně, můžete to později změnit. Pro názvy zón jsem vytvořil rozsah názvů jako „ZoneList“. Tento „Správce jmen“ bude použit později pro tento přihlašovací uživatelský formulář.
Když uživatel otevře soubor, měl by vidět jeden fiktivní list na pozadí, proto vytvořte nový list a pojmenujte jej jako „Fiktivní“ list “.
Pomocí těchto pracovních listů vytvoříme přihlašovací uživatelský formulář.
Krok 1: Vložte uživatelský formulář
Stisknutím kláves ALT + F11 otevřete okno editoru VBA.
- Na kartě „Vložit“ vložte „Uživatelský formulář“.
- Tím se vytvoří nový uživatelský formulář, jako je níže uvedený.
- Stisknutím klávesy F4 zobrazte okno Vlastnosti, z tohoto okna vlastností změňte název uživatelského formuláře na „LoginUF“
- Podobně pomocí tohoto okna vlastností můžeme hrát s vlastnostmi formuláře uživatele. Provedl jsem některé změny vlastností, můžete použít níže uvedené okno vlastností a použít změny ve vlastnostech formuláře uživatele.
- Nyní můj uživatelský formulář vypadá takto.
Krok 2: Navrhněte Userform
- Z panelu nástrojů formuláře uživatele vložte dvě pole se štítky a zadejte text, jak je znázorněno níže.
- Z panelu nástrojů vložte „Combo Box“.
- Pro toto pole se seznamem Excel musíme získat názvy zón z listu „Admin Sheet“, takže v okně vlastností „Combo Box“ nejprve pojmenujte toto pole se seznamem jako „Zone_List_ComboBox“ ve vlastnosti „Name“.
- Z vlastnosti „Zdroj řádků“ rozbalovacího pole zadejte název daný seznamu zón v „Správcovském listu“.
- Naše rozevírací seznam by nyní měl v rozevíracím seznamu aplikace Excel zobrazovat názvy zón.
- Pro „Zadejte své heslo“ musíme vložit „Textové pole“ ze sady nástrojů.
- U tohoto „textového pole“ musíme změnit vlastnost „Název“ a změnit ji na „Heslo_TB“.
Nyní v kódování pro přihlašovací formulář VBA bude „Combo Box“ označován názvem „Zone_List_ComboBox“ a „Textové pole“ bude označováno názvem „Password_TB“.
- Vložte dvě „příkazová tlačítka“ a zadejte text jako „Přihlásit se“ a „Odhlásit se“.
U příkazového tlačítka „Přihlásit“ změňte vlastnost názvu na „Login_CommandButton“ a u příkazového tlačítka „Odhlásit se“ změňte vlastnost názvu na „LogOut_CommandButton“.
Krok 3: Kód
Jsme hotovi s návrhovou částí přihlašovacího formuláře VBA uživatele, je čas napsat kód pro vytvoření uživatelského formuláře založeného na přihlášení v aplikaci Excel VBA.
- Dvojitým kliknutím na příkazové tlačítko „Přihlásit“ se otevře prázdný dílčí postup, jako je níže uvedený.
V rámci tohoto postupu musíme napsat kód o tom, co by se mělo stát, když stisknete tlačítko „Přihlásit se“.
Již jsem napsal kód, můžete kopírovat a vložit kód zespodu uvnitř výše uvedeného postupu.
Kód:
Soukromý Sub Login_CommandButton_Click () If Zone_List_ComboBox.Value = "" Pak MsgBox "Zóna nemůže být prázdná !!!", vbInformation, "Název zóny" Exit Sub End, pokud If Password_TB.Value = "" Pak MsgBox "Heslo nemůže být prázdné !! ! ", vbInformation," Password "Exit Sub End If If Zone_List_ComboBox.Value =" Admin "And Password_TB.Value =" Admin "Then Unload Me Dim Ws As Worksheet for each Ws in ActiveWorkbook.Worksheets Ws.Visible = xlSheetVisible Next Ws Sheets ("Správce"). Vyberte jiný Dim Dim Zone jako řetězec Dim Password jako variantu ZoneName = Zone_List_ComboBox.Value Password = Application.WorksheetFunction.VLookup (ZoneName, Sheets ("Admin"). Range ("A: B"), 2, 0 ) Pokud Heslo Heslo_TB.Value Pak MsgBox "Heslo se neshoduje", vbInformation,"Špatné heslo" Ukončit Sub End Pokud If Password = Password_TB.Value Pak Unload Me Sheets (ZoneName) .Visible = True Sheets (ZoneName) .Select ActiveSheet.Range ("A1"). Select End If End If End Sub
Podobně dvakrát klikněte na příkazové tlačítko „Odhlásit“ a zadejte níže uvedený kód.
Kód:
Soukromý dílčí logOut_CommandButton_Click () ThisWorkbook.Save ThisWorkbook.Close End Sub
Nyní dvakrát klikněte na „Uživatelský formulář“ (nikoli na žádné z vložených tlačítek) a přidejte níže uvedený kód.
Kód:
Private Sub UserForm_QueryClose (Zrušit jako celé číslo, CloseMode jako celé číslo) 'Zabrání použití tlačítka Zavřít Pokud CloseMode = vbFormControlMenu Potom MsgBox "Kliknutí na tlačítko Zavřít nefunguje." Cancel = True End If End Sub
- Nyní dvakrát klikněte na ikonu „ThisWorkbook“. Otevře se pod prázdným polem kódu.
Nyní přidejte níže uvedený kód do tohoto prázdného pole.
Kód:
Private Sub Workbook_Open () Dim Ws As Worksheet Application.DisplayAlerts = False Application.ScreenUpdating = False For each Ws in ActiveWorkbook.Worksheets If Ws.Name "Dummy" Then Ws.Visible = xlSheetVeryHidden End If Next Ws LogInUF.Show End Sub
- S kódovací částí formuláře jsme hotoví. Uložte sešit jako sešit „Macro-Enabled“ a sešit znovu otevřete. Po opětovném otevření sešitu bychom měli vidět níže uvedené okno.
- Z tohoto uživatelského formuláře musíme zvolit název příslušné zóny a zadat příslušné heslo. Například z rozbalovací nabídky vyberu zónu „Východ“ a zadám heslo.
- Pokud kliknu na „Přihlásit se“, uvidíme pouze list zóny „Východ“.
Podobně, pokud se přihlásíme pomocí „Správce“, můžeme přistupovat ke všem listům.
Takto můžeme vytvořit přístup k listu na základě hesla chráněného přihlašovacími údaji.
Věci k zapamatování
- V kódování musíte použít stejná jména, která jsme dali uživatelskému formuláři, textovému poli a příkazovému tlačítku a kombinovanému poli.
- Název a heslo zóny můžete změnit podle svého přání.