VBA - Metin Dosyaları
Ayrıca Excel Dosyasını okuyabilir ve hücrenin içeriğini VBA kullanarak bir Metin Dosyasına yazabilirsiniz. VBA, kullanıcıların iki yöntem kullanarak metin dosyalarıyla çalışmasına izin verir -
- Dosya Sistemi Nesnesi
- Yazma Komutu kullanarak
Dosya Sistemi Nesnesi (FSO)
Adından da anlaşılacağı gibi, FSO'lar geliştiricilerin sürücüler, klasörler ve dosyalarla çalışmasına yardımcı olur. Bu bölümde, FSO'nun nasıl kullanılacağını tartışacağız.
Sr.No. | Nesne Türü ve Açıklaması |
---|---|
1 | Drive Sürücü bir Nesnedir. Sisteme bağlı bir sürücü hakkında bilgi toplamanıza izin veren yöntemler ve özellikler içerir. |
2 | Drives Sürücüler bir Koleksiyondur. Fiziksel veya mantıksal olarak sisteme bağlı sürücülerin bir listesini sağlar. |
3 | File Dosya bir Nesnedir. Geliştiricilerin bir dosyayı oluşturmasına, silmesine veya taşımasına olanak tanıyan yöntemler ve özellikler içerir. |
4 | Files Dosyalar bir Koleksiyondur. Bir klasörde bulunan tüm dosyaların bir listesini sağlar. |
5 | Folder Klasör bir Nesnedir. Geliştiricilerin klasörleri oluşturmasına, silmesine veya taşımasına izin veren yöntemler ve özellikler sağlar. |
6 | Folders Klasörler bir Koleksiyondur. Bir klasör içindeki tüm klasörlerin bir listesini sağlar. |
7 | TextStream TextStream bir Nesnedir. Geliştiricilerin metin dosyalarını okumasını ve yazmasını sağlar. |
Sürüş
Drivebelirli bir disk sürücüsünün veya ağ paylaşımının özelliklerine erişim sağlayan bir nesnedir. Aşağıdaki özellikler tarafından desteklenmektedirDrive nesne -
- AvailableSpace
- DriveLetter
- DriveType
- FileSystem
- FreeSpace
- IsReady
- Path
- RootFolder
- SerialNumber
- ShareName
- TotalSize
- VolumeName
Misal
Step 1- FSO kullanarak komut dosyası oluşturmaya geçmeden önce, Microsoft Scripting Runtime'ı etkinleştirmeliyiz. Aynısını yapmak için, aşağıdaki ekran görüntüsünde gösterildiği gibi Araçlar → Referanslar'a gidin.
Step 2 - "Microsoft Scripting RunTime" ekleyin ve Tamam'ı tıklayın.
Step 3 - Bir Metin Dosyasına yazmak istediğiniz Verileri ekleyin ve bir Komut Düğmesi ekleyin.
Step 4 - Şimdi senaryo zamanı.
Private Sub fn_write_to_text_Click()
Dim FilePath As String
Dim CellData As String
Dim LastCol As Long
Dim LastRow As Long
Dim fso As FileSystemObject
Set fso = New FileSystemObject
Dim stream As TextStream
LastCol = ActiveSheet.UsedRange.Columns.Count
LastRow = ActiveSheet.UsedRange.Rows.Count
' Create a TextStream.
Set stream = fso.OpenTextFile("D:\Try\Support.log", ForWriting, True)
CellData = ""
For i = 1 To LastRow
For j = 1 To LastCol
CellData = Trim(ActiveCell(i, j).Value)
stream.WriteLine "The Value at location (" & i & "," & j & ")" & CellData
Next j
Next i
stream.Close
MsgBox ("Job Done")
End Sub
Çıktı
Komut dosyasını çalıştırırken, imleci çalışma sayfasının ilk hücresine yerleştirdiğinizden emin olun. Support.log dosyası, "D: \ Try" altındaki aşağıdaki ekran görüntüsünde gösterildiği gibi oluşturulur.
Dosyanın içeriği aşağıdaki ekran görüntüsünde gösterilmektedir.
Komut Yaz
FSO'dan farklı olarak, herhangi bir referans eklememiz GEREKMEZ, ancak sürücüler, dosyalar ve klasörlerle çalışamayacağız. Sadece akışı metin dosyasına ekleyebileceğiz.
Misal
Private Sub fn_write_to_text_Click()
Dim FilePath As String
Dim CellData As String
Dim LastCol As Long
Dim LastRow As Long
LastCol = ActiveSheet.UsedRange.Columns.Count
LastRow = ActiveSheet.UsedRange.Rows.Count
FilePath = "D:\Try\write.txt"
Open FilePath For Output As #2
CellData = ""
For i = 1 To LastRow
For j = 1 To LastCol
CellData = "The Value at location (" & i & "," & j & ")" & Trim(ActiveCell(i, j).Value)
Write #2, CellData
Next j
Next i
Close #2
MsgBox ("Job Done")
End Sub
Çıktı
Komut dosyası çalıştırıldığında, aşağıdaki ekran görüntüsünde gösterildiği gibi "D: \ Try" konumunda "write.txt" dosyası oluşturulur.
Dosyanın içeriği aşağıdaki ekran görüntüsünde gösterilmektedir.