Excel'de vba kullanarak bir dosyayı nasıl silebilirim?
Bir Excel dosyasını bir klasörden silmek için iki farklı yöntem kullanabilirsiniz. İlk yöntem, silmek istediğiniz dosyaya referans vermek için dosya yolunu alan “Kill” ifadesidir. İkinci yöntem, bir dosyayı silmek için ilişkili bir yönteme sahip olan FileSystemObject nesnesidir.
Bu kodları kullanmak için geliştirici sekmesinden VBE’ye (Kod Düzenleyici) gidin.
VBA kullanarak bir dosyayı silin (Kill işlevi)
Öldürme özelliği, tek bir dosyayı veya birden çok dosyayı silmenize ve birden çok dosyayı silmek için joker karakterler kullanmanıza yardımcı olur. Aşağıda dosyayı masaüstündeki klasörden silen tek satırlık kod verilmiştir.
Kill "C:UsersDellDesktopSample Datafile-one.xlsx"
Silmeyi belirttiğiniz çalışma kitabı mevcut değilse bu kod size bir hata gösterecektir.
Yararlı bağlantılar: Makro çalıştırma – Makro kaydedici – Visual Basic Düzenleyici – Kişisel Makrolar El Kitabı
VBA kullanarak bir klasördeki tüm dosyaları silin
Ve bir klasördeki tüm dosyaları silmek istiyorsanız joker karakter kullanabilirsiniz.
Kill "C:UsersDellDesktopSample Data*.xl*"
FileSystemObject (Object) kullanarak bir dosyayı silin
Dosya sistemi nesnesi bilgisayarın dosya sistemine erişmenizi sağlar. Buradan daha fazlasını öğrenebilirsiniz ama şimdi bir dosyayı silmek için kod yazalım.
- Öncelikle kodda kullanılacak değişkenleri Binder ve FileSystemObject olarak bildirmeniz gerekiyor.
- Bundan sonra, FileSystemObject’i FSO değişkenine atayarak döndürmek için create object işlevini kullanın.
- Daha sonra silmek istediğiniz dosyaya gitmek için yolu “myFile” değişkenine atayın.
- Sonunda dosyayı silmek için “DeleteFile” yöntemini kullanın (buna bakın).
Tam kod
Sub vba_delete_file() Dim FSO Dim myFile As String Set FSO = CreateObject("Scripting.FileSystemObject") myFile = "C:UsersDellDesktopSample Datafile1.xlsx" FSO.DeleteFile myFile, True End Sub
Diyelim ki bir dosyayı (var olup olmadığını) kontrol edebilecek ve ardından silebilecek bir kod yazmanız gerekiyor. İşte ihtiyacınız olan kod.
Sub vba_delete_file() Dim FSO Dim myFile As String Set FSO = CreateObject("Scripting.FileSystemObject") myFile = "C:UsersDellDesktopSample Datafile1.xlsx" If FSO.FileExists(myFile) Then FSO.DeleteFile myFile, True MsgBox "Deleted" Else MsgBox "There's no workbook with this name." End If End Sub