Excel VBA'da Hücre Değerini Al nedir?
Bu makale Excel VBA'da Hücre Değerini Al'ın ne anlama geldiğini ve bunu farklı senaryolarda nasıl kullanabileceğinizi inceleyecektir. Öncelikle, Excel VBA'da belirli bir hücrenin değerini nasıl alacağınızı ve değere göre nasıl işlem yapacağınızı gösteren bir örneğe bakalım. Bu durumda, etkin çalışma sayfasındaki A1 hücresinin değerini alırız ve "Merhaba" dizesine eşit olup olmadığını kontrol ederiz.

Değer "Merhaba" ise, MsgBox işlevini kullanarak tam metni içeren bir mesaj kutusu görüntüleriz. Bu, çalışma kitabınızdaki belirli hücrelerin içeriklerine göre belirli görevleri otomatikleştirmek için VBA'yı nasıl kullanabileceğinize dair basit bir örnektir.

Excel VBA'da Hücre Değerleri Nasıl Alınır?
Excel VBA'da hücre değerinin nasıl alınacağına dair bazı örnekleri inceleyelim.
Örnek 1 – RANGE veya CELLS Özelliğini Kullanma
Excel VBA'da hücre değerini almanın en basit yollarından biri RANGE veya CELLS özelliğini kullanmaktır. RANGE özelliği belirli bir hücre aralığını seçmek için kullanılırken, CELLS özelliği tek bir hücreyi seçmek için kullanılır.
- RANGE özelliğini kullanma
Bu örnekte, belirli bir hücre aralığını seçmek ve ardından bu hücreler üzerinde işlem yapmak (örneğin değerlerini değiştirmek) için Aralık özelliğini kullanacağız.
- Adım 1 : Yeni bir Excel çalışma kitabı açın ve Visual Basic Düzenleyicisi'ni açmak için Alt + F11 tuşlarına basın.

- Adım 2: Üst menüden “Ekle”ye tıklayıp “Modül”ü seçerek yeni bir modül ekleyin.

- Adım 3 : Modüle aşağıdaki kodu yazın:
Sub ChangeRange()
'A1:A10 aralığını seçin ve değerleri 0 olarak değiştirin
Range(“A1:A10”).Value = 0
End Sub
Prosedürün ilk satırı, bir kesme işareti (') ile başlayan bir yorumdur. Yorumlar, kodun insan tarafından okunabilir bir dilde ne yaptığını açıklamak için kullanılır.
Açıklama:
- İkinci satır ise eylemi gerçekleştiren gerçek koddur.
- Değiştirilecek hücre aralığını (A1 ila A10) belirtmek için “Range” işlevini kullanır ve ardından eşittir işareti (=) ve 0 sayısını kullanarak değerlerini sıfıra ayarlar. Bu nedenle, RANGE işlevi Excel VBA hücre değerini almak için kullanılır.

- Adım 4: Üst menüden “Dosya”ya tıklayarak modülü kaydedin, ardından “Kaydet”i seçin ve ona bir isim verin. Dosyayı “Makro Etkinleştirilmiş Çalışma Kitabı” olarak kaydettiğinizden emin olun.

- Adım 5 : Editör penceresinin sağ üst köşesindeki “X” düğmesine tıklayarak VBA Editörünü kapatın. A1:A10 aralığında bazı değerler girin.

- Adım 6: “Makro” iletişim kutusunu açmak için Alt + F8 tuşlarına basın.

- Adım 7: “ChangeRange” makrosunu seçin ve “Çalıştır”a tıklayın.
- Adım 8: A1:A10 aralığını kontrol edin, tüm değerlerin 0 olarak değiştiğini göreceksiniz.

Bu programın amacı, bir Excel elektronik tablosunda bir grup hücreyi seçmek ve bu hücrelerin değerlerini sıfıra ayarlamaktı.
Başka bir deyişle, daha önce o hücrelerde bulunan değerleri sıfır rakamıyla değiştirecektir.
- CELLS özelliğini kullanma
Bu örnekte, belirli bir hücreyi seçmek ve ardından hücre üzerinde bir eylem gerçekleştirmek (örneğin, değerini değiştirmek) için VBA Hücreler özelliğini kullanacağız .
- Adım 1: Yukarıdaki örnekte gösterildiği gibi bir Excel çalışma kitabı açın ve Alt + F11 tuşlarına basarak Visual Basic Düzenleyicisi'ni açın.
- Adım 2: Üst menüden “Ekle”ye tıklayıp “Modül”ü seçerek yeni bir modül ekleyin.

- Adım 3: Modüle aşağıdaki kodu yazın:
Sub ChangeCell()
'B1 hücresini seçin ve değeri 0 olarak değiştirin
Cells(1, 2).Value = 0
End Sub İşlemi Sonlandır
Açıklama:
- İkinci satır, değiştirilecek hücrenin yerini belirtmek için “Hücreler” işlevini kullanır (bu durumda, B1 hücresine karşılık gelen satır 1 ve sütun 2).
- Daha sonra eşittir işareti (=) ve 0 rakamını kullanarak değerini sıfıra ayarlar.

- Adım 4: “”“”“” modülünü kaydedin ve Excel çalışma sayfanızın B1 hücresine bir değer girin.

- Adım 5: “Makro” iletişim kutusunu açmak için Alt + F8 tuşlarına basın. “ChangeCell” makrosunu seçin ve “Çalıştır”a tıklayın.

- Adım 6: A1 hücresini kontrol edin, değerinin 0 olarak değiştiğini göreceksiniz.

Bu program Excel elektronik tablosunda tek bir hücreyi (özellikle B1 hücresini) seçer ve değerini sıfıra ayarlar.
Başka bir deyişle, o hücrede daha önce bulunan değer ne ise onu sıfır rakamıyla değiştirecektir.
Örnek 2 – Excel VBA'da Hücreden Değer Alma
Diyelim ki aşağıdaki verilere sahip bir çalışma sayfanız var. Ve VBA kullanarak B2 hücresinin değerini almak istiyorsunuz. Bunu nasıl yapabileceğiniz aşağıda açıklanmıştır:

- Adım 1: Yeni bir Excel çalışma kitabı açın ve yeni bir modül ekleyin. Modüle aşağıdaki kodu yazın:
Sub GetValueFromCell()
Dim hücreDeğeri As Integer
hücreDeğeri = Aralık(“B2”).Value
MsgBox “B2 hücresinin değeri: ” & hücreDeğeri
End Sub
Açıklama:
- Prosedürün ilk satırı, " cellValue " adlı yeni bir değişkeni tamsayı veri türü olarak bildirir. Bu değişken, B2 hücresinin değerini depolamak için kullanılacaktır.
- Prosedürün ikinci satırı, “ Range ” işlevini kullanarak hücre B2'nin değerini “ cellValue ” değişkenine atar . Range işlevi, hücrenin (bu durumda hücre B2) konumunu belirtmek için kullanılır ve “.Value” özelliği değerini almak için kullanılır.
- Prosedürün üçüncü satırı, “cellValue” değişkeninin değerini içeren bir mesaj kutusu görüntülemek için “MsgBox” fonksiyonunu kullanır.
- “&” sembolü, “B2 hücresinin değeri: “ dizesini, “cellValue” değişkeninde saklanan hücrenin gerçek değeriyle birleştirmek için kullanılır.

- Adım 2: Modülü kaydedin ve “Makro” iletişim kutusunu açmak için Alt + F8 tuşlarına basın ve GetValueFromCell'i seçip Çalıştır'a tıklayın.

- Adım 3: B2 hücresinin değeri olan 20'yi içeren bir mesaj kutusu göreceksiniz.

Bu programın amacı, Excel elektronik tablosundaki tek bir hücrenin (özellikle B2 hücresinin) değerini almak ve bunu açılan bir mesaj kutusunda görüntülemektir.
Örnek 3 – Bir Hücreden Diğer Hücreye Değer Alın
Diyelim ki aşağıdaki verilere sahip bir çalışma sayfanız var ve B2 hücresinin değerini alıp A4 hücresine kopyalamak istiyorsunuz. Bunu nasıl yapacağınız aşağıda açıklanmıştır:

- Adım 1: VBA Editör'de yeni bir modül açın. Şimdi aşağıdaki kodu yazın.
Sub GetValueAndCopy()
Dim cellValue As Integer
cellValue = Range(“B2”).Value
Range(“A4”).Value = cellValue
MsgBox “B2 hücresinin değeri A4 hücresine kopyalandı.”
End Sub
Açıklama:
Prosedür, "cellValue" adlı yeni bir değişkeni tamsayı veri türü olarak bildirir. Bu değişken, B2 hücresinin değerini depolamak için kullanılacaktır.

Prosedürün aşağıdaki satırı, “Range” işlevini kullanarak hücre B2'nin değerini “cellValue” değişkenine atar. Range işlevi, hücrenin (bu durumda hücre B2) konumunu belirtmek için kullanılır ve “.Value” özelliği değerini almak için kullanılır.

“cellValue” değişkeninin değeriyle bir mesaj kutusu görüntülemek için “MsgBox” işlevini kullanırız. “&” sembolü, “The value of cell B2 is: “ dizesini, “cellValue” değişkeninde saklanan hücrenin gerçek değeriyle birleştirmek için kullanılır.


- Adım 2: Modülü kaydedin ve “Makro” iletişim kutusunu açmak için Alt + F8 tuşlarına basın ve GetValueAndCopy öğesini seçip Çalıştır'a tıklayın.

- Adım 3: B2 hücresindeki değerin A4 hücresine kopyalandığını belirten bir mesaj kutusu göreceksiniz.

Bu örnekte, B2 hücresinin değerini almak için VBA Range özelliğini kullandık ve bunu cellValue adlı bir değişkene atadık. Daha sonra, A4 hücresinin değerini cellValue olarak ayarlamak için Range özelliğini tekrar kullandık.
Son olarak değerin kopyalandığını onaylayan bir mesaj kutusu görüntüledik.
VBA'da bir hücrenin değerini bir değişkene atamak için Range nesnesinin Value özelliğini kullanabilirsiniz . Örneğin, A1 hücresinin değerini bir cellValue değişkenine atamak istiyorsanız, şu kodu kullanabilirsiniz:
cellValue = Range(“A1”).Value
VBA'da bir hücrenin boş olup olmadığını kontrol etmek için IsEmpty işlevini kullanabilirsiniz. IsEmpty işlevi hücre boşsa True, değilse False döndürür. Örneğin, A1 hücresinin boş olup olmadığını kontrol etmek istiyorsanız, aşağıdaki kodu kullanabilirsiniz:
If IsEmpty(Range(“A1”)) Then
MsgBox “Cell A1 is empty”
End If
VBA'da etkin hücrenin değerini ActiveCell özelliğini kullanarak ayarlayabilirsiniz. Örneğin, etkin hücrenin değerini 10 olarak ayarlamak istiyorsanız, aşağıdaki kodu kullanabilirsiniz:
ActiveCell.Value = 10
Kodunuzu hata ayıklarken farenizi değişkenin üzerine getirerek VBA'da bir değişkenin değerini bulabilirsiniz. Alternatif olarak, değişkenin değerini Immediate penceresine yazdırmak için Debug.Print ifadesini kullanabilirsiniz. Örneğin, bir cellValue değişkeninin değerini Immediate penceresine yazdırmak istiyorsanız, aşağıdaki kodu kullanabilirsiniz:
Debug.Print cellValue
