VBA Create folder kullanarak, dosyaları mevcut bir klasöre yönlendirmek yerine gerektiğinde dinamik olarak bir klasör oluşturabilirsiniz. VBA Create Folder işlevini kullanarak, belirtilen bir dizinde dosyalarınız için bir klasör oluşturmak mümkündür.
Örneğin, dosyayı VBA tarafından yönetilen aylık bütçe elektronik tablosu oluşturduğunuz ayın adını taşıyan bir klasöre kaydetmek en iyisidir. Bu prosedür, VBA Klasör Oluşturma ile otomatikleştirilebilir ve klasör oluşturmanın devam eden işlemle gerçek zamanlı senkronizasyonda olmasını garanti eder. VBA kullanarak yeni bir klasör oluşturduğumuz bir örneğe bakalım.

Bu örnekte, C sürücüsünün kök dizininde “NewFolder” adlı yeni bir klasör oluşturmak için “MkDir” işlevini kullanan “CreateNewFolder” adlı bir alt rutinimiz var. “MkDir” işlevi, belirtilen yolda dizinler (klasörler) oluşturmak için kullanılan VBA'da yerleşik bir işlevdir.

Bu kod çalıştırıldığında, C sürücüsünün belirtilen dizininde “Sample” adında yeni bir klasör oluşturulacaktır.

- VBA Klasör Oluşturma, dosya sistemiyle etkileşim kurmanıza, klasör oluşturmanıza, silmenize ve yönetmenize olanak tanıyan işlevsellik sağlar.
- VBA klasör oluşturma, Excel içinde klasör yönetimi için güçlü yetenekler sunar ve kullanıcıların hücre değerleri veya önceden tanımlanmış listeler gibi belirli koşullara dayalı olarak iç içe yapılar da dahil olmak üzere klasörlerin oluşturulmasını otomatikleştirmesine olanak tanır.
- Hatalardan kaçınmak için, üzerinde işlem yapmaya çalışmadan önce klasörün var olup olmadığını mutlaka kontrol edin.
- Dosya sistemi işlemleri sırasında beklenmeyen sorunları yönetmek için VBA'da hata işlemeyi kullanın .
- “ FileSystemObject”, VBA'da klasör düzenleme için alternatif bir yaklaşım sunarak “ MkDir ” gibi yerleşik işlevlerden daha fazla özellik sağlar .
VBA'da Klasör Nasıl Oluşturulur?
VBA'da klasör oluşturmak için şu adımları izleyin:
Adım 1: Excel'i açın ve VBA düzenleyicisini açmak için ALT + F11 tuşlarına basın .

Adım 2 : Menüde “Ekle”ye tıklayıp “Modül”ü seçerek yeni bir modül ekleyin.

Adım 3 : Modülün içerisinde “MkDir” fonksiyonunu kullanarak klasörü oluşturmak için bir alt rutin veya fonksiyon yazın.
Örneğin:
Sub CreateFolder()
MkDir “C:\YeniKlasör”
End Sub
Adım 4: Artık Çalıştır'a tıklayarak klasörü oluşturmak için VBA kodunu çalıştırabilirsiniz .
Örnekler
VBA kullanarak klasör oluşturmanın nasıl uygulanacağına dair bazı örneklere bakalım.
Örnek 1 – Bir Klasörü Silin
Diyelim ki silmek istediğimiz “Delete” adında bir klasörümüz var, bunu yapmak için VBA Create Folder fonksiyonunu nasıl kullanacağımızı göreceğiz.

Adım 1: DeleteFolder adında bir alt rutin oluşturuyoruz.

Adım 2: Burada, bir string olarak folderPath değişkenini bildireceğiz. Bu değişken silinecek klasörün yolunu saklayacaktır.

Adım 3: Daha sonra silinecek klasörün yolunu folderPath değişkenine atayacağız.

Adım 4: Burada, belirtilen klasörün Dir fonksiyonunu kullanarak var olup olmadığını kontrol ediyoruz. “vbDirectory” sabiti bir dizin olup olmadığını kontrol ettiğimizi gösterir. Klasör varsa, koşul doğrudur.

Adım 5: Bu adımda, RmDir fonksiyonunu kullanarak folderPath değişkeni ile belirtilen klasörü sileceğiz.

Adım 6: Daha sonra, klasör varsa klasörün başarıyla silinip silinmediğini belirten bir mesaj görüntülemek için veya klasör yoksa klasörün var olmadığını belirtmek için mesaj kutusu fonksiyonunu kullanacağız.


Adım 7: Son olarak makroyu kaydedin ve çalıştır'a tıklayın. Bu kodu çalıştırdığınızda ve belirtilen klasör mevcut olduğunda silinir ve silindiğini onaylayan bir mesaj kutusu alırsınız. Klasör mevcut değilse, mevcut olmadığını belirten bir mesaj kutusu alırsınız.


İşte tam kod:
Sub DeleteFolder()
Dim folderPath As String
folderPath = “C:\Path\To\Folder”
If Dir(folderPath, vbDirectory) <> “” Then
RmDir folderPath
MsgBox “Klasör başarıyla silindi!”
Else
MsgBox “Klasör mevcut değil!”
End If
End Sub
Örnek 2 – Bir Klasörün Var Olup Olmadığını Kontrol Etme
Diyelim ki "Folder" adında bir klasörünüz var ve var olup olmadığını kontrol etmek istiyorsunuz, VBA klasör oluşturma işlevini kullanabilirsiniz. Aşağıdaki adımlarda görelim:

Adım 1: Yeni modülde, aşağıdaki gibi yeni bir fonksiyon oluşturarak başlıyoruz:
“Fonksiyon FolderExistsFunction(folderPath As String) Boolean Olarak.”
Yukarıdaki satır “FolderExistsFunction” adlı bir fonksiyonu tanımlar . String türünden “folderPath” parametresini alır ve bir Boolean değeri döndürür.

Adım 2: Daha sonra, koşulun sonucunu (Dir(folderPath, vbDirectory) <> “”) FolderExists fonksiyonuna atıyoruz.
Belirtilen klasörün var olup olmadığını vbDirectory parametresiyle Dir fonksiyonunu kullanarak kontrol eder.
Sonuç boş bir dize değilse klasörün var olduğu anlamına gelir ve fonksiyon True değerini döndürür; aksi takdirde False değerini döndürür.

Adım 3 : Şimdi, fonksiyon oluşturulduktan sonra, “CheckFolderExistence” adında yeni bir alt rutin tanımlayarak başlayacağız.

Adım 4: Ardından, kontrol edilecek klasörün yolunu depolamak için “folderPath” ve klasörün var olup olmadığını depolamak için “folderExists” olmak üzere iki değişken tanımlayacağız.

Adım 5: Şimdi kontrol edilecek klasörün yolunu folderPath değişkenine atıyoruz.

Adım 6: Bu adımda belirtilen klasörün var olup olmadığını kontrol etmek için FolderExists fonksiyonunu çağıracağız ve sonucu folderExists değişkenine atayacağız.

Adım 7: Şimdi, folderExists değişkeninin değerini kontrol edeceğiz. True ise, kodun bir sonraki satırını çalıştıracağız.

Adım 8: Yukarıdaki koşul True ise klasörün var olduğunu belirten bir mesaj göstereceğiz.

Adım 9: Yukarıdaki koşul True değilse, mesaj kutusu fonksiyonunu kullanarak klasörün mevcut olmadığını belirten bir mesaj göstereceğiz.

Adım 10: Şimdi makroyu kaydedin ve çalıştır'a tıklayın.
Bu kod çalıştırıldığında belirtilen klasörün var olup olmadığı kontrol edilir ve var olup olmadığına dair bir mesaj görüntülenir.

İşte tam kod:
Function FolderExistsFunction(folderPath As String) As Boolean
FolderExistsFunction = (Dir(folderPath, vbDirectory) <> “”)
End Function
Sub CheckFolderExistence()
Dim folderPath As String
Dim folderExists As Boolean
folderPath = “C:\Users\Vikram\Desktop\MS Excel\Folder”
folderExists = FolderExistsFunction(folderPath)
If folderExists Then
MsgBox “The folder exists.”
Else
MsgBox “The folder does not exist.”
End If
Örnek 3 – Bir Klasörün Adını Değiştirme
Diyelim ki “Rename” adında bir klasörünüz var ve bu klasörün ismini “NewName” olarak değiştirmek istiyorsunuz, bunu VBA Create Folder fonksiyonunu kullanarak nasıl yapabileceğinizi göreceğiz.

Adım 1: Yeni modülde, “RenameFolder” adlı bir alt rutin oluşturarak başlayın.

Adım 2: Sonra, oldPath ve newPath adlı iki değişkeni dizeler olarak bildirin. Bu değişkenler sırasıyla eski ve yeni klasörlerin yollarını depolayacaktır.

Adım 3 : Şimdi eski ve yeni klasörlerin yollarını aşağıdaki gibi ilgili değişkenlere atayacağız.

Adım 4: Sonra, Dir fonksiyonunu kullanarak eski klasörün var olup olmadığını kontrol edeceğiz . Eğer varsa, koşul doğrudur.

Adım 5: Yukarıdaki koşul doğruysa, “Name” ifadesi kullanılarak eski klasör yeni klasöre yeniden adlandırılacaktır.

Adım 6: Burada, eski klasör mevcutsa klasörün başarıyla yeniden adlandırıldığını belirten bir mesaj görüntülemek için mesaj kutusu işlevini kullanacağız.

Adım 7 : Eğer klasör mevcut değilse, eski klasörün mevcut olmadığını belirten bir mesaj görüntülemek için başka bir mesaj kutusu fonksiyonu kullanacağız.

Adım 8: Makroyu kaydedin ve çalıştır'a tıklayın. Bu kodu çalıştırırsanız ve eski klasör mevcutsa, yeni klasöre yeniden adlandırılacak ve yeniden adlandırılmasını onaylayan bir mesaj kutusu alacaksınız.
Ancak eski klasör mevcut değilse, mevcut olmadığını belirten bir mesaj kutusu alacaksınız.


İşte tam kod:
Sub RenameFolder()
Dim oldPath As String, newPath As String
oldPath = “C:\Users\Vikram\Desktop\MS Excel\Rename”
newPath = “C:\Users\Vikram\Desktop\MS Excel\NewName”
If Dir(oldPath, vbDirectory) <> “” Then
Name oldPath As newPath
MsgBox “Folder renamed successfully!”
Else
MsgBox “Old folder does not exist!”
End If
End Sub
Dikkat Edilmesi Gereken Önemli Noktalar
- VBA'da "MkDir" fonksiyonu kullanılarak, eğer mevcut bir klasör yoksa klasör oluşturma işlemi kolaylaştırılacaktır.
- VBA hücre değerinden klasör oluşturma, istenen klasör adının çıkarılmasını ve ardından klasörü oluşturmak için “MkDir” kullanılmasını sağlar.
- VBA klasör ve alt klasör oluşturma işlevi, MkDir işlevine istenen alt klasör adlarıyla birlikte ana klasör yolunu belirterek iç içe dizin yapıları oluşturulmasını sağlar.
- VBA'nın Excel listesinden klasör oluşturma işlevi, klasör adları listesinde döngü oluşturmayı, her birini çıkarmayı ve Excel çalışma sayfasında listelenen adlara göre klasörler oluşturmak için "MkDir" işlevini kullanmayı gerektirir.
