VBA-kod som lösenordsskyddar blad

Först publicerad:

| © ExcelKungen.com

Introduktion: Lösenordsskydd av kalkylblad i Excel

Att skydda känslig information kan vara en viktig del av arbetet med Excel. Många användare vill ha en mer säker metod för att begränsa åtkomsten till specifika kalkylblad i en arbetsbok. I denna artikel kommer vi att gå igenom hur du kan använda VBA-kod som lösenordsskyddar blad i Excel.

skydda-arbetsblad-atkomst

Varför använda VBA för lösenordsskydd?

Trots att Excel erbjuder vissa säkerhetsfunktioner har Microsoft inte implementerat ett inbyggt sätt att lösenordsskydda specifika kalkylblad. Detta innebär att vi måste använda VBA (Visual Basic for Applications) för att uppnå detta. Genom att använda en enkel makrokod kan vi förhindra obehörig åtkomst till våra kalkylblad.

Säkerhetsaspekter att tänka på

Innan vi går igenom koden är det viktigt att förstå vissa säkerhetsaspekter:

  1. Lösenord i klartext: Det lösenord som används i VBA-koden lagras i klartext. Det är därför viktigt att skydda VBA-projektet genom att ställa in ett lösenord för att förhindra obehörig åtkomst till koden.
  2. Visibilitet av skyddade blad: Ett skyddat blad kan synas kort innan lösenordsinmatningen om datorn är långsam. Detta kan potentiellt avslöja känslig information.
  3. Alternativa metoder för kringgå skyddet: Det finns metoder för att kringgå VBA-skydd. Därför bör information som är mycket känslig inte enbart skyddas via denna metod.

Fönstret i Excels VBA-editor där du lösenordsskyddar VBA-projektet.

Steg-för-steg-guide: VBA-kod som lösenordsskyddar blad

Följande steg beskriver hur du kan implementera VBA-kod för att lösenordsskydda kalkylblad i Excel. I vårt exempel kommer vi att skydda "Sheet2" och "Sheet3" med lösenordet "gladalaxen".

Steg 1: Öppna VBA-editorn

  1. Öppna din Excel-arbetsbok.
  2. Tryck på ALT + F11 för att öppna VBA-editorn.
  3. Dubbelklicka på ThisWorkbook i projektutforskaren.

Steg 2: Lägg till VBA-koden

Kopiera och klistra in följande kod i ThisWorkbook-fönstret:

Dim strStartBlad As String
Dim strNastaBlad As String

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Dim z As Integer
    Dim i As Integer
    Dim x As Boolean
    Dim varArbetsBlad As Variant
    Dim varLosenOrd As Variant
    Dim varInput As Variant

    ' Förbereda kalkylbladen som ska skyddas
    varArbetsBlad = Array("Sheet2", "Sheet3") ' De blad som vi vill skydda...
    varLosenOrd = "gladalaxen" ' Lösenord...

    ' Stäng av händelser
    Application.EnableEvents = False

    ' Kontrollera om det aktiverade bladet är ett skyddat blad
    strNastaBlad = Sh.Name
    For i = LBound(varArbetsBlad) To UBound(varArbetsBlad)
        If varArbetsBlad(i) = strNastaBlad Then x = True
    Next i
    If x = False Then GoTo 99

    ' Dölja arbetsbladet temporärt
    z = ActiveWindow.Index
    Windows(z).Visible = False

    ' Utvärdera lösenordet
    varInput = InputBox("Lösen:")
    If varInput <> varLosenOrd Then Sheets(strStartBlad).Select

    ' Visa bladet
    Windows(z).Visible = True

99:
    ' Sätt på händelser
    Application.EnableEvents = True
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    ' Kom ihåg startbladet
    strStartBlad = Sh.Name
End Sub

Steg 3: Spara och testa

  1. Spara arbetet i VBA-editorn.
  2. Stäng VBA-editorn och återgå till Excel.
  3. Försök att växla till "Sheet2" eller "Sheet3" för att se lösenordsinmatningen i aktion.

Avslutande tankar

Att använda VBA-kod som lösenordsskyddar blad i Excel är en användbar metod för att skydda känslig information. Men kom ihåg att det inte är en absolut säker lösning och att du alltid bör överväga andra säkerhetsåtgärder för att skydda dina data. Genom att följa stegen ovan kan du enkelt implementera denna funktionalitet i dina Excel-arbetsböcker och förbättra säkerheten för din information.

Populära artiklar

Dagens tips

Relaterade artiklar