Jak získat seznam souborů včetně podsložek a seznam složek pomocí VBA (makro aplikace Excel).
Datum vydání:12. července 2022.
INFOMARTION > Jak získat seznam souborů včetně podsložek a seznam složek pomocí VBA (makro aplikace Excel).
Přehled.
Rád bych popsal, jak získat seznam souborů a seznam složek včetně podsložek pomocí VBA (makro Excelu). Článek je určen lidem, kteří chtějí naprogramovat následující úkoly.
- Chci získat seznam všech souborů nebo složek ve složce s jejich úplnými cestami.
- Chcete provést zpracování ve smyčce pro soubory nebo složky ve složce.
1. Metoda programování
Níže jsou uvedeny referenční příklady programování.
Vzhledem k tomu, že je vytvořena ve Function, chtěl bych ji zkopírovat tak, jak je, a volání metod provést ze Sub.
'Parameter Examples
'## filePath C:\Users\user\Desktop\test\
'## kind false:folder, true:file
'## list
Function getFolderOrFile(filePath As String, kind As Boolean, list As Collection) As Collection
'delete\
Dim filePathEnd As String
filePathEnd = Right(filePath, 1)
If filePathEnd = "\" Then
filePath = Left(filePath, Len(filePath) - 1)
End If
'Folder existence check
Dim result As String
result = Dir(filePath, vbDirectory)
If result = "" Then
MsgBox "File does not exist!"
Exit Function
End If
If kind Then
Dim buf As String
buf = Dir(filePath & "\*.*")
Do While buf <> ""
list.Add filePath & "\" & buf
buf = Dir()
Loop
Else
list.Add filePath
End If
Dim folder As Object
With CreateObject("Scripting.FileSystemObject")
For Each folder In .GetFolder(filePath).SubFolders
getFolderOrFile folder.Path, kind, list
Next folder
End With
End Function
Chcete-li ji použít, předejte jako argumenty následující údaje.
- filePath・・・adresář. Příklad.)C:\Users\user\Desktop\test
- kind・・・Předat true, false. Pokud je True, vrátí seznam souborů. Pokud false, vrátí seznam složek.
- list・・・Kolekce slouží k ukládání výsledků. Níže je uveden příklad implementace.
Příklad implementace skutečného volání funkce je uveden níže.
Sub test()
Dim list As Collection
Set list = New Collection
getFolderOrFile "C:\Users\user\Desktop\test", False, list
Dim item As Variant
For Each item In list
'------TODO------
ThisWorkbook.Worksheets(1).Cells(1, 1).Value = item
Next
End Sub
Volání getFolderOrFile uloží seznam souborů nebo seznam složek do seznamu. Příklad implementace je False, takže seznam složek je uložen.
Popište proces, který chcete provést, v části "TODO" v příkazu For. ITEM lze považovat za proměnnou typu String.
Referenčním zdrojem je proces nastavení získaného seznamu na A1 v aplikaci Excel. (Proces opakovaně přepisuje stejnou buňku.)
2. Popis kódu.
Tímto končí návod k použití systému a následuje vysvětlení kódu.
Podrobnosti jsou uvedeny v kódu, ale klíčové je další volání metody getFolderOrFile v metodě getFolderOrFile.
V procesu vyhledávání složek se proces dále opakuje voláním procesu vyhledávání složek, což je mechanismus pro vyhledávání všech složek.
Voláním své vlastní metody opakovaně volá svou vlastní metodu, dokud je složka nalezena, a prohledává všechny složky.
3. shrnutí
Pokud potřebujete poradit, jak získat seznam souborů a seznam složek včetně podsložek pomocí VBA (makra aplikace Excel), přečtěte si tuto část.
Děkujeme, že jste se dívali až do konce.