Arkbeskyttelse i Excel er ikke det samme som kryptering av hele filen. Hvis du har glemt passordet på Beskytt ark (Protect Sheet) i en fil du eier, kan en kjent VBA-teknikk - PasswordBreaker - finne en kollisjon i den svake 16-biters hashen og låse opp arket. Metoden hjelper ikke mot åpningspassord, arbeidsbokkryptering eller filer du ikke har rett til å endre.
Bruk bare dette på egne arbeidsbøker, eller der eieren har bedt deg om hjelp. Omgåing av beskyttelse på andres dokumenter uten tillatelse er ulovlig.
Arkbeskyttelse versus filkryptering
Excel har flere lag med «passord», og de forveksles ofte.
Arkbeskyttelse begrenser redigering av celler, formler, rader og kolonner på ett ark. Microsoft beskriver funksjonen i Beskytte et regneark. Passordet her er ment som en sperre mot utilsiktet endring, ikke som sterk kryptografi. Historisk lagres kontrollverdien som en kort hash. Det er derfor en brute-force mot hash-kollisjoner er praktisk mulig.
Arbeidsbokstruktur kan også beskyttes (låse arkfaner, forhindre innsetting/sletting av ark). Det er fortsatt ikke filkryptering.
Filkryptering / åpningspassord krypterer innholdet slik at filen ikke kan leses uten riktig passord. Microsoft dokumenterer dette separat i Beskytte en Excel-fil. PasswordBreaker og lignende makroer når ikke inn i denne laget. Har du glemt åpningspassordet, trenger du en sikkerhetskopi uten kryptering, passordarkivet ditt, eller offisiell gjenoppretting for filer du eier - ikke ark-makroen i denne artikkelen.
Kort sagt: arkbeskyttelse = redigeringssperre med svak hash. Filkryptering = reell kryptering. Denne veiledningen gjelder bare det første.
Hvorfor PasswordBreaker fungerer: 16-biters hash-kollisjon
Klassisk arkbeskyttelse i Excel sjekker ikke passordet tegn for tegn mot en sterk nøkkeltabell. Den sammenligner en 16-biters hash av det du skriver inn med hashen som ble lagret da arket ble beskyttet.
En 16-biters verdi har bare 65 536 mulige utfall. Mange ulike passordstrenger hasher til samme tall. Når ActiveSheet.Unprotect får en streng som treffer samme hash, godtas den - selv om den ikke er det opprinnelige passordet.
PasswordBreaker utnytter dette pedagogisk og praktisk: makroen prøver systematisk korte tegnkombinasjoner til ProtectContents blir False. Den rapporterer deretter én fungerende streng. Det er en hash-kollisjon, ikke «knekking» av moderne AES-kryptering.
Dette er en kjent, gammel egenskap ved arkbeskyttelsen. Microsofts VBA-API for opplåsing er Worksheet.Unprotect (dokumentasjon). Når du kjenner eller finner et godkjent passord (eller kollisjon), er det samme API som Excel selv bruker.
Forutsetninger før du starter
- Du eier filen, eller har skriftlig/muntlig tillatelse fra eieren.
- Filen åpnes uten åpningspassord (ellers er problemet filkryptering, ikke arkbeskyttelse).
- Makroer er tillatt for denne arbeidsboken.
- Du har tilgang til VBA-editoren (
Alt+F11på Windows; på Mac: Verktøy > Makro > Visual Basic-editor, avhengig av Excel-versjon).
Ta en kopi av filen først. Makroen skriver den funne strengen til celle A1 på første ark. På en kopi skader det ikke produksjonsdata.
Slik kjører du PasswordBreaker
- Åpne Excel-filen og aktiver arket som er beskyttet.
- Trykk Alt+F11 for å åpne VBA-editoren.
- Velg Sett inn > Modul.
- Lim inn koden nedenfor i modulvinduet.
- Plasser markøren inne i
PasswordBreakerog trykk F5 (eller Kjør > Kjør Sub/UserForm). - Vent til meldingsboksen viser en brukbar passordstreng. Arket skal nå være ulåst.

Sub PasswordBreaker()
Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n As Integer
Dim i1 As Integer, i2 As Integer, i3 As Integer
Dim i4 As Integer, i5 As Integer, i6 As Integer
On Error Resume Next
For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
If ActiveSheet.ProtectContents = False Then
MsgBox "One usable password is " & Chr(i) & Chr(j) & _
Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
ActiveWorkbook.Sheets(1).Select
Range("a1").FormulaR1C1 = Chr(i) & Chr(j) & _
Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
Exit Sub
End If
Next: Next: Next: Next: Next: Next
End SubHva koden gjør, linje for linje
- Nested
For-løkker bygger kandidatstrenger fra tegnkoder (stort settA/Bi de første posisjonene, deretter et bredere tegnsett i siste posisjon). - Hver kandidat sendes til
ActiveSheet.Unprotect. - Når
ProtectContentserFalse, er hashen truffet. Makroen viser strengen og avslutter. On Error Resume Nexthopper over feil hvis et forsøk ikke treffer; det er forventet under søket.
Kjøringen kan ta fra noen sekunder til noen minutter, avhengig av maskin og Excel-versjon. Den trenger ikke «finne» originalpassordet - bare én kollisjon.
Etter opplåsing: fjern beskyttelsen ordentlig
Når arket er åpent, gå til Se gjennom (eller Review) > Fjern arkbeskyttelse hvis knappen fortsatt er aktiv, eller beskytt arket på nytt med et passord du husker og lagrer i en passordbehandler. Ikke stol på at kollisjonsstrengen er lett å huske.
Visning av et skjult ark
Opplåsing av beskyttelse er ikke det samme som å vise et skjult ark. Hvis arket bare er skjult (ikke VeryHidden):
- På fanen Hjem, i gruppen Celler, klikk Format.
- Under Synlighet, velg Skjul og vis, deretter Vis ark.
- I dialogboksen Vis ark, dobbeltklikk navnet på arket du vil vise.
Du kan bare vise ett ark om gangen.
Hvis arket ble skjult med VBA via xlSheetVeryHidden, virker ikke Vis-kommandoen. Da må egenskapen endres i VBA-editoren (Properties for arket), eller eieren av arbeidsboken må gjøre det. Ikke anta at PasswordBreaker fikser VeryHidden - det er en annen mekanisme.
Merknader for Microsoft 365 og nyere Excel
Microsoft 365 og aktuelle Excel-bygg (Windows og Mac) støtter fortsatt arkbeskyttelse og VBA Unprotect for klassiske arbeidsbøker. Noen praktiske begrensninger:
- Makro-sikkerhet. Filer lastet ned fra nett eller e-post kan åpnes i beskyttet visning. Du må aktivere redigering og tillate makroer for din egen kopi før VBA kjører.
- Trust Center. Organisasjoner kan blokkere alle makroer via policy. Da må IT tillate makroer, eller du kjører gjenopprettingen på en maskin der du har rettigheter.
- Mac. VBA finnes i Excel for Mac, men snarveier og menynavn skiller seg fra Windows. Selve
Unprotect-logikken er den samme. - Excel på nettet / mobil. Nettversjonen og mobilappene gir ikke full VBA. Bruk skrivebords-Excel.
- Sterkere sperrer. Nyere arbeidsflyter som IRM, sensitivitetsetiketter eller ekte filkryptering ligger utenfor denne makroen. Ikke forvent at hash-kollisjon åpner dem.
Hvis Unprotect aldri lykkes og filen ba om passord allerede ved åpning, har du filkryptering - stopp her og bruk riktig gjenopprettingsvei for egne krypterte filer.
Vanlige feil og begrensninger
- Feil lag. Du prøver makroen på en kryptert fil. Den vil ikke hjelpe.
- Feil ark aktivt. Makroen kjører mot
ActiveSheet. Aktiver riktig fane først. - VBA-prosjekt låst. Et eget passord på VBA-prosjektet er ikke arkbeskyttelse. PasswordBreaker løser ikke det.
- Delt / skrivebeskyttet. Lagre en lokal kopi du kan endre.
- Forventning om originalpassordet. Meldingsboksen viser en kollisjon. Det er nok til å låse opp; det er ikke bevis for hva noen skrev inn i 2019.
Etikk og eierskap
Teknikken er offentlig kjent fordi arkbeskyttelsens hash er for svak til å beskytte hemmeligheter. Den er laget for å hindre tilfeldig redigering, ikke for å skjule data for uvedkommende.
Bruk den til å gjenopprette egne ark, for eksempel gamle budsjettark, lagerlister eller maler der passordet er mistet. Bruk den ikke mot andres filer, stjålne arbeidsbøker eller dokumenter du bare har fått midlertidig innsyn i. Hvis noen ber deg «låse opp» en fil uten å eie den, nekt.
For hemmeligheter som faktisk må holdes hemmelige: bruk filkryptering, tilgangskontroll på SharePoint/OneDrive, eller et dedikert hemmelighetslager - ikke arkbeskyttelse alene.
Praktisk eksempel: glemt passord på eget budsjettark
Du arver et .xlsx fra en tidligere kollega. Filen åpnes uten spørsmål. Formlene er synlige, men cellene er låst, og Fjern arkbeskyttelse ber om passord ingen husker. Det er arkbeskyttelse.
Du kopierer filen til budsjett-kopi.xlsx, tillater makroer, limer inn PasswordBreaker, kjører den på det aktuelle arket, noterer kollisjonsstrengen, fjerner beskyttelsen og lagrer uten passord (eller med et nytt du legger i passordbehandleren). Deretter sletter du makro-modulen hvis du ikke trenger den lenger, så arbeidsboken ikke bærer unødvendig VBA.
Hadde Excel derimot bedt om passord allerede da du dobbeltklikket filen, hadde du stoppet. Da er innholdet kryptert, og denne artikkelen gjelder ikke.
Når du heller bør spørre eieren
Noen arbeidsbøker er del av et regnskapssystem, en kontraktsmal eller et felles SharePoint-bibliotek. Selv om du teknisk kan låse opp et ark, kan interne regler kreve at IT eller eieren gjør det. I team: dokumenter hva du gjorde (dato, filnavn, at det var arkbeskyttelse) så neste person ikke tror filen magisk «mistet» passordet.
Hvis du er usikker på eierskap, ikke kjør makroen. Be om en ubeskyttet eksport eller om at eieren fjerner beskyttelsen selv.
Kort oppsummering
- Bekreft at problemet er arkbeskyttelse, ikke filkryptering.
- Jobb bare på egne (eller autoriserte) filer; ta en kopi.
- Kjør PasswordBreaker via VBA for å finne en 16-biters hash-kollisjon.
- Lagre et nytt, huskbart passord - eller fjern beskyttelsen hvis du ikke trenger den.
- For krypterte filer: annen prosess, andre verktøy, samme krav om eierskap.
Microsofts egne sider om arkbeskyttelse, Worksheet.Unprotect og filbeskyttelse er referansepunktene når du skal skille lagene.







