Anlamsız Metin Oluştur - Microsoft Excel


Kullanıcı tanımlı fonksiyondan yararlanarak istenilen uzunlukta, rakamlardan ve harflerden oluşan bir metin oluşturacağız. Nasıl yapıldığını görelim.

Kod


Option Explicit

Function AnlamsizMetinOlustur(uzunluk As Integer)
    Dim dizi  As Variant
    Dim metin As String
    Dim i     As Integer
    Randomize
    
    dizi = Array("a", "b", "c", "ç", _
                 "d", "e", "f", "g", _
                 "ğ", "h", "ı", "i", _
                 "j", "k", "l", "m", _
                 "n", "o", "ö", "p", _
                 "q", "r", "s", "ş", _
                 "t", "u", "ü", "w", _
                 "x", "y", "z", "0", _
                 "1", "2", "3", "4", _
                 "5", "6", "7", "8", "9")
    
    metin = ""
    For i = 0 To uzunluk
        metin = metin & dizi(Int(41 * Rnd))
    Next
    
    AnlamsizMetinOlustur = metin
End Function

Kod (Açıklamalı)


Option Explicit

Function AnlamsizMetinOlustur(uzunluk As Integer)
    Dim dizi  As Variant
    Dim metin As String
    Dim i     As Integer
    
    '--------------------------------------------------
    'Rnd() fonksiyonu için işe yarıyor.
    'Rnd() fonksiyonu rasgele sayı üretebilmek için
    'bir başlangıç değerine ihtiyaç duyar. Eğer bu
    'sayı verilmezse kendi oluşturduğu sayıyı baz
    'alarak bir rasgele sayı oluşturur.
    '
    'İlk sayıyı oluşturdu.
    'İkinci sayıyı ilk sayıya göre oluşturdu.
    'Üçüncü sayıyı ikinci sayıya göre oluşturdu.
    '
    'Bu şekilde devam eder.
    'Eğer Rnd() fonksiyonunu argümansız bir
    'şekilde kullanıyorsak ilk çağırıldığında
    'aynı sayıları kullanacak.
    '
    'İşte Randomize burada devreye giriyor.
    'İlk sayıyı sistem saatini kullanarak
    'değişik bir ilk sayı hesaplıyor ve
    'böylelikle rasgele olma özelliği
    'çok daha iyi artıyor.
    '
    'Peki neden sistem saatine göre hesap
    'yapılıyor? Sistem saati sürekli
    'değişiyor, bu yüzden.
    '
    'Özetle Randomize şeysinin olayı
    'Rnd için farklı bir ilk sayı vermek
    've böylece değişik rasgele sayılar
    'oluşturulmasını sağlamak.
    '--------------------------------------------------
    Randomize
    
    '--------------------------------------------------
    'Harflerden ve sayılardan oluşan dizi.
    'Harfler Türkçe karakterleri ve
    'x, q, w harflerini de içermektedir.
    '--------------------------------------------------
    dizi = Array("a", "b", "c", "ç", _
                 "d", "e", "f", "g", _
                 "ğ", "h", "ı", "i", _
                 "j", "k", "l", "m", _
                 "n", "o", "ö", "p", _
                 "q", "r", "s", "ş", _
                 "t", "u", "ü", "w", _
                 "x", "y", "z", "0", _
                 "1", "2", "3", "4", _
                 "5", "6", "7", "8", "9")
    
    '--------------------------------------------------
    'Rasgele seçilen her karakteri
    'metin adlı değişkendeki string
    'değerinin sağına ekleye ekleye
    'ilerleteceğiz.
    '--------------------------------------------------
    metin = ""
    
    '--------------------------------------------------
    'Diziden Rnd() fonksiyonu aracılığıyla
    'rasgele bir sayı seçiyoruz, ve o sayının
    'karşılığı olan dizi değişkeninin değerini
    'alıyoruz.
    '
    '41 sayısı nereden geliyor?
    '31 (Toplam Harf Sayısı)
    '10 (Onluk sistemdeki toplam rakam sayısı)
    '31 + 10 = 41
    '--------------------------------------------------
    For i = 0 To uzunluk
        metin = metin & dizi(Int(41 * Rnd))
    Next
    
    '--------------------------------------------------
    'Sonucu fonksiyon çıktısı olarak ayarladık.
    '--------------------------------------------------
    AnlamsizMetinOlustur = metin
End Function

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