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.

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:
- 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.
- 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.
- 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.

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
- Öppna din Excel-arbetsbok.
- Tryck på
ALT + F11för att öppna VBA-editorn. - Dubbelklicka på
ThisWorkbooki 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
- Spara arbetet i VBA-editorn.
- Stäng VBA-editorn och gå tillbaka till Excel.
- 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.