Excel VBA ile Rastgele Sayı Üretme
1. Örnek Veri Tablosu
Aşağıdaki tabloda 3 farklı senaryo için rastgele sayı üretme ihtiyacımız var.
Tablo Bilgisi
3 senaryo: Olasılık Tahmini (0-1), Rastgele Not (1-100), Rastgele Fiyat (10-50).
2. Yöntem 1: Rnd ile Rastgele Ondalık Sayı (0-1)
Rnd fonksiyonu 0 ile 1 arasında rastgele ondalık sayı üretir. Tablodaki ilk senaryoyu (Olasılık Tahmini) dolduralım.
Sub RndIleDoldur()
Range("C2").Value = Rnd()
End Sub
Kod Açıklaması
- Range("C2").Value → C2 hücresine yaz
- Rnd() → 0-1 arası ondalık sayı üretir
Tablo Rnd() ile dolduruldu:
3. Yöntem 2: Int + Rnd ile 1-100 Arası Tam Sayı
Int ile Rnd'yi birleştirerek 1-100 arası rastgele tam sayı üretiriz. Tablodaki ikinci senaryoyu (Rastgele Not) dolduralım.
Sub IntIleDoldur()
Randomize
Range("C3").Value = Int(100 * Rnd() + 1)
End Sub
Kod Açıklaması
- Randomize → Her seferinde farklı sayı gelsin
- Range("C3").Value → C3 hücresine yaz
- Int(100 * Rnd() + 1) → 1-100 arası tam sayı
Tablo Int ile dolduruldu:
4. VBA Makroları için Ön Hazırlık
1. Geliştirici Sekmesini Aktifleştirin
Excel'de VBA kodlarını yazabilmek için önce Geliştirici sekmesini aktif etmelisiniz. Detaylı bilgi için tıklayın.
3. Modül Ekleyin
Kodlarınızı yazmak için bir Modül eklemelisiniz. Makro yazma rehberi için tıklayın.
2. Visual Basic Düzenleyici'yi Açın
Alt + F11 (Windows) veya Option + F11 (Mac) ile hızlıca açabilirsiniz.
4. Kodu Çalıştırın
Yazdığınız kodu çalıştırmak için F5 tuşuna basın veya Çalıştır butonuna tıklayın. VBA makro nedir? öğrenmek için tıklayın.
F5
▶️ Makroyu çalıştır
5. Sıkça Sorulan Sorular
01 VBA'da rastgele sayı nasıl üretilir?
Rnd() ile 0-1 arası ondalık sayı üretilir. Tam sayı için Int(100 * Rnd + 1) kullanılır.
02 Neden her seferinde aynı sayı geliyor?
Randomize eklemediğiniz için. Başlangıçta Randomize yazarak her seferinde farklı sayı alabilirsiniz.
03 10 ile 50 arası rastgele sayı nasıl üretilir?
Int(41 * Rnd + 10) formülü ile 10-50 arası sayı üretilir.
04 Rnd ile Randomize arasındaki fark nedir?
Rnd sayı üretir, Randomize tohumu değiştirir. Randomize olmadan hep aynı sayılar gelir.
05 Int fonksiyonu ne işe yarar?
Int, ondalık sayının tam sayı kısmını alır. Örneğin Int(3.7) = 3.
06 Mac'te VBA rastgele sayı çalışır mı?
Evet, Mac'te de aynı kodlar çalışır. Option+F11 ile VBA'ya erişin.