CELLS referans özelliğini kullanarak seçme, etkinleştirme, kopyalama, kesme, biçimlendirme vb. gibi birçok işlem yapabiliriz. Yani, A1 hücresini kopyalamak için CELLS özelliğini kullanabilir ve hücreyi kopyalamak için istediğimiz hücre adresini sağlayabiliriz.
ÖNEMLİ NOKTALAR
- VBA Hücreleri, bir çalışma sayfasındaki tek bir hücreye veya birden fazla hücreye başvurmak için kullanılır.
- Hücrelerle seçme, etkinleştirme, değer atama vb. gibi birçok işlem yapabiliriz.
- Döngünün konumuna göre hücreler arasında geçiş yapmak için kullanılır.
- VBA hücrelerini kullanarak verilen çalışma sayfasının herhangi bir hücresine değer ekleyebilir ve bu değeri alabiliriz.
- Çalışma sayfasının adı belirtilmemişse, CELLS değeri her zaman etkin sayfadan alacaktır.
- Hücrenin değerini bir değişkene atayabilir ve aynı değeri mesaj kutusunda da gösterebiliriz.
VBA Aralığı (Range) ve VBA Hücresi (Cells) Nedir?
Basitçe ifade etmek gerekirse, VBA Range bir nesnedir ve VBA Cells bir özelliktir. Hem Range hem de Cells hücreye başvurmak için kullanılır, ancak bunu yapma şekli farklıdır.
Örneğin A5 hücresine referans vermek istiyorsak, hücrelerin yanı sıra aralığı da kullanabiliriz.
Range Yöntemi: Range(“A5”)
Cells Yöntemi: Cells(5,1)
Aralık yöntemi, hücre adresi çift tırnak işaretleri içinde geçirildiği için basit görünüyor. Ancak, CELLS özelliğiyle durum böyle değil.
CELLS özelliğinde, herhangi bir hücreye başvurmak için satır dizin numarasını ve sütun dizin numarasını kullanmalıyız. Örneğin, aşağıdaki görüntüye bakın.

Benzer şekilde A5 hücresine Merhaba değerini eklemek istiyorsak bunu hem aralıkta hem de hücrelerde yapabiliriz.
Range(“A5”).Value = “Merhaba”
Cells(5,1).Value = “Merhaba”
Hücreye referans vermenin bu iki yöntemi arasındaki en büyük fark, birden fazla hücre seçmemizdir.
Örneğin A1 ile A10 arasındaki hücrelere Merhaba değerini eklemek istiyorsak bunu Range nesnesini kullanarak aşağıdaki gibi yapabiliriz.
Range(“A1:A10”).Value = “Merhaba”
Ancak CELLS özelliğinin birden fazla hücreye aynı anda başvuru yapma özelliği yoktur; CELLS özelliği kullanılarak yalnızca bir hücreye başvurulabilir.
VBA'da Hücre Özelliğinin Formülü
Herhangi bir hücreye başvurmak için CELLS özelliğinin sözdizimini anlamak önemlidir. Sözdizimi şudur:
CELLS([RowIndex], [ColumnIndex])
RowIndex – Başvurmak istediğimiz hücrenin satır numarası.
ColumnIndex – Başvurmak istediğimiz hücrenin sütun numarası.
Excel'de hücrelere R1C1 referans stilini kullanarak başvurabiliriz. VBA'daki CELLS özelliği de aynı mantığı kullanır.
Örneğin D5 hücresine referans vermek istiyorsak bu hücrenin satır numarasını yani 5. satırı vermemiz gerekir .

Satır numarasından sonra hücrenin sütun numarasını sağlamalıyız. D5 hücresine başvurduğumuz için D'nin sütun numarası 4'tür.

Benzer şekilde, eğer A3 hücresine referans vermek istiyorsak, hücre adresini şu şekilde verebiliriz: CELLS(3,1), B4 hücresi için CELLS(4,2) ve E10 hücresi için CELLS(10,5) olacaktır.
VBA'da Hücre Özelliği Nasıl Kullanılır?
Gelişmiş örneklere geçmeden önce, VBA kodlamasında CELLS özelliğinin kullanımına dair bazı örnekleri ele alalım.
Örnek 1 – Bir Hücre Seçin
Örneğin, CELLS özelliğini kullanarak A2 hücresini seçmek istediğimizi varsayalım, ardından aşağıda listelenen adımları takip edelim.
Adım 1 – Geliştirici sekmesinin altındaki Visual Basic Düzenleyicisi penceresine tıklayın .

Not: Excel kısayol tuşu ALT + F11'i de kullanabiliriz .
Adım 2 – Visual Basic Editor penceresinde Ekle sekmesi altında yeni bir modül ekleyin .

Adım 3 – Yeni modülde kelimeyi yazın ve makroya Cells_Example adını verin ve Enter tuşuna basın .

Adım 4 – Alt prosedüre CELLS özellik adını girin ve parantezi açın.

Adım 5 – CELLS özelliği için, istenen hücrenin satır numarasını vermemiz gerekir. A2 hücresinden bahsettiğimiz için satır numarası 2'dir.

Adım 6 – Satır numarasından sonra, A2 hücresinin sütun numarasını vermemiz gerekiyor. Sütun A ilk sütun olduğundan, dizin numarası 1'dir.

Adım 7 – Hücre adresi verildikten sonra nokta koyarak bu hücrenin özelliklerine ve metodlarına ulaşabiliriz.

CELLS özelliğiyle ilgili sorun, hücre referansı verildikten sonra noktayı girdiğimizde, IntelliSense listesinin istenen özelliği veya yöntemi seçmeye başlamasını sağlamayacak olmamızdır. Bu nedenle, CELLS özelliğiyle kullanılabilen özellikler ve yöntemler hakkında bilgi sahibi olunmalıdır.
Adım 8 – Hücreyi seçeceğimiz için Select kelimesini giriyoruz.

Adım 9 – Yukarıdaki kod A2 hücresini seçecektir. Bu kodu çalıştıralım ve ne olacağını görelim.

Örnek 2 – Bir Hücreye Değer Ekleme
Şimdi değeri hücreye ekleme yoluna bakalım. Örneğin, Excel VBA değerini B3 hücresine eklemek istiyorsak , önce CELLS özelliğini açmamız gerekir.

Adım 1: Satır indeks numarasını 3, sütun indeks numarasını 2 olarak girin.

Adım 2: Değeri bu hücreye gireceğimiz için nokta (.) işaretini girip VALUE özelliğini yazalım.

Adım 3: VALUE özelliğine eriştikten sonra eşittir işaretini girmemiz ve çift tırnak içine istediğimiz değeri girmemiz gerekiyor.

Adım 4: Bu kodu çalıştırdığımızda Excel VBA değeri B3 hücresine eklenecektir.

Örnek 3 – Bir Hücrenin Değerini Alın
Hücreye bir değerin nasıl ekleneceğini gördük, benzer şekilde şimdi hücreden değerin nasıl alınacağını göreceğiz. Örneğin, aşağıdaki görüntüye bakın.

Diyelim ki, B4 hücresinin değerini C1 hücresine aktarmamız gerekiyor, yani değeri C1 hücresine eklememiz gerekiyor ve değer B4 hücresinden gelecek.
Adım 1: Aşağıdaki gibi CELLS özelliğini kullanarak C1 hücresine başvurun ve VALUE özelliğini girin.

Adım 2: Değeri atamak için eşittir işaretini girin.
Değer B4 hücresinden geleceği için başka bir CELLS özelliği girin ve B4 hücresinin satır ve sütun numaralarını sırasıyla 4 ve 2 olarak belirtin.

Adım 3: Bu kodu çalıştıralım ve B4 hücresinin değerini C1 hücresine aktarmalıyız.

Benzer şekilde, herhangi bir hücrenin değerini değişkene alabiliriz. Aşağıdaki koda bakın.
Sub Cells_Example3_1()
Dim CellValue As String
CellValue = Cells(2, 2).Value
MsgBox CellValue
End Sub
Yukarıdaki kod, B2 hücresinden değeri alacak ve aşağıdaki görüntüdeki gibi mesaj kutusunda gösterecektir.

Örnek 4 – Belirli bir çalışma sayfasının ve hücrenin değerini alın
“Satışlar” çalışma sayfasından B2 hücresinin değerini almamız gerektiğini varsayalım; o zaman kodu aşağıdaki gibi yazabiliriz.
Sub Cells_Example4()
Dim k As String
k = Worksheets("Sales").Cells(2, 2).Value
MsgBox kEnd Sub
WORKSHEETS nesnesini kullanarak “Satışlar” çalışma sayfasına başvuruyoruz ve bu çalışma sayfasında B2 hücresinin değerini alıyoruz.
CELLS Özelliği Range Nesnesiyle Nasıl Kullanılır?
Şimdiye kadar tartıştığımız gibi, bir aralık nesnesi birden fazla hücre seçebilir ve CELLS özelliği aynı anda bir hücre seçebilir.
Güzel olan şey, RANGE nesnesinin içinde CELLS özelliğini kullanabilmemizdir. Örneğin, Excel'deki aşağıdaki verilere bakın.

Adım 1: B5 ile D7 arasındaki hücre aralığını seçmemiz gerektiğini varsayalım, o zaman RANGE nesnesini kullanabilir ve aşağıdaki gibi bir kod yazabiliriz.
Range(“B5:D7”).Seç
Bu kod B5:D7 aralığındaki hücreleri seçecektir.

Adım 2: Şimdi, CELLS özelliği verilen aralığın ilk hücresini seçmek için kullanılabilir, yani B5:D7. Aşağıdaki kod B5:B7 aralığının ilk hücresini seçecektir.
Range(“B5:D7”).Cells(1,1).Select
Bu kod B5 hücresini seçecektir.

Adım 3: Benzer şekilde 2. sütunun 2. satırını seçmek istiyorsak kodu aşağıdaki gibi yazabiliriz.
Range(“B5:D7”).Cells(2, 2).Select
Bu C6 hücresini seçecektir.

CELLS Döngülerle Özellik
CELLS özelliği VBA döngüleriyle yaygın olarak kullanılır . Örneğin, A1 hücresinden A10'a bir seri numarası eklememiz gerektiğini varsayalım, o zaman 10 farklı satır kod yazmamıza gerek kalmaz, bunun yerine bunu tek bir satır kodda yapabiliriz.
Aşağıdaki kod CELLS özelliğini kullanacak ve A1 ile A10 arasındaki hücrelere 1 ile 10 arasında seri numaraları ekleyecektir.
Sub Cells_Example4()
Dim K As Integer
For K = 1 To 10
Cells(K, 1).Value = K
Next KSon Alt Yazı
Yukarıdaki kodu incelersek, CELLS özelliği için satır numarasını vermedik; bunun yerine döngü değişkeni "k" verdik. Satır numarası, döngünün kaç kez çalıştığına bağlı olarak otomatik olarak "k" değişkeninden alınacaktır.
Döngü ilk çalıştığında “k” değeri 1 olur. Dolayısıyla CELLS referansı CELLS(1,1) yani Hücre A1 olur, döngü 2. kez çalıştığında “ k” değişkeninin değeri 2 olur ve hücre referansı CELLS(2,1) yani Hücre A2 olur ve bu şekilde devam eder.
Benzer şekilde CELLS özelliği ile birlikte döngüleri kullanarak hücrelere dinamik olarak başvurabiliriz.
Dikkat Edilmesi Gereken Önemli Noktalar
- CELLS bir özelliktir ve Range bir nesnedir. Özelliği nesneye kullanabiliriz ancak nesneyi özelliğe kullanamayız.
- CELLS özelliği R1C1 referansını kullanır. Örneğin, CELLS(1,2) B1 hücresi anlamına gelir. Buna sütun başlığını kullanarak da başvurabiliriz, yani, B. CELLS(1,”B”)
- CELLS, RANGE ile birlikte kullanılan bir özellik olduğunda, ilk hücre verilen aralığın hücresi olacaktır.
- CELLS özelliği ile yalnızca bir hücreye başvurulabilirken, RANGE nesnesi ile birden fazla hücreye başvurulabilir.
CELLS özelliğini kullanarak yalnızca bir hücre seçebiliriz. VBA'da birden fazla hücre seçmek için Range nesnesini kullanmamız gerekir.
Örneğin, A2:B5 hücre aralığını seçmek için, aşağıdaki gibi bir kod yazabiliriz.
Range(“A2:B5”).Select
Evet, VBA gizli hücrelerde çalışır. Gizli hücrelerden değerleri hala seçebilir, ekleyebilir ve alabiliriz.
VBA'da CELLS bir özelliktir ve RANGE bir nesnedir. Cells özelliğini kullanarak yalnızca bir hücreye başvurabiliriz, oysa range nesnesini kullanarak birden fazla hücreye başvurabiliriz.
Range nesnesinin içinde CELLS özelliğini kullanabiliriz, ancak Cells özelliğinin içinde Range nesnesini kullanamayız. CELLS özelliği için dizin numaraları vermemiz gerekir ve RANGE nesnesi için hücre adresini çift tırnak içinde vermemiz gerekir.
Hücre referansını kullanarak belirli bir hücreye gidebiliriz. Örneğin, A3 hücresine gitmek için kodu CELLS(3,1).Select olarak yazabiliriz.
Aralık nesnesini kullanarak kodu Range(“A3”).Select olarak yazabiliriz.
Hücrenin özellik adresini de şu şekilde yazabiliriz: CELLS(3, “A”).Select.
Bu, çift tırnak içinde sütun dizin numarası yerine sütun başlığını sağlayabileceğimiz anlamına gelir.
