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.