Özel Klasör Yollarını ve İsimlerini Listele - Microsoft Excel


Windows özel klasörlerinin (belgelerim, masaüstü gibi) yollarını ve isimlerini listeleyen alternatif makro kodudur.

Kod
Öncelikle işi yapan kodu en temel şekliyle görelim.


Sub OzelKlasorYollariniVeIsimleriniListeleTemelKod()
    Dim OKlasor As Object
    Dim yol     As String
    
    Set OKlasor = CreateObject("WScript.Shell").SpecialFolders
    yol = OKlasor("Desktop")
    
    MsgBox yol
End Sub

Şimdi de biraz daha detaylandıralım.


Sub OzelKlasorYollariniVeIsimleriniListele()
    Dim OKlasor As Object
    Dim dizi1, dizi2 As Variant
    
    Set OKlasor = CreateObject("WScript.Shell").SpecialFolders
    
    dizi1 = Array("mydocuments", "desktop", _
                  "allusersdesktop", "recent", _
                  "favorites", "programs", _
                  "startmenu", "sendto")
    
    dizi2 = Array("Belgelerim", "Masaüstü", _
                  "Ortak Masaüstü", "Son Kullanılan Dosyalar", _
                  "Favoriler", "Programlar", _
                  "Başlat Menüsü", "SendTo")
    
    Range("A1") = "Özel Klasör Yolu"
    Range("B1") = "Özel Klasör Adı"
    
    For i = LBound(dizi1) To UBound(dizi1)
        Range("A" & i + 2) = OKlasor(dizi1(i))
        Range("B" & i + 2) = dizi2(i)
    Next
End Sub

Kod (Açıklamalı)


Option Explicit

Sub OzelKlasorYollariniVeIsimleriniListele()
    Dim OKlasor As Object
    Dim i       As Long
    
    '--------------------------------------------------
    'Tam yolunu almak istediğimiz klasörleri döngü
    'kullanarak alacağız.
    '
    'dizi1'e WScript.Shell için gerekli olan
    'parametreleri, dizi2'ye de (varsa) Türkçe
    'karşılıklarını girdik.
    '--------------------------------------------------
    Dim dizi1, dizi2 As Variant
    
    '--------------------------------------------------
    'WScript.Shell ile özel klasörleri aldık.
    '--------------------------------------------------
    Set OKlasor = CreateObject("WScript.Shell").SpecialFolders
    
    '--------------------------------------------------
    'Tam yolunu alacağımız özel klasörler
    'için parametre bilgilerini girdik.
    '--------------------------------------------------
    dizi1 = Array("mydocuments", "desktop", _
                  "allusersdesktop", "recent", _
                  "favorites", "programs", _
                  "startmenu", "sendto")
    
    '--------------------------------------------------
    'Özel klasörlerin bilinen adlarını girdik.
    '--------------------------------------------------
    dizi2 = Array("Belgelerim", "Masaüstü", _
                  "Ortak Masaüstü", _
                  "Son Kullanılan Dosyalar", _
                  "Favoriler", "Programlar", _
                  "Başlat Menüsü", "SendTo")
    
    Range("A1") = "Özel Klasör Yolu"
    Range("B1") = "Özel Klasör Adı"
    
    '--------------------------------------------------
    'Listeleme işlemini yaptırıyoruz.
    '--------------------------------------------------
    For i = LBound(dizi1) To UBound(dizi1)
        Range("A" & i + 2) = OKlasor(dizi1(i))
        Range("B" & i + 2) = dizi2(i)
    Next
End Sub

Yararlanılan Kaynaklar
Etiketler
microsoft excel açıklamalı içerik microsoft excel vba