EXCEL VBA'DA HÜCRELER (CELLS)

EXCEL VBA HÜCRELERİ NELERDİR?

VBA hücreleri Excel'deki hücrelere benzer ve bir çalışma sayfasındaki tüm hücrelere veya belirli bir hücreye başvuruda bulunmaya yardımcı olur. Excel'deki görevleri otomatikleştirmek için, VBA'da hücre özelliği ve aralık nesnesiyle nasıl çalışılacağını bilmemiz gerekir.



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.

Vba Hücreleri-aralığı

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 .

Hücre Özelliğinin Formülü

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.

Örnek

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 .

Vba Hücreleri- Örnek 1 - adım 1

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 .

Vba Hücreleri- Örnek 1 - adım 2

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

Örnek 1 - Adım 3

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

Vba Hücreleri- Örnek 1 - adım 4

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.

Örnek 1 - Adım 5

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.

Vba Hücreleri- Örnek 1 - adım 6

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

Örnek 1 - adım 7

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.

Vba Hücreleri- Örnek 1 - adım 8

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

Vba Hücreleri- Örnek 1 - adım 9

Ö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.

Vba Hücreleri- Örnek 2 - adım 1

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

Örnek 2 - Adım 2

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

Örnek 2 - Adım 3

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.

Vba Hücreleri- Örnek 2 - adım 4

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

Vba Hücreleri- Örnek 2 - adım 5

Ö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.

Örnek 3

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.

Örnek 3 - VALUE özelliği

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.

Vba Hücreleri- Örnek 3 - satır ve sütun

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

Vba Hücreleri- Örnek 3 - kodu çalıştır

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.

Vba Hücreleri- Örnek 3 - mesaj kutusu

Ö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 k

End 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.

Vba Hücreleri - HÜCRELER Özellik 1

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.

HÜCRELER Özellik 2

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.

HÜCRELER Özellik 3

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.

HÜCRELER Özellik 4

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 K

Son 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.

1. VBA'da birden fazla hücre nasıl seçilir?

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

2. VBA gizli hücrelerde çalışır mı?

Evet, VBA gizli hücrelerde çalışır. Gizli hücrelerden değerleri hala seçebilir, ekleyebilir ve alabiliriz.

3. VBA’da hücre ve aralık arasındaki fark nedir?

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.

4. VBA'da belirli bir hücreye nasıl giderim?

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.

 

Yorum Gönder

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