VBA Max işlevi, belirli bir sayısal değer kümesinden, bir hücre aralığından veya bir diziden maksimum değeri bulmak için kullanılır. VBA Worksheet Function nesnesinin bir parçasıdır ve Excel çalışma sayfası işlevi MAX'e benzer şekilde çalışır. VBA Max işlevi, sağlanan giriş değerleri arasında en yüksek değeri döndürür. Bir hücre aralığında (A1:A5) VBA Max dize uzunluğunu bulduğumuz bir örneğe bakalım.

Bu örnekte, çeşitli dizeler içeren bir hücre aralığımız (A1:A5) var. VBA Max kodu, maksimum dize uzunluğunu depolamak için kullanılacak bir maxLength değişkenini 0 olarak başlatır. Kod daha sonra For Each döngüsünü kullanarak aralıktaki her hücrede döngü yapar.

Her hücre için, LEN excel fonksiyonunu kullanarak hücrenin değerinin uzunluğunu hesaplar ve bunu geçerli maksimum uzunlukla karşılaştırır. Kodun çıktısı, “Elephant” kelimesi verilen dizeler arasında 8 karakterlik en uzun uzunluğa sahip olduğundan “Aralıktaki maksimum dize uzunluğu: 8” ifadesini gösteren bir ileti kutusu olacaktır.

- VBA Max fonksiyonu, sayısal değer aralığındaki veya dizisindeki maksimum değeri bulur.
- VBA Max fonksiyonuna erişmek için Application.WorksheetFunction.Max'ı kullanın .
- Hataları veya beklenmeyen sonuçları önlemek için giriş aralığının veya dizinin yalnızca sayısal değerler içerdiğinden emin olun.
- Giriş aralığı boşsa, VBA Max fonksiyonu 0 değerini döndürecektir.
- VBA Max fonksiyonunu kullanırken sayısal olmayan değerleri ayrı ayrı işleyin veya giriş aralığından hariç tutun .
VBA Max Fonksiyonu nasıl kullanılır?
VBA Max fonksiyonunu kullanmak ve hücre aralığındaki VBA Max Değerini belirlemek için aşağıdaki adımları izleyin.
Adım 1: Excel çalışma kitabınızı açın ve “Alt + F11” tuşlarına basarak VBA düzenleyicisine erişin.

Adım 2: VBE’de menü çubuğunda “Ekle”ye tıklayın ve “Modül”ü seçin. Bu, projeye yeni bir modül ekleyecektir.

Adım 3: Seçili çalışma sayfası modülünün veya yeni modülün içine, VBA Max fonksiyonunu kullanmak için gerekli VBA kodunu ekleyin.
Adım 4: VBA düzenleyicisini kapatın ve Excel çalışma kitabınıza dönün.
Adım 5: Kullanılabilir makroların listesini açmak için “Alt + F8” tuşlarına basın ve ardından oluşturduğunuz makroyu çalıştırın.
Örnekler
MAX fonksiyonunun nasıl uygulanacağına dair bazı örneklere bakalım.
Örnek #1 – Bir Aralıktaki Maksimum Değeri Bulma
Diyelim ki A1 ile A10 hücrelerinde bir sayı aralığımız var ve VBA Max fonksiyonunu kullanarak bunlar arasındaki en büyük değeri bulmak istiyoruz.

Adım 1: Yeni modülde “FindMaxValueInRange” adlı bir alt rutin oluşturduk.

Adım 2: Bir sonraki adımda, değer aralığını depolamak için rng (Range türünde) ve Max fonksiyonunun sonucunu depolamak için “maxValue” (Variant türünde) olmak üzere iki değişken bildirerek başlıyoruz.

Adım 3: Burada rng değişkenini, maksimum değerini bulmak istediğimiz sayısal değerleri içeren “A1:A10” aralığına ayarlıyoruz.

Adım 4: “Application.WorksheetFunction.Max(rng)” sözdizimini kullanarak, belirtilen rng aralığındaki maksimum değeri bulmak için MAX fonksiyonunu çağırırız.
VBA Max fonksiyonunun sonucu maxValue değişkeninde saklanır.

Adım 5: Son olarak kullanıcıya sonucu vermek için bir mesaj kutusu kullanarak maksimum değeri görüntüleriz.

Adım 6: Şimdi modülü kaydedin ve VBE'den çıkın. Şimdi Makro menüsünü açmak için Alt + F8'e basın, “FindMaxValueInRange”i seçin ve Çalıştır'a tıklayın.

Adım 7: Kodu çalıştırdığınızda, verilen aralıktaki maksimum değeri gösteren bir mesaj kutusu görünecektir.

İşte tam kod:
Sub FindMaxValueInRange()
Dim rng As Range
Dim maxValue As Variant
' Maksimum değeri bulmak istediğiniz aralığı ayarlayın
Set rng = Range(“A1:A10”)
' Max fonksiyonunu kullanarak aralıktaki maksimum değeri bulun
maxValue = Application.WorksheetFunction.Max(rng)
' Bir mesaj kutusunda maksimum değeri görüntüleyin
MsgBox “Aralıktaki maksimum değer: ” & maxValue
End Sub
Örnek 2 – Excel VBA'da Max'in Gelişmiş Örneği:
Bu örnekte, iki kullanıcı girişi değeri arasındaki maksimum değerin nasıl bulunacağını ve giriş değerlerinin sayısal olmadığı veya boş değerler içerdiği durumların nasıl ele alınacağını göstereceğiz.
Adım 1: Yeni modülde “FindMaxOfTwoValues” adında bir alt rutin oluşturun.

Adım 2: Bir sonraki adımda, üç değişken bildireceğiz: input1, input2 ve maxValue, hepsi Variant türünde. Bu değişkenler kullanıcı girdisini ve maksimum değeri depolamak için kullanılacak.

Adım 3: Kullanıcıdan iki değer girmesini istemek için “InputBox” fonksiyonunu kullanırız . İlk değer input1 değişkeninde, ikincisi ise input2 değişkeninde saklanır.

Adım 4: Girişlerin sayısal olduğundan emin olmak için, “IsNumeric” fonksiyonunu kullanarak hem input1 hem de input2'yi kontrol ederiz. Girişlerden herhangi biri sayısal değilse, bir hata mesajı görüntüleriz ve Exit Sub'ı kullanarak makrodan çıkarız.

Adım 5: Her iki girdinin de sayısal olduğunu varsayarak, “Application.WorksheetFunction.Max” fonksiyonunu kullanarak iki girdi arasındaki maksimum değeri buluruz. Bu fonksiyon, girdiler dizeler veya karışık VBA veri türleri olsa bile karşılaştırmayı yönetir .
Max fonksiyonunun sonucu maxValue değişkeninde saklanır.

Adım 6: Son olarak kullanıcıya sonucu vermek için bir mesaj kutusu kullanarak maksimum değeri görüntüleriz.

Adım 7: Şimdi modülü kaydedin ve VBE'den çıkın. Şimdi Makro menüsünü açmak için Alt + F8'e basın, “FindMaxOfTwoValues” öğesini seçin ve Çalıştır'a tıklayın.

Adım 8: Kodu çalıştırdığınızda, bize bir değer girmemizi isteyen ilk mesaj kutusunu göreceksiniz. Şimdi, örneğin 4567 girelim ve Tamam'a tıklayalım.

Adım 9: Tamam'a tıkladıktan sonra, bize ikinci bir değer girmemizi isteyen başka bir mesaj kutusu açılacak, buraya 9855'i gireceğiz.

Adım 10: Tamam'a tıkladıktan sonra, girdiğimiz iki değerin VBA maksimum değerini soracak olan aşağıdaki mesaj kutusunu göreceksiniz.

İşte tam kod:
Sub FindMaxOfTwoValues()
Dim input1 As Variant
Dim input2 As Variant
Dim maxValue As Variant
' Kullanıcıdan iki değer girmesini ister
input1 = InputBox(“İlk değeri girin:”)
input2 = InputBox(“İkinci değeri girin:”)
' Girişlerin sayısal olup olmadığını kontrol eder, aksi takdirde makrodan çıkar
If Not IsNumeric(input1) Or Not IsNumeric(input2) Then
MsgBox “Lütfen geçerli sayısal değerler girin.”
Exit Sub
End If
' Max fonksiyonunu kullanarak iki giriş arasındaki maksimum değeri bulur
maxValue = Application.WorksheetFunction.Max(input1, input2)
' Bir mesaj kutusunda maksimum değeri görüntüler
MsgBox “” & input1 & ” ile ” & input2 & ” arasındaki maksimum değer: ” & maxValue
End Sub
Dikkat Edilmesi Gereken Önemli Noktalar
- VBA Max fonksiyonu Worksheet Function nesnesinin bir parçasıdır, dolayısıyla ona erişmek için “Application.WorksheetFunction.Max” sözdizimini kullanmalısınız.
- VBA Max işlevi için giriş aralığı veya dizisi yalnızca sayısal değerler içermelidir. Sayısal olmayan herhangi bir değer mevcutsa, beklenmeyen sonuçlara veya hatalara yol açabilir.
- İki değer arasındaki maksimum değeri bulmak için VBA Max işlevini kullanırken, girdilerin sayısal olduğundan emin olun veya çalışma zamanı hatalarından kaçınmak için sayısal olmayan girdileri uygun şekilde işleyin.
- Giriş aralığı veya dizisi boşsa, VBA Max fonksiyonu 0 döndürür. Yanlış sonuçlardan kaçınmak için kodunuzda boş veya null değerleri buna göre işleyin.
- Sistemin bellek sınırlamaları VBA Max dizi boyutunu belirler. Bellek taşması hatalarını önlemek ve verimli kod yürütmeyi sağlamak için büyük dizilerle uğraşırken dikkatli olmak çok önemlidir.
