Lista skyddade filer
Här demonstreras ett sätt att identifiera vilka arbetsböcker i en eller flera mappar som är lösenordskyddade, dvs arbetsböcker som kräver lösenord när de öppnas. Om proceduren körs i en mapp med många filer är processen ytterst långsam.
Noterbart är att tipset ej kan användas i version 97.
Option Explicit
Sub Lista_LosenordSkyddade_Filer()
'© 2002 Alla rättigheter XL-Dennis
Dim wbBok As Workbook
Dim wsBlad As Worksheet
Dim i As Long, j As Long
With Application
.ScreenUpdating = False
'För att förhindra Workbook_Open händelsen.
.EnableEvents = False
End With
Set wbBok = ActiveWorkbook
Set wsBlad = wbBok.Worksheets("Blad1")
wsBlad.Columns(1).ClearContents
j = 0
With Application.FileSearch
.NewSearch
.LookIn = "E:\Arbetsmaterial\Diverse"
'Ändra värdet till True om underliggande mappar också ska genomsökas.
.SearchSubFolders = False
.Filename = "*.xls"
.FileType = msoFileTypeExcelWorkbooks
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
If Filskydd(.FoundFiles(i)) Then
j = j + 1
wsBlad.Cells(j, 1).Value = .FoundFiles(i)
End If
Next i
Else
MsgBox "Inga MS Excel-filer funna.", vbInformation
End If
End With
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
Function Filskydd(stFilNamn As String) As Boolean
'© 2002 Alla rättigheter XL-Dennis
On Error GoTo Losenord
'Här antas att ingen arbetsbok har lösenordet "AAAAA".
Workbooks.Open Filename:=stFilNamn, Password:="AAAAA"
ActiveWorkbook.Close False
Exit Function
Losenord:
Filskydd = True
End Function