Microsoft Excel'de VBA kullanarak bir klasördeki tüm dosyaların ayrıntılarını listeleyin

Anonim

Bu yazımızda bir klasör içerisindeki tüm dosyaların detaylarını toplamak için bir makro oluşturacağız.

Makroyu çalıştırmadan önce, metin kutusunda klasörün yolunu belirtmemiz gerekiyor.

Makroyu çalıştırırken, klasör içindeki tüm dosyaların Dosya adını, Dosya yolunu, Dosya boyutunu, Oluşturma tarihini ve son değiştirilme tarihini döndürür.

Mantıksal açıklama

Bu yazımızda “ListFilesInFolder” ve “TestListFilesInFolder” olmak üzere iki makro oluşturduk.

“ListFilesInFolder” makrosu, klasör içindeki tüm dosyalarla ilgili ayrıntıları görüntüler.

“TestListFilesInFolder” makrosu, başlığı belirtmek ve “ListFilesInFolder” makrosunu çağırmak için kullanılır.

Kod açıklaması

FSO'yu ayarla = CreateObject("Scripting.FileSystemObject")

Yukarıdaki kod, dosya sistemi nesnesinin yeni bir nesnesini oluşturmak için kullanılır.

SourceFolder = FSO.GetFolder(SourceFolderName) olarak ayarlayın

Yukarıdaki kod, yol tarafından belirtilen klasörün bir nesnesini oluşturmak için kullanılır.

Cells(r, 1).Formula = DosyaItem.Adı

Cells(r, 2).Formula = FileItem.Path

Cells(r, 3).Formula = FileItem.Size

Cells(r, 4).Formula = FileItem.DateCreated

Cells(r, 5).Formula = FileItem.DateLastModified

Yukarıdaki kod, dosyaların ayrıntılarını çıkarmak için kullanılır.

SourceFolder.SubFolders İçindeki Her Alt Klasör İçin

'Alt klasörler için aynı prosedürü çağırmak

ListFilesInFolder SubFolder.Path, True

Sonraki Alt Klasör

Yukarıdaki kod, alt klasörlerdeki tüm dosyaların ayrıntılarını çıkarmak için kullanılır.

Sütunlar("A:E").Seçin

Selection.ClearContents

Yukarıdaki kod, A sütunundan E'ye kadar olan içeriği silmek için kullanılır.

Lütfen kod için aşağıdan takip edin

 Seçenek Explicit Sub ListFilesInFolder(ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean) 'Değişkenleri bildirme Dim FSO As Object Dim SourceFolder As Object Dim SubFolder As Object Dim FileItem As Object Dim r As Long 'Creating object of FileSystemObject .FileSystemObject") SourceFolder = FSO.GetFolder(SourceFolderName) r = Range("A65536").End(xlUp).Row + 1 SourceFolder'daki Her FileItem için ayarlayın.Files 'Dosya özelliklerini görüntüle Cells(r, 1).Formula = FileItem.Name Cells(r, 2).Formula = FileItem.Path Cells(r, 3).Formula = FileItem.Size Cells(r, 4).Formula = FileItem.DateCreated Cells(r, 5).Formula = FileItem. DateLastModified r = r + 1 Next FileItem 'IncludeSubfolders ise Sonra SourceFolder.SubFolders'daki Her Alt Klasör İçin Alt klasörlerdeki dosyaları alma 'Alt klasörler için aynı prosedürü çağırma ListFilesInFolder SubFolder.Path, True Sonraki AltKlasör FileItem Ayarlanırsa Sonu = Hiçbir Şey Ayarlanmadı SourceFolder = Hiçbir Şey Ayarlanmadı FSO = Hiçbir şey ActiveWorkbook.Saved = Doğru End Sub Sub TestListFilesInFolder() 'Dim FolderPath değişkenini Dize Olarak Bildirme' Ekran güncellemelerini devre dışı bırakma Application.ScreenUpdating = False 'Metin kutusundan klasör yolunu alma FolderPath = Sheet1.TextBox1.Value ActiveSheet.Activate 'İçeriği A:E Sütunlarından temizleme ("A:E").Seçimi Seçin.ClearContents 'Üstbilgi ekleme Range("A14").Formül = "Dosya Adı:" Aralık("B14").Formül = "Yol:" Aralık("C14").Formül = "Dosya Boyutu:" Range("D14").Formula = "Oluşturma Tarihi:" Range("E14").Formula = "Son Değiştirilme Tarihi:" 'Başlıkların Biçimlendirilmesi Range("A14:E14").Font .Bold = True 'ListFilesInFolder makrosunu çağırıyor ListFilesInFolder FolderPath, True 'Sütunların boyutunu otomatik olarak ayarlıyor Columns("A:E").Select Selection.Columns.AutoFit Range("A1").End Sub öğesini seçin 

Bu blogu beğendiyseniz, Facebook'ta arkadaşlarınızla paylaşın. Ayrıca bizi Twitter ve Facebook'ta da takip edebilirsiniz.

Sizden haber almayı çok isteriz, işimizi nasıl geliştirebileceğimizi ve sizin için nasıl daha iyi hale getirebileceğimizi bize bildirin. E-posta sitesinde bize yazın