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.
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:
- 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.
- 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.
- 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.
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
- Öppna din Excel-arbetsbok.
- Tryck på
ALT + F11
för att öppna VBA-editorn. - 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
- Spara arbetet i VBA-editorn.
- Stäng VBA-editorn och återgå 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. 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.