Cara mendapatkan daftar file, termasuk subfolder, dan daftar folder menggunakan VBA (makro Excel).


Tanggal Publikasi:12 Juli 2022.



INFOMARTION > Cara mendapatkan daftar file, termasuk subfolder, dan daftar folder menggunakan VBA (makro Excel).

Ikhtisar.

Saya ingin menjelaskan cara mendapatkan daftar file dan daftar folder, termasuk subfolder, menggunakan VBA (makro Excel). Artikel ini ditujukan bagi orang yang ingin memprogram tugas-tugas berikut ini

  • Saya ingin mendapatkan daftar semua file atau folder di bawah folder dengan jalur lengkapnya.
  • Anda ingin melakukan pemrosesan dalam satu lingkaran untuk file atau folder di bawah folder.

Daftar Isi

  1. Metode pemrograman
  2. Deskripsi Kode.
  3. ringkasan

1. Metode pemrograman

Contoh referensi pemrograman diberikan di bawah ini.

Karena dibuat dalam Fungsi, saya ingin menyalinnya apa adanya dan memiliki panggilan metode yang dibuat dari 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

Untuk menggunakannya, berikan yang berikut ini sebagai argumen.

  • filePath・・・direktori. Contoh.)C:\Users\user\Desktop\test
  • kind・・・Lulus benar, salah. Jika Benar, mengembalikan daftar file. Jika false, mengembalikan daftar folder.
  • list・・・Koleksi digunakan untuk menyimpan hasil. Contoh implementasi diberikan di bawah ini.

Contoh implementasi dari pemanggilan Fungsi aktual ditunjukkan di bawah ini.

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

Memanggil getFolderOrFile akan menyimpan daftar file atau daftar folder dalam daftar. Contoh implementasi adalah False, sehingga daftar folder disimpan.

Jelaskan proses yang ingin Anda lakukan di bagian "TODO" dalam pernyataan For. ITEM bisa diperlakukan sebagai variabel String.

Sumber referensi adalah proses pengaturan daftar yang diperoleh ke A1 di Excel. (Proses ini berulang kali menimpa sel yang sama.)

2. Deskripsi Kode.

Ini adalah akhir dari instruksi tentang cara menggunakan sistem, diikuti oleh penjelasan kode.

Detailnya bisa dilihat dalam kode, tetapi poin kuncinya adalah panggilan lebih lanjut ke getFolderOrFile dalam metode getFolderOrFile.

Dalam proses pencarian folder, proses selanjutnya diulangi dengan memanggil proses pencarian folder, yang merupakan mekanisme untuk mencari semua folder.

Dengan memanggil metodenya sendiri, ia berulang kali memanggil metodenya sendiri selama folder ditemukan, mencari semua folder.

3. ringkasan

Jika Anda memerlukan bantuan mengenai cara mendapatkan daftar file dan daftar folder, termasuk subfolder, dengan menggunakan VBA (makro Excel), silakan merujuk ke bagian ini.

Terima kasih telah menonton sampai akhir.