FileSearch Object – skapa en katalog över datafiler med hjälpa av Excel

Nivå: Medelsvår

I det här exemplet används FileSearch objektet i Excel.  Kanske har du kataloger på datorns hårddisk  som innehåller en massa filer? Kanske vill du skapa dokumentation över filerna, eller bara skapa mer ordning. Katalogen kan innehålla t.ex Word-dokument, mp3-filer, bildfiler eller liknande.  Nedan en beskrivning över hur man skapar ett makro i Excel som listar alla filer i en katalog på hårddisken och skriver namnen på filerna till ett kalkylark.  Här följer de olika stegen: 

1. Starta programmet Excel

2. Gå in Visual Basic Editor (VBE) genom att trycka tangenterna Alt+F11 samtidigt.

3. Kalla makrot för SkapaEnLista och skriv in följande programkod i kodmodulen.

======== Kodstart ================

 Sub SkapaEnLista()
    Directory = ”C:\Musik\”
    r = 1
    ’Sätt in kolumnrubriker…
    Cells(r, 1) = ”Filnamn”
    Cells(r, 2) = ”Storlek”
    Cells(r, 3) = ”Datum/Tid”
    Range(”A1:C1”).Font.Bold = True
    ’Hämta första filen…
    f = Dir(Directory, 7)
    Do While f <> ””
        r = r + 1
        Cells(r, 1) = f
        Cells(r, 2) = FileLen(Directory & f)
        Cells(r, 3) = FileDateTime(Directory & f)
        ’Nästa fil..
        f = Dir()
    Loop
End Sub

======== Kodslut ================

4. När programkoden är inskriven, spara och provkör sedan makrot genom att trycka F5. Om allt fungerar skall nu Excel skapa en lista över dina datafiler och lägga dessa i ett kalkylark.

Kommentar: Notera att proceduren använder den inbyggda funktionen Dir två gånger. Första gången hämtar den det första filnamnet, när inga mer filnamn hittas, returnerar funktionen en tom sträng. I exmplet ovan antar vi att vi har en katalog på hårddisken som heter Musik. Din katalog kanske heter något annat, så här kan du ändra namnet så att det matchar namnet påkatalogen du har,  så du kan skapa din kataloglista i Excel. Detta är ett exempel på hur man på ett sätt som man kan ta in externa data i Excel, för att fortsätta sin datamanipulationen där.

Share