EXCEL VBA'DA EVALUATE FONKSİYONU

 


VBA Evaluate işlevini kullanarak VBA kodunuzdan Excel formüllerini veya ifadelerini çalıştırabilirsiniz. Bu esnek işlev dizilerle çalışmanıza, değerleri dinamik olarak hesaplamanıza ve hatta Excel işlevlerini çalıştırmanıza olanak tanır. VBA Evaluate, VBA kodunuzdan doğrudan Excel'in hesaplama motoruyla çalışmanıza olanak tanır ve otomasyon ve veri işleme için çeşitli fırsatlar sunar. Aşağıdaki örnekte, "Concatenate" işlevini kullanarak iki dizeyi, "Hello" ve "World!", birleştirmek için VBA Evaluate işlevini nasıl kullanacağınızı anlayacağız .


VBA Değerlendirme Fonksiyonu 1

Bu kodda, ilk olarak, birleştirmenin sonucunu depolamak için bir "concatenatedString" değişkeni tanımlanmıştır. VBA Evaluate işlevi, belirtilen dizeleri argüman olarak kullanarak "Concatenate" işlevini yürütür ve sonucu "concatenatedString" değişkenine atar. Son olarak, birleştirilen dize bir ileti kutusunda gösterilir.

VBA Değerlendirme Fonksiyonu 1-1

ÖNEMLİ NOKTALAR

  1. Excel formülleri veya ifadeleri VBA Evaluate işlevi kullanılarak VBA kodunda dinamik olarak hesaplanabilir. Bu, zor hesaplamaları ve veri işleme işlerini otomatikleştirmeyi mümkün kılar.
  2. Dizi formülleri, işlevler ve matematiksel ifadeler de dahil olmak üzere çok çeşitli Excel formüllerini işlemek için VBA Evaluate'i kullanabilirsiniz.
  3. VBA Evaluate ile VBA kodunda dizi işlemlerini verimli bir şekilde halledebilirsiniz. Bu, birden fazla hücre veya aralıkta hesaplamalar yapmak ve büyük veri kümelerini etkili bir şekilde işlemek için kullanışlıdır.
  4. Dizeler olarak depolanan ifadelerin veya formüllerin dinamik değerlendirmesini etkinleştirmek için, verilen dizeyi Excel'in hesaplama motorunda yürütülebilir kod olarak ele almak üzere VBA Dizeyi Kod Olarak Değerlendir işlevini kullanın.

Sözdizimi

VBA Evaluate fonksiyonunun sözdizimi basittir.

Değerlendir (İsim) Evalueate(Name)

Ad, bir formül veya değerlendirmek istediğiniz bir nesnenin adı olabilir. Bu ad 255 karakteri geçmemelidir.

Not:

Microsoft Excel VBA'daki VBA Değerlendirme yöntemi, aşağıdakiler de dahil olmak üzere çeşitli ad ve referans türlerini destekler:


İsim TürüTanım
Formüller (Formulas)Excel formüllerinin dize olarak çalıştırılmasına olanak tanır.
A1 tarzı referanslar (A1-style references)A1 gösteriminde tek hücreli referanslar.
Aralıklar (Ranges)Referanslarla aralık, kesişim ve birleşim operatörlerini (iki nokta üst üste, boşluk ve virgül) kullanın.
Tanımlı isimler (Defined names)Makronun dilinde herhangi bir isim belirtin.
Dış referanslar (External references)Başka bir çalışma kitabındaki hücrelere veya adlara başvurmak için “!” operatörünü kullanın.
Grafik nesneleri(Chart objects)Efsane, Çizim Alanı veya Seri gibi grafik nesnelerinin özelliklerine ve yöntemlerine erişin.
Form Kontrol numarası(Form Control Number)Bir çalışma sayfasındaki Form Denetimlerine sayılar veya adlar kullanarak başvurun. Örneğin, hem "Etiket 1" hem de "1" bir Etiket Form Denetimine başvurmak için birbirinin yerine kullanılabilir.

VBA Değerlendirme Fonksiyonu Nasıl Kullanılır?

VBA'da Değerlendir fonksiyonunun kullanımı şöyledir:

Adım 1: Excel'i açın ve VBA düzenleyicisini açmak için ALT + F11 tuşlarına basın .

VBA Evaluate 1 Nasıl Kullanılır

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

VBA Değerlendirmesi 1-1 Nasıl Kullanılır

Adım 3: Yeni modül penceresinde VBA Evaluate fonksiyonunu içeren VBA kodunuzu yazabilirsiniz .

Adım 4: Excel ifadelerini veya formüllerini çalıştırmak için VBA kodunuzda VBA Evaluate işlevini kullanın. VBA Evaluate işlevine istenen formülü veya ifadeyi bir dize girişi olarak verin.

Sonuç doğrudan kodunuzda kullanılabilir veya bir değişkene kaydedilebilir.

Örneğin:

Result = Evaluate(“SUM(A1:A10)”)

Adım 5: Kodlamayı tamamladıktan sonra VBA kodunuzu çalıştırabilirsiniz.

VBA düzenleyici penceresini kapatabilir ve makroyu doğrudan Excel çalışma kitabından çalıştırabilirsiniz. Aksi takdirde, VBA düzenleyicisinin araç çubuğundaki “Çalıştır” düğmesine tıklayın.

Örnekler

Örnek 1

Bu örnekte, faktöriyel ifadesini oluşturup değerlendirerek ve ardından sonucu bir ileti kutusunda görüntüleyerek, VBA Evaluate fonksiyonunu kullanarak verilen bir sayının faktöriyelini dinamik olarak nasıl hesaplayacağımızı öğreneceğiz.

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

VBA Değerlendirme Örneği 1

Adım 2: Daha sonra faktöriyelini hesaplamak istediğimiz sayıyı saklamak için num değişkenini Integer veri türü olarak tanımlayalım.

VBA Değerlendirme Örneği 1-1

Adım 3: Faktöriyel hesaplamasının sonucunu depolamak için Variant veri türü olarak “factorialResult” adlı bir değişken de bildirin.

VBA Değerlendirme Örneği 1-2

Adım 4: Bu adımda, faktöriyelini hesaplamak istediğimiz sayıyı temsil eden num değişkenine 5 değerini atayın.

VBA Değerlendirme Örneği 1-3

Adım 5: Sonra, bir döngü kullanarak faktöriyel ifadesini dinamik olarak temsil eden bir “factorialExpression” dizesi oluşturun.

Bu döngü 2'den num'a kadar yineleme yapar ve her sayıyı çarpma operatörü ile ifadeye ekler.

VBA Değerlendirme Örneği 1-4

Adım 6: Şimdi faktöriyel ifadesinin sonucunu hesaplamak için VBA Evaluate fonksiyonunu kullanacağız.

VBA Değerlendirme Örneği 1-5

Adım 7: Son olarak, belirtilen sayının faktöriyelini gösteren bir mesaj kutusu görüntülemek için mesaj kutusu fonksiyonunu kullanacağız.

VBA Değerlendirme Örneği 1-6

Adım 8: Kodu çalıştırdığınızda belirtilen sayının (bu durumda 5) faktöriyelini hesaplar ve sonucu bir ileti kutusunda görüntüler.

VBA Değerlendirme Örneği 1-7

İşte tam kod:

Sub CalculateFactorial()

    Dim num As Integer

    Dim factorialResult As Variant

    num = 5

    Dim factorialExpression As String

    factorialExpression = “1”

    For i = 2 To num

        factorialExpression = factorialExpression & ” * ” & i

    Next i

    factorialResult = Evaluate(factorialExpression)

    MsgBox “Factorial of ” & num & ” is: ” & factorialResult

End Sub

Örnek 2

Bu örnekte, Sheet1'in A1 hücresinde saklanan değeri almak ve ardından değeri "A1'deki Değer:" etiketinin yanında bir ileti kutusunda görüntülemek için VBA Değerlendir işlevini kullanacağız.

Adım 1: İlk olarak CellReferences adında bir alt rutin tanımlayarak başlıyoruz.

VBA Değerlendirme Örneği 2

Adım 2: Bu adımda, hücrenin değerini saklamak için Variant veri türünde “cellValue” adlı bir değişken tanımlanır.

VBA Evaluate Example 2-1

Adım 3: Burada, Sheet1'den A1 hücresinin değerini almak ve bunu cellValue değişkeninde depolamak için VBA Evaluate fonksiyonunu kullanacağız.

VBA Evaluate Example 2-2

Adım 4: Şimdi, A1 hücresinin değerini görüntülemek için mesaj kutusu fonksiyonunu kullanacağız.

VBA Değerlendirme Örneği 2-3

Adım 5: Son olarak kodu çalıştırdığınızda VBA'da A1 hücresinin değerini gösteren bir mesaj kutusu görünecektir.

Bu durumda A1 hücresinde “Merhaba Dünya!” sözcüğü geçtiği için mesaj kutusunda da aynı mesaj görüntülenecektir.

VBA Değerlendirme Örneği 2-4

İşte tam kod:

Sub CellReferences()

    Dim cellValue As Variant

    cellValue = Evaluate(“Sheet1!A1”) ‘ Evaluates the value in cell A1 of Sheet1

    MsgBox “Value in A1: ” & cellValue

End Sub

Örnek 3

Bu örnekte, belirli bir hücre aralığının (örneğin, A1 hücresinden A5 hücresine) toplamını dinamik olarak hesaplamak için VBA Evaluate fonksiyonunun kullanımını göreceğiz. Bunun için bir SUM formül dizesi oluşturup, bunu değerlendirip, ardından sonucu bir ileti kutusunda görüntüleyeceğiz.

VBA Değerlendirme Örneği 3

Adım 1: İlk olarak “CalculateRangeSum” adında bir alt rutin oluşturarak başlıyoruz.

VBA Değerlendirme Örneği 3-1

Adım 2: Daha sonra, toplam hesaplamasının sonucunu saklamak için Variant veri türü olarak “sumResult” adlı bir değişken bildiriyoruz.

VBA Değerlendirme Örneği 3-2

Adım 3: Toplamını hesaplamak istediğimiz aralığın adresini (A1:A5) saklamak için “rangeAddress” adlı başka bir değişken tanımlayın.

VBA Değerlendirme Örneği 3-3

Adım 4 : Daha sonra aralık adresini kullanarak SUM formülünü dinamik olarak temsil eden bir “formulaString” dizesi yazın .

VBA Değerlendirme Örneği 3-4

Adım 5: Bu adımda, belirtilen aralığın toplamını hesaplamak için VBA Evaluate fonksiyonunu kullanacağız.

VBA Değerlendirme Örneği 3-5

Adım 6: Belirtilen aralığın toplamını gösteren bir mesaj kutusu görüntülemek için mesaj kutusu özelliğini kullanacağız.

VBA Değerlendirme Örneği 3-6

Adım 7: Şimdi makroyu kaydedin ve çalıştır'a tıklayın.

Kodu çalıştırdığınızda belirtilen aralığın (A1:A5) toplamını dinamik olarak hesaplar ve sonucu bir ileti kutusunda görüntüler.

VBA Değerlendirme Örneği 3-7

İşte tam kod:

Sub CalculateRangeSum()

    Dim sumResult As Variant

    Dim rangeAddress As String

    rangeAddress = “A1:A5”

    Dim formulaString As String

    formulaString = “=SUM(” & rangeAddress & “)”

    sumResult = Evaluate(formulaString)

     MsgBox “Sum of range ” & rangeAddress & ” is: ” & sumResult

End Sub

Dikkat Edilmesi Gereken Önemli Noktalar

  1. Özellikle kullanıcı girdisi veya harici veri kaynakları içerdiğinde bu dizeleri dinamik olarak oluştururken dikkatli olun, çünkü VBA Evaluate formülleri veya ifadeleri dize olarak alır.
  2. VBA Evaluate, Excel formüllerini ve ifadelerini yönetmede esnek olsa bile sınırlamalara sahiptir. Formül dışı ifadeleri çalıştırmak, Excel nesneleriyle doğrudan çalışmak veya VBA kodunda akışı veya koşullu mantığı kontrol etmek için kullanılamaz.
  3. VBA Formül Dizesi Değerlendirmesi özelliğini kullanarak, formül dizelerini dinamik olarak işleyerek VBA kodunuz içerisinde dize olarak oluşturulan Excel formüllerini değerlendirebilirsiniz.

Yorum Gönder

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