वीबीए: किसी फ़ोल्डर में फ़ाइलों को कैसे सूचीबद्ध करें
किसी फ़ोल्डर में फ़ाइलों को सूचीबद्ध करने के लिए आप VBA में निम्नलिखित विधियों का उपयोग कर सकते हैं:
विधि 1: फ़ोल्डर में सभी फ़ाइलों को सूचीबद्ध करें
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
Cells(i + 1, 1) = objFile.Name
i = i + 1
Next objFile
End Sub
विधि 2: फ़ोल्डर में केवल .xlsx फ़ाइलें सूचीबद्ध करें
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
If Right(objFile.Name, 4) = "xlsx" Then
Cells(i + 1, 1) = objFile.Name
i = i + 1
End If
Next objFile
End Sub
निम्नलिखित उदाहरण दिखाते हैं कि अभ्यास में प्रत्येक विधि का उपयोग उस फ़ोल्डर के साथ कैसे किया जाए जिसमें निम्न फ़ाइल पथ है:
- C:\Users\bob\Documents\current_data
फ़ोल्डर में दो .xlsx फ़ाइलें और तीन .csv फ़ाइलें हैं:
उदाहरण 1: फ़ोल्डर में सभी फ़ाइलों की सूची बनाएं
हम फ़ोल्डर में सभी फ़ाइलों को सूचीबद्ध करने के लिए निम्नलिखित मैक्रो बना सकते हैं:
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
Cells(i + 1, 1) = objFile.Name
i = i + 1
Next objFile
End Sub
जब हम इस मैक्रो को चलाते हैं, तो हमें निम्नलिखित आउटपुट प्राप्त होता है:
हम देख सकते हैं कि फ़ोल्डर में सभी फ़ाइलों के नाम (उनके एक्सटेंशन की परवाह किए बिना) अब हमारी एक्सेल शीट के कॉलम ए में सूचीबद्ध हैं।
उदाहरण 2: फ़ोल्डर में केवल .xlsx फ़ाइलें सूचीबद्ध करें
हम केवल उन फ़ाइलों को सूचीबद्ध करने के लिए निम्नलिखित मैक्रो बना सकते हैं जिनमें फ़ोल्डर में .xlsx एक्सटेंशन है:
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
If Right(objFile.Name, 4) = "xlsx" Then
Cells(i + 1, 1) = objFile.Name
i = i + 1
End If
Next objFile
End Sub
जब हम इस मैक्रो को चलाते हैं, तो हमें निम्नलिखित आउटपुट प्राप्त होता है:
हम देख सकते हैं कि फ़ोल्डर में केवल .xlsx एक्सटेंशन वाली फ़ाइलों के नाम अब हमारी एक्सेल शीट के कॉलम ए में सूचीबद्ध हैं।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि वीबीए में अन्य सामान्य कार्य कैसे करें:
VBA का उपयोग करके फ़ोल्डर्स कैसे बनाएं
VBA का उपयोग करके फ़ोल्डर्स को कैसे हटाएं
VBA का उपयोग करके किसी फ़ाइल का नाम कैसे बदलें
VBA का उपयोग करके कैसे जांचें कि फ़ाइल मौजूद है या नहीं