
VBA Hesaplama Nedir?


Bir değer aralığı elde edersiniz. Yeni bir değer aralığı elde etmek için bir alt rutin oluşturarak, RANDBETWEEN işlevini yeniden etkinleştirmek için VBA Formül Hesapla işlevini kullanabilirsiniz .

Bu alt programı çalıştırdıktan sonra değerlerin değiştiğini fark edeceksiniz.

Önemli Noktalar
- Hesapla yöntemi, VBA'da Excel çalışma kitaplarındaki formülleri yeniden hesaplamak için kullanılır.
- Genellikle tüm formüllerin en son verilere göre güncellenmesini sağlamak için çalışma sayfalarına veya tüm çalışma kitaplarına uygulanır.
- Çalışma sayfası düzeyinde, ActiveSheet.Calculate etkin sayfadaki tüm formülleri yeniden hesaplamak için kullanılır.
- Tüm açık çalışma kitaplarını yeniden hesaplamak için Application.CalculateFull kullanılabilir. Bu yöntem VBA'daki Application nesnesine aittir.
- VBA'nın Hesaplama yöntemi, veri tutarlılığı ve doğruluğunu sağlamak için sıklıkla daha büyük otomasyon betiklerine dahil edilir.
- Calculate'e ek olarak, CalculateFull, CalculateFullRebuild ve CalculateBeforeSave gibi belirli amaçlara hizmet eden diğer hesaplamayla ilgili yöntemler de vardır.
VBA Hesaplama Nasıl Kullanılır?
Tarih Fonksiyonunun uygulandığı bir örnek oluşturmak için aşağıdaki adımları izleyin.
Adım 1: Excel çalışma kitabını açtıktan sonra “Formluas”ı açın.

İşlemi “Manuel” olarak değiştirin.

Diyelim ki bir tablonuz var ve tablonun toplamı, SUM Excel fonksiyonu kullanılarak yan tarafa yazdırılıyor .


Tablodaki bir değeri değiştirirseniz, VBA Hesaplama formülünü kullanarak yeniden hesaplama yapmanız gerekir
Adım 2: Benzer şekilde başlık çubuğundan “Geliştirici” simgesini seçin ve üzerine tıklayın.

Geliştirici simgesine tıkladıktan sonra “Visual Basic” seçeneğini seçin. VBA düzenleyicisi açılır.

VBA Modülünde, başlık çubuğunda “Ekle” butonuna tıklayın ve “Modül” seçeneğini seçin.

Artık hesaplama işlemlerini sizin adınıza gerçekleştirecek kodlar yazabilirsiniz.
Adım 3: VBA Hesaplama formülünü çağıracak bir alt rutin tanımlayın.

Adım 4: Aralık fonksiyonunu kullanarak ve hücrenin içinde bulunduğu çalışma sayfasını belirterek VBA Hücre Hesaplama fonksiyonunu uygulayın.

Bu , o hücrede çağrılan Excel SUM fonksiyonunu çağıracaktır .
Kod:
Sub Re_Calculate()
Sheets(“Sheet1”).Range(“J7”).Calculate
End Sub
Adım 5: Programı çalıştırmak için Excel VBA Editöründeki etkinlik çubuğundaki “F5” veya “Çalıştır” simgesine tıklayın. Toplamı kontrol edin.

180 değeri 130 olarak değiştirildiğinden “J7” hücresindeki SUM değeri 1260’tan 1210’a değişir.
Artık VBA Calculate fonksiyonunun genel olarak nasıl kullanıldığını biliyorsunuz. Daha fazlasını öğrenmek için aşağıdaki daha basit ve sezgisel örneklere bakın.
Örnek #1
Burada, aktif sayfanızdaki tüm hesaplamaların hemen yapıldığı bir işlev istiyorsunuz. Excel VBA'daki "Şimdi Hesapla" seçeneğini bu şekilde taklit edebilirsiniz. Bu çalışma sayfasında, 0 ile 1 arasında bir değer döndüren Excel RAND işlevini kullanırsınız.

Adım 1: Excel VBA'da Şimdi Hesapla seçeneğini çağıracak bir alt rutin tanımlayın.

Bu, şu anda içinde bulunduğunuz sayfanın tamamını hesaplayacaktır.
Adım 2: Bulunduğunuz geçerli sayfadaki VBA Hesaplama formülünü çağırın. Bu, “ActiveSheet” anahtar sözcüğü kullanılarak yapılır.

Kod:
Alt Calc_Now()
ActiveSheet.Hesapla
Son Alt Yazı
Adım 10: Alt programı çalıştırmak ve değişiklikleri görmek için “F5” tuşuna basın.

Buradan kişinin yaşının 10 olduğu sonucunu çıkarabiliriz.
Örnek 2
Bu örnekte, aşağıdaki adımları izleyerek bir WorkBook'taki tüm formüllerin nasıl etkinleştirileceğini öğrenebilirsiniz.
Birden fazla sayfa olduğunu varsayalım.



Adım 1: Çalışma kitabının tamamını hesaplamak için bir alt rutin tanımlayın.

Adım 2: Excel VBA’da “Application” anahtar kelimesini kullanarak, Excel VBA’daki “CalculateFull” bileşenini kullanarak tüm fonksiyonları aktif edebilirsiniz.

Application anahtar sözcüğü, tüm açık Çalışma Kitaplarının VBA Hesaplama işlevini çalıştırmasını sağlar.
Kod:
Sub Calc_WorkBook()
Application.CalculateFull
End Sub
Adım 3: Yukarıdaki alt rutini çalıştırın. Çalışma sayfalarındaki tüm değerlerin değiştiğini göreceksiniz.



Örnek 3
Değerlerle dolu bir çalışma sayfanız olduğunu varsayalım. Bu çalışma sayfasında, belirttiğiniz bir aralıkta bir değer döndüren Excel RANDBETWEEN işlevini kullanırsınız. Çalışma sayfasındaki değerleri değiştirmek isterseniz, bunu yapmak için VBA Calculate işlevini kullanabilirsiniz.


Adım 1: Çalışma sayfasının tamamını hesaplamak için bir alt rutin tanımlayın.

Adım 2: Sayfa adı ile Hesapla fonksiyonunu çağırın.

Kod:
Sub Calc_Sheet()
Sheets(“Sheet2”).Calculate
End Sub
Adım 3: RANDBETWEEN işlevini kullanarak değerleri değiştirmek için alt yordamı çalıştırın. Alt yordamı her çalıştırdığınızda çalışma sayfası boyunca yeni bir değer görünecektir.

Örnek 4
Excel VBA'da bir aralık boyunca VBA Calculate fonksiyonunu nasıl çağıracağınızı öğrenebilirsiniz. 100 ile 200 arasında rastgele değerler yazdırmak için RANDBETWEEN fonksiyonunu çağırdığınız bir aralığınız olduğunu varsayalım.


Tüm aralıkta çalışacak bir VBA alt programı oluşturabilirsiniz.
Adım 1: Belirli bir aralıkta çalışacak bir alt rutin oluşturun.

Adım 2: VBA Aralık fonksiyonunu kullanarak , bu alt rutinin çalışacağı aralığı tanımlayın ve ayrıca Çalışma Sayfaları fonksiyonunu kullanarak çalışacağı çalışma sayfasını tanımlayın.

Bu, bu alt rutinin “D3” ile “D16” aralığında çalışmasını sağlayacaktır.
Kod;
Sub Calc_Range()
Sheets(“Sheet2”).Range(“D3:D16”).Calculate
End Sub
Adım 3: Değişiklikleri görüntülemek için alt programı çalıştırın.

Bu şekilde VBA Calculate fonksiyonunu kullanarak bir aralıktaki tüm değişiklikleri görüntüleyebilir ve değerleri değiştirebilirsiniz.
Dikkat Edilmesi Gereken Önemli Noktalar
- Farklı hesaplama modlarını (Otomatik, Tablolar Hariç Otomatik, Manuel) anlayın ve kodunuzun istenen hesaplama moduyla uyumlu olduğundan emin olun.
- Özel gereksinimlerinize bağlı olarak gerekirse diğer hesaplamaya ilişkin yöntemleri (CalculateFull, CalculateFullRebuild, vb.) göz önünde bulundurun.
- Calculate yöntemine yapılan yinelemeli çağrılar sonsuz döngülere yol açabilir. Calculate'i kendisini tetikleyebilecek bir olay içinde kullanırken dikkatli olun.
- Çalışma kitabınızdaki hesaplama bağımlılıklarını anlayın. Bağımlılıkları göz ardı etmek yanlış hesaplamalara veya gereksiz yeniden hesaplamalara neden olabilir.
- Çalışma kitabı dizinleri kullanıyorsanız, bunları sabit kodlama konusunda dikkatli olun. Çalışma kitapları sayı ve sıra olarak değişebilir, bu nedenle çalışma kitaplarına ad veya diğer tanımlayıcılarla başvurmak genellikle daha güvenlidir.
1) VBA Calculate değişken fonksiyonları günceller mi?
Evet, VBA Calculate değişken fonksiyonları güncellemek için de kullanılabilir.
Hayır, VBA Calculate Excel'deki makro tabanlı bir fonksiyondur. VBA makrolarını içermeden doğrudan kullanılamaz.
Evet, Excel'de VBA'ya gerek kalmadan tüm formülleri yeniden hesaplamak için F9 tuşu veya Formüller sekmesini kullanarak alternatif bir manuel yeniden hesaplama seçeneği vardır.
VBA Calculate Automatic'i kullanırken, dikkate almanız gereken birkaç sınırlama vardır.
● Aşırı kullanım performansı etkileyebilir.
● Yinelemeli çağrılar sonsuz döngülere yol açabilir.
● Tam yeniden hesaplama kaynak yoğun olduğundan dikkatli kullanın.
● Hesaplama bağımlılıklarını uygun şekilde anlayın ve işleyin.
● VBA kodunuzda uygun hata işlemeyi sağlayın.