VBA Metin Dosyası Yazma | VBA Kodunu Kullanarak Excel Verilerini Metin Dosyalarına Yazın

Excel VBA Metin Dosyası Yaz

VBA'da bir metin dosyasını açabilir veya okuyabilir veya yazabiliriz, bir metin dosyası yazmak, bir excel sayfasında sahip olduğumuz veriler anlamına gelir ve bunu bir metin dosyasına veya bir not defteri dosyasına istiyoruz, yapılacak iki yöntem var, biri VBA'nın Dosya Sistemi nesne özelliğini ve diğerini kullanmak, VBA'daki Aç ve yaz yöntemini kullanmaktır.

Kurumsal şirketlerin çoğunda, rapor tamamlandıktan sonra raporu veri tabanına yüklemeye çalışırlar. Veritabanına yüklemek için veritabanını güncellemek için "Metin Dosyaları" formatını kullanırlar. Genellikle verileri excel'den kopyalar ve bir metin dosyasına yapıştırırız. Metin dosyalarına güvenmemizin nedeni, hafif ve daha basit yolları nedeniyle bunlarla çalışmak çok kolaydır. VBA kodlamasını kullanarak verileri excel dosyasından metin dosyasına kopyalama görevini otomatik hale getirebiliriz. Bu yazıda, VBA Kodunu kullanarak excel dosyasından metin dosyasına nasıl veri kopyalayacağınızı veya yazacağınızı göstereceğiz.

VBA Kullanarak Metin Dosyalarına Veri Nasıl Yazılır?

Excel'den metne veri yazmak karmaşık bir kodlamadır ve çok iyi VBA kodlama bilgisi gerektirir. Verileri excel'den bir metin dosyasına kopyalamak için VBA kodunu yazmak için aşağıdaki adımları izleyin.

Size kodu yazmanın yolunu göstermeden önce, açık bir ifade kullanarak metin dosyasını nasıl açacağımı açıklamama izin verin.

Açık Metin Dosyası Sözdizimi

[Dosya Yolu] Aç, [Mod] İçin, [Dosya Numarası] Olarak

Dosya Yolu: Bilgisayarda açmaya çalıştığımız dosyanın yolu.

Mod: Mod, metin dosyalarının açılması üzerinde sahip olabileceğimiz kontroldür. Metin dosyası üzerinde üç tür kontrolümüz olabilir.

  • Giriş Modu: Bu , açılan metin dosyasının " Salt okunur " denetimini önerir . "Giriş Modu" kullanırsak dosya ile hiçbir şey yapamayız. Metin dosyasının içeriğini okuyabiliriz.
  • Çıktı Modu: Bu seçeneği kullanarak içeriği üzerine yazabiliriz. Burada hatırlamamız gereken nokta, mevcut tüm verilerin üzerine yazılacağıdır. Bu nedenle, eski verilerin olası kaybına karşı dikkatli olmalıyız.
  • Ekleme Modu: Bu mod, Çıktı Modunun tamamen tersidir . Bu yöntemi kullanarak aslında yeni verileri dosyadaki mevcut verilerin sonuna yazabiliriz.

Dosya Numarası: Bu, açılan tüm metin dosyalarının metin dosyası numarasını sayacaktır. Bu, açık dosya numaralarını 1'den 511'e kadar tam sayı değerlerinde tanıyacaktır. Dosya numarasının atanması zor olanıdır ve birçok kafa karışıklığına yol açar. Bunun için ücretsiz Dosya işlevini kullanabiliriz.

Free File , açılan dosyalar için benzersiz numarayı döndürür. Bu şekilde, benzersiz dosya numarasını herhangi bir tür yinelenen değer olmadan atayabiliriz.

Bu VBA Yazma Metin Dosyası Şablonunu buradan indirebilirsiniz - VBA Metin Yazma Dosyası Şablonu

Örnek 1

Yeni bir metin dosyası oluşturmak için kodu yazmak için aşağıdaki adımları izleyin.

Bilgisayarınızın depolama alanında "Hello.txt" adlı bir metin dosyanız olduğunu varsayalım ve bu dosyadaki verileri nasıl yazacağınızı size göstereceğiz.

Adım 1: Değişkeni Bildirin

Dosya yolunu Dize olarak tutacak değişkeni bildirin.

Kod:

 Sub TextFile_Example1 () Dim Path As String End Sub 

Adım 2: Dosya Numarasını Belirleyin

Hangi dosya numarasına atıfta bulunduğumuzu belirlemek için, bir değişkeni daha Tamsayı olarak tanımlamaya çalışıyoruz.

Kod:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer End Sub 

3. Adım: Dosya Yolu Atayın

Şimdi Yol değişkeni için, dosya yolunu bir dosya adı ile atayın.

Kod:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA Dosyası \ Hello.txt" 'Yolu gereksiniminize göre değiştirin End Sub 

4. Adım: Ücretsiz Dosya İşlevini Atayın

Şimdi Dosya Numarası değişkeni için, benzersiz dosya numarasını saklamak üzere "Serbest Dosya" işlevini atayın.

Kod:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'Yolu gereksiniminize göre değiştirin FileNumber = FreeFile End Sub 

Adım 5: Metin Dosyasını Açın

Şimdi onunla çalışmak için metin dosyasını açmamız gerekiyor. Açıkladığım gibi, metin dosyasını açmak için OPEN ifadesini kullanmamız gerekiyor.

Adım 6: Yazdır / Yaz Yöntemini Kullanın

Dosya açıldıktan sonra içine bir şeyler yazmamız gerekir. Metin dosyasına yazmak için "Yaz" veya "Yazdır" yöntemini kullanmamız gerekir.

Kod:

 Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Excel Files \ VBA File \ Hello.txt" 'İsteğinize göre yolu değiştirin FileNumber = FreeFile Open Path For Output As FileNumber Yazdır #FileNumber, " "Yazdırma #DosyaNumarası" na, "# Dosya Numarasını Yazdır", "VBA" Son Altına Hoş Geldiniz 

First, we need to mention the file number (here we have assigned the file through the “FileNumber” variable), then we need to add the content we want to add to a text file.

Step 7: Save and Close Text File

Once the content is written in a text file, we need to save and close the text file.

Code:

 Sub TextFile_Example1() Dim Path As String Dim FileNumber As Integer Path = "D:\Excel Files\VBA File\Hello.txt" 'Change the path as per your requirement FileNumber = FreeFile Open Path For Output As FileNumber Print #FileNumber, "Welcome" Print #FileNumber, "to" Print #FileNumber, "VBA" Close FileNumber End Sub 

Now, run the code this manually or through shortcut excel key F5, it will write the mentioned content in the mentioned text file.

Example #2

Now we will see how to write the data of excel sheet to a text file.

For this example, I have created simple data in excel like below.

Step 1: With the continuation of the old example define two more variables as Integer to find the last row and last column.

Code:

 Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer End Sub 

Step 2: Find the last used row and column in the worksheet.

Step 3: Now assign the file path and file number.

Step 4: Now use the OPEN statement to open the text file.

Step 5: We need to loop through rows and columns, so declare two more variables as Integer.

Step 6: Now open Loop to loop through the row (For next loop in VBA)

Step 7: Now to loop through columns open one more loop inside the existing loop.

Step 8: We need to write the same line of data until it reaches the last column. So for this apply IF statement in VBA.

Step 9: Now save and close the text file.

This code will write the details to a text file, but to open the text file after written we need to use the below code.

Code:

 Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer Dim k As Integer Dim i As Integer LR = Worksheets("Text").Cells(Rows.Count, 1).End(xlUp).Row LC = Worksheets("Text").Cells(1, Columns.Count).End(xlToLeft).Column Path = "D:\Excel Files\VBA File\Hello.txt" FileNumber = FreeFile Open Path For Output As FileNumber For k = 1 To LR For i = 1 To LC If i  LC Then Print #FileNumber, Cells(i, k), Else Print #FileNumber, Cells(i, k) End If Next i Next k Close FileNumber Shell "notepad.exe " & Path, vbNormalFocus End Sub 

So, run the code using the F5 key or manually then, it will copy the data like the below.