Introduktion: Lösenordsskydd av kalkylblad i Excel

Att skydda känslig information kan vara en viktig del av arbetet i Excel. Många användare vill ha en säkrare metod för att begränsa åtkomsten till specifika kalkylblad i en arbetsbok. I den här artikeln går vi 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 byggt in något sätt att lösenordsskydda specifika kalkylblad så att de inte går att öppna. Det innebär att vi måste använda VBA (Visual Basic for Applications) för att uppnå detta. Med 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: Lösenordet som används i VBA-koden lagras i klartext. Det är därför viktigt att skydda VBA-projektet med ett lösenord, så att ingen obehörig kommer åt koden.
  2. Synlighet hos skyddade blad: Ett skyddat blad kan synas en kort stund innan lösenordet har angetts, om datorn är långsam. Det kan potentiellt avslöja känslig information.
  3. Alternativa metoder för att kringgå skyddet: Det finns metoder för att kringgå VBA-skydd. Information som är mycket känslig bör därför inte skyddas enbart på det här sättet.

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 skyddar vi ”Sheet2” och ”Sheet3” med lösenordet ”gladalaxen”.

💡 Ytterligare läsning
Utöver lösenordsskydd via kod kan du även läsa guiden om cellåsning för ett enklare alternativ.

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 fönstret för ThisWorkbook:

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 gå tillbaka 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. Kom dock 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 lägga in funktionen i dina Excel-arbetsböcker och förbättra säkerheten för din information.

💡 Ytterligare läsning
Om du istället vill städa bort trasiga externa referenser kan du läsa om hur man ta bort spöklänkar i Excel med ett VBA-makro.