VBA'da VBA kodlarını kullanarak bilgisayarda bulunan herhangi bir dosyayı silebiliriz ve herhangi bir dosyayı silmek için kullanılan kod Kill komutu olarak bilinir, herhangi bir dosyayı silme yöntemi ilk önce, dosyanın yolunu sağlarız, yani nerede dosya bilgisayarda bulunur ve ardından dosyayı silmek için Kill komutunu kullanırız.
VBA Kodu Kullanılarak Dosyalar Nasıl Silinir?
VBA başlangıçta zor olan bir şey ama VBA ile daha fazla vakit geçirdikçe onu benim gibi sevmeye başlayacaksınız. Bir bilgisayarın başka bir klasöründeki dosyaları açabiliriz, onlarla çalışabiliriz ve artık VBA kodlamasını kullanarak dosyaları da silebiliriz. Bu makalede, belirli klasördeki VBA Kodunu kullanarak dosyaları nasıl silebileceğinizi göstereceğiz.
Büyük projelerle çalışırken, sürecimizi desteklemek için genellikle çok sayıda ara dosya oluştururuz. Tüm çalışmalar tamamlandıktan sonra, gelecekte herhangi bir karışıklığı önlemek için bu dosyaları silmemiz gerekir.
Ve bir senaryo, genellikle bir e-posta aldığımızda, normal işimiz için ekleri kaydettiğimiz veya sadece o zamana ait raporu görmek istediğimiz ve daha sonra bu dosyaları silmemiz gerekebileceğidir.
Bu dosyaların manuel olarak silinmesi zaman alacaktır veya kaydetmeyi unutabiliriz ve bilgisayarımızdaki alanı kaplar. Bu dosyaları basit VBA kodlarıyla nasıl sileceğinizi göstereceğiz.
VBA Kodunu Kullanarak Bir Klasördeki Dosyaları Silmek İçin Öldürme Yöntemi
Basit bir KILL işlevi klasörü, belirli bir dosyayı, tüm excel dosyalarını vb. Siler. VBA'daki KILL yönteminin sözdizimine bir göz atın. Kill yöntemi salt okunur dosyaları silemez.
Yol Adı: yol adı, dosyaları silmek için bilgisayardaki klasör yolundan başka bir şey değildir.
Not: Yol adı, joker karakterleri de içerebilir. Excel'de joker karakter olarak yıldız (*) ve soru işaretleri (?) Kullanabiliriz.
Yıldız işareti (*), sıfır kabul edilse bile herhangi bir uzunluktaki herhangi bir dizeyle eşleşmek için kullanışlıdır.
Soru işareti (?) Yalnızca tek bir karakterle eşleşmek için kullanışlıdır.
Belirli Dosya Adını Silin
Örneğin aşağıdaki gibi bir klasörüm var.
Bu klasörde “Dosya 5” isimli dosyayı silmek istiyorum. Kodu KILL işleviyle başlatın.
Kod:
Sub Delete_Files () Kill (PathName) End Sub
Klasör yolunu kopyalayıp yapıştırın.
Ve çift tırnak içine yapıştırın.
"E: \ Excel Dosyaları" nı sonlandırın
Şimdi bir tane daha geriye eğik çizgi (\) koyun ve dosya adını uzantı ile girin.
"E: \ Excel Files \ File5.xlsx" i sonlandırın
Bu kodu çalıştırdığınızda, belirtilen klasör yolunda “Dosya 5.xlsx” adlı dosyayı silecektir.
Tüm Excel Dosyalarını Sil
Klasördeki tüm excel dosyalarını VBA kullanarak silmek için KILL fonksiyonu ile joker karakterler kullanmamız gerekir. Klasör yolundan bahsettikten sonra dosyadan "* .xl *" olarak bahsetmemiz gerekir.
Kod:
"E: \ Excel Files \ *. Xl *" dosyasını sonlandırın
Bu kodu çalıştırdığınızda, bu klasördeki tüm excel dosyalarını silecektir.
Tek bir excel dosyasını ve tüm excel dosyalarını nasıl silebileceğimizi gördük. Ancak klasördeki tüm dosyaları silmek istersek onu nasıl silebiliriz. Excel VBA kullandığımız için diğer dosyaları silebilir mi?
Cevap Evet!!! Klasördeki tüm dosyaları silmek için aşağıdaki kodu kullanın.
Kod:
"E: \ Excel Files \ *. *" I sonlandırın
Yalnızca Klasörün Tamamını Sil
Klasörün tamamını silmek mümkün müdür?
Evet mümkün.
Bunu yapmak için ilk yapmamız gereken şey, klasördeki tüm dosyaları KILL fonksiyonunu kullanarak silmemiz ve ardından klasörü silmek için RmDir adında bir fonksiyon daha kullanmamız gerekiyor .
Kod:
RmDir "E: \ Excel Dosyaları \"
Burada RmDir sadece boş klasörü siler, eğer orada herhangi bir alt klasör varsa, onları silemez.
Klasördeki Tüm Metin Dosyalarını Silin
Klasördeki tüm metin dosyalarını silmek için aşağıdaki kodu kullanın.
Kod:
"E: \ Excel Dosyaları \ *. Txt" dosyasını sonlandırın
Salt Okunur Dosyaları Sil
Dediğim gibi KILL işlevi klasördeki “Salt Okunur” dosyaları silemiyor. Böyle bir durumda, diğer iki işlevi "Dir $" ve "SetAttr" işlevlerini kullanmamız gerekir. Aşağıda salt okunur dosyaları da silmek için örnek kod verilmiştir.
Kod:
Sub Delete_Files1() Dim DeleteFile As String DeleteFile = " E:\Excel Files\" If Len(Dir$(DeleteFile)) > 0 Then SetAttr DeleteFile, vbNormal Kill DeleteFile End If End Sub
You can download this VBA Delete File Excel Template from here – VBA Delete File Excel Template