Vba kullanarak bir metin dosyası nasıl oluşturulur ve yazılır?
VBA kodunu kullanarak metin oluşturmak için CreateTextFile yöntemini kullanmanız gerekir. Bu yöntem, oluşturmak istediğiniz konumu ayarlamanıza olanak tanır. Bu yöntem, konumdaki dosyanın üzerine yazmak isteyip istemediğinizi belirtebileceğiniz ve dosyanın Unicode olarak mı yoksa ASCII dosyası olarak mı oluşturulduğunu belirtebileceğiniz sözdizimine sahiptir.
VBA ile bir metin dosyası oluşturun
Aşağıdaki adımları kullanın:
- Öncelikle yöntemle kullanmak için bir FileSystemObject veya Folder nesnesi kullanmanız gerekir.
- Bundan sonra CreateTextFile yöntemini kullanarak başka bir nesne oluşturmanız gerekir.
- Bu kodda, klasörde aynı isimde bir dosya zaten varsa üzerine yazmak için TRUE’yu kullandık.
- Sonunda bu makroyu çalıştırdığınızda klasörde aşağıdaki gibi yeni bir metin dosyası oluşturun.
Sub create_text_file() 'object to use as folder Dim fld As Object Set fld = CreateObject("Scripting.FileSystemObject") 'using create text file method Dim myFile As Object Set myFile = fld.CreateTextFile("C:UsersDellDesktopmyFoldermyTextFile.txt", True) End Sub
CreateTextFile yönteminin sözdizimi
CreateTextFile (filename, [ overwrite, [ unicode ]])
- dosya adı: Oluşturmak istediğiniz dosyanın yolu ve adı.
- overwrite: dosyanın üzerine yazmak isteyip istemediğinizi tanımlamak için boolean (zaten mevcutsa) (isteğe bağlı).
- unicode: dosyanın Unicode olarak mı yoksa ASCII dosyası olarak mı oluşturulduğunu tanımlamak için boolean (isteğe bağlı).
VBA kullanarak bir metin dosyasına yazın
Bir metin dosyasına veri yazmak için iki ifadeyi kullanabilirsiniz:
- Write: Bu ifadeyle, değerler arasına virgül, dizelerin etrafına tırnak işaretleri ve tarihlerin etrafına # işaretinin yerleştirileceği bir metin dosyasına veri yazabilirsiniz.
- Yazdır: Bu ifadeyle, verileri bir metin dosyasına, Excel elektronik tablosundaki görünümün aynısıyla yazabilirsiniz.
Şimdi her iki ifade için örneklere bakacağız ve bir metin dosyasına yazmak için kodun tamamının nasıl yazılacağını anlayacağız. Ancak bundan önce kodu istediğiniz gibi yazabilmek için bazı terminolojileri anlamanız gerekir.
- Çıktı için: Bir metin dosyasına veri yazmak veya veriyi değiştirmek istediğinizde bu komutu kullanabilirsiniz.
- Giriş için: Bu komutla bir metinden veri çıkarabilirsiniz, ancak dosyada veri değiştiremez ve ekleyemezsiniz.
- Eklemek için: Bu komut, metin dosyasının altına yeni veriler eklemenize yardımcı olur.
- FreeFile: Kullanmak istediğiniz metin dosyası için kullanılmayan bir dosya numarası ayarlamak ve böylece ona başvurabilmek için bunu kullanabilirsiniz.
Şimdi bir metin dosyasına veri girmek için bir kod yazalım.
- Öncelikle kodda kullanılacak değişkenleri tanımlamanız gerekir.
- Bundan sonra metin dosyasına yazmanız gereken aralığı tanımlamanız gerekir. Ve aralıktaki hücre sayısını bir değişkene ayarlayarak döngü için bir sayaç olarak kullanın.
- Daha sonra, veri eklemek istediğiniz metin dosyasının adresini ayarlamanız gerekir.
- Buradan, dosya numarasını almak için “FreeFile” komutunu bir değişkene bildirmeniz gerekir.
- Artık dosyaya veri eklemeniz gerektiği için “Output” komutunu kullanarak oluşturmanız gerekiyor.
- Son olarak aralık değerlerini tek tek alıp dosyaya eklemek için “For Next” döngüsünü kullanmanız gerekiyor.
- Ayrıca metin dosyasına veri eklendikten sonra kapatmak için kapat komutunu kullanmanız gerekir.
- Sonuçta bu makroyu çalıştırdığınızda bahsettiğiniz yola kaydettiğiniz metin dosyasına A1:A13 aralığındaki verileri ekler.
Not: Sisteminizde bulunan yola göre metin dosyasının yolunu koddan değiştirdiğinizden emin olun.
Option Explicit Sub data_to_text_file() 'variables that you need to use in the code Dim TextFile As Integer Dim iCol As Integer Dim myRange As Range Dim cVal As Range Dim i As Integer Dim myFile As String 'define the range that you want to write Set myRange = Range("A1:A13") iCol = myRange.Count 'path to the text file (MAKE SURE TO CHANGE IT) myFile = "C:UsersDellDesktopNewFoldertextfile.txt" 'define FreeFile to the variable file number TextFile = FreeFile 'using append command to add text to the end of the file Open myFile For Output As TextFile 'loop to add data to the text file For i = 1 To iCol Print #TextFile, Cells(i, 1), Print #TextFile, Cells(i, 2) Next i 'close command to close the text file after adding data Close #TextFile End Sub