Funktioner för kontroll att filer & mappar existerar
Här visas hur vi med hjälp av två funktioner kan kontrollera om filer och/eller mappar existerar eller inte.
Koden kan kopieras och klistras in direkt i aktuell modul eller så kan du hämta ett exempel här.
Se också Kontroll av status arbetsblad & arbetsbok
Option Explicit
Sub Kontroll_Mapp_Arbetsbok()
'© 2002 Alla rättigheter XL-Dennis
Dim stSokvag As String, stSokVag1 As String, stSokVag2 As String, stbok As String
stSokvag = "c:\xl\XL-Dennis"
stbok = "XL-Dennis"
If Not MappExisterar(stSokvag) Then
'Kommandot MkDir kan bara skapa en nivå
'i mappstrukturen åt gången varför det krävs här två
'instruktioner.
MkDir "c:\xl"
MkDir "c:\xl\XL-Dennis"
End If
If Not FilExisterar(stbok) Then
'Skapar en ny arbetsbok med ett arbetsblad.
Workbooks.Add xlWBATWorksheet
'Sparar och stänger den nya arbetsboken
With ActiveWorkbook
.SaveAs stSokvag & "\XL-Dennis"
.Close
End With
End If
End Sub
Function MappExisterar(stMapp As String)
'© 2002 Alla rättigheter XL-Dennis
MappExisterar = False
If Len(Dir(stMapp, vbDirectory)) <> 0 Then
MappExisterar = True
End If
End Function
Function FilExisterar(SokVagFil As String) As Boolean
'© 2002 Alla rättigheter XL-Dennis
If Dir(SokVagFil) <> "" Then
FilExisterar = True
Else
FilExisterar = False
End If
End Function
En mer generell lösning visas nedan där mapp- och filkontroll sker i samma funktioner. Den kan t ex byggas ut med att inhämta sökväg och filnamn från användarna.Sub Kontroll_Mapp_Fil()
'© 2002 Alla rättigheter XL-Dennis
Dim stSokvag As String, stbok As String
stSokvag = "c:\xl\XL-Dennis"
stbok = "XL-Dennis.xls"
If MappFilExisterar(stSokvag, stbok) Then
MsgBox "Ja, mapp coh arbetsbok finns."
Else
MsgBox "Nej, mapp och arbetsbok finns ej."
End If
End Sub
Function MappFilExisterar(stSokvag As String, stFilnamn As String) As Boolean
'© 2002 Alla rättigheter XL-Dennis
With Application.FileSearch
.NewSearch
.Filename = stFilnamn
.LookIn = stSokvag
.Execute
If .FoundFiles.Count = 1 Then
MappFilExisterar = True
Else
MappFilExisterar = False
End If
End With
End Function