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.

Obsah

  1. Metoda programování
  2. Popis kódu.
  3. shrnutí

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.




■INFORMATION

Kliknutím sem přejdete na horní stránku s informacemi.


■PROFILE

Kliknutím sem získáte profil.


■Kontaktní údaje.

V případě dotazů k článku nás prosím kontaktujte zde.