EXCEL VBA'DA KLASÖR OLUŞTURMA

 

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.

VBA Klasör Oluştur 1

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.

VBA Klasör Oluşturma 1-1

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 1-2

ÖNEMLİ NOKTALAR

  1. 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.
  2. 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.
  3. Hatalardan kaçınmak için, üzerinde işlem yapmaya çalışmadan önce klasörün var olup olmadığını mutlaka kontrol edin.
  4. Dosya sistemi işlemleri sırasında beklenmeyen sorunları yönetmek için VBA'da hata işlemeyi kullanın .
  5. “ 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 .

VBA 1'de Klasör Nasıl Oluşturulur

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

VBA'da Klasör Nasıl Oluşturulur 1-1

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.

VBA Klasör Oluşturma Örneği 1

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

VBA Klasör Oluşturma Örneği 1-1

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

VBA Klasör Oluşturma Örneği 1-2

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

VBA Klasör Oluşturma Örneği 1-3

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.

VBA Klasör Oluşturma Örneği 1-4

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

VBA Klasör Oluşturma Örneği 1-5

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.

VBA Klasör Oluşturma Örneği 1-6
VBA Klasör Oluşturma Örneği 1-7

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.

VBA Klasör Oluşturma Örneği 1-8
VBA Klasör Oluşturma Örneği 1-9

İş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:

VBA Klasör Oluşturma Örneği 2.jpg

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.

VBA Klasör Oluşturma Örneği 2-1

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.

VBA Klasör Oluşturma Örneği 2-2

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

VBA Klasör Oluşturma Örneği 2-3

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.

VBA Klasör Oluşturma Örneği 2-4

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

VBA Klasör Oluşturma Örneği 2-5

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.

VBA Klasör Oluşturma Örneği 2-6

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.

VBA Klasör Oluşturma Örneği 2-7

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

VBA Klasör Oluşturma Örneği 2-8

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.

VBA Klasör Oluşturma Örneği 2-9

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.

VBA Klasör Oluşturma Örneği 2-10

İş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.

VBA Klasör Oluşturma Örneği 3

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

VBA Klasör Oluşturma Örneği 3-1

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.

VBA Klasör Oluşturma Örneği 3-2

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

VBA Klasör Oluşturma Örneği 3-3

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.

VBA Klasör Oluşturma Örneği 3-4

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

VBA Klasör Oluşturma Örneği 3-5

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.

VBA Klasör Oluşturma Örneği 3-6

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.

VBA Klasör Oluşturma Örneği 3-7

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.

VBA Klasör Oluşturma Örneği 3-8
VBA Klasör Oluşturma Örneği 3-9

İş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

  1. VBA'da "MkDir" fonksiyonu kullanılarak, eğer mevcut bir klasör yoksa klasör oluşturma işlemi kolaylaştırılacaktır.
  2. 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.
  3. 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.
  4. 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.



Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...