Excel VBA'da ActiveCell nedir?
VBA etkin hücre değeri ActiveCell nesnesi kullanılarak düzenlenebilir veya başvurulabilir. Bu nesne, seçili hücreyle etkileşim kurmak için özellikler ve yöntemler sağlar. Örneğin, etkin hücrenin değerini alabilir veya ayarlayabilir, biçimlendirebilir veya içeriğine göre hesaplamalar yapabilirsiniz. VBA etkin hücre adresinin “A1” olduğu bir örneği ele alalım. Burada değeri “Örnek Dize”dir. Değerini yazdırmak için aşağıdaki kodu kullanarak Excel VBA'da bulunan ActiveCell işlevini kullanırız.


İmlecimiz “A1” hücresine tıklandığı için, ActiveCell.Value fonksiyonu kullanılarak referans alınır. Immediate sekmesindeki “A1” hücre değerini çıktı olarak yazdıracaktır.

Benzer şekilde, ActiveCell aşağıda gösterildiği gibi seçme değerini gerçekleştirmek için kullanılabilir. Daha önce belirtildiği gibi, hücre "A1"de bulunan daha önceki kullanılabilir değeri üzerine yazacaktır. Dolayısıyla şimdi hücre A1'deki değer aşağıda görüldüğü gibidir:


Excel VBA'da referanslama
Excel VBA'da referanslama, hücreler, aralıklar, çalışma sayfaları ve çalışma kitapları gibi bir Excel çalışma kitabındaki çeşitli öğelere erişmenizi ve bunları düzenlemenizi sağlar. Bu öğelere referans vererek, bunlar üzerinde işlemler gerçekleştirebilir, değerlerini alabilir, özelliklerini değiştirebilir veya hesaplamalar uygulayabilirsiniz.
Excel VBA'da öğelere başvurmanın birden fazla yolu vardır.
1 – Hücre Referansı
Satırlarını ve sütunlarını belirterek belirli bir VBA etkin hücre adresine başvurmak mümkündür.
Aşağıda gösterilen ActiveCell Değerini göz önünde bulundurun:

VBA etkin hücre değerine adresini çağırarak da başvurabiliriz. Örneğin, her iki yol da aşağıda gösterilmiştir:

Excel VBA'da Cells() kullanarak ActiveCell “A1” değerini aşağıdaki gibi değiştirebiliriz:

Kod:
Sub CellRef()
'adres
Debug.Print Range(“A1”).Value
'satırlar ve sütunlar üzerinden başvuruda bulunma
Cells(1, 1).Value = 10
Debug.Print ActiveCell.Value
End Sub
Çıktıda bu değerler yazdırılacaktır.

Ayrıca “A1” hücresindeki değer 10 olarak değişecektir.

2 – Aralık (Range) Referansı
VBA Excel'de belirli bir hücre aralığında etkin hücre seçimi yapmak mümkündür .
Adres çağrısı ile:

A1-A5 hücrelerine gösterildiği gibi 10 yazdırılacaktır.

Hücreler fonksiyonunu kullanarak satır ve sütun çağrıları:

C1-C3 hücrelerine 20 yazdırılacaktır:

Kod:
Sub RangeRef()
'adres çağrısı
Range(“A1:A5”).Value = 10
'satırlar ve sütunlar tarafından çağrı
Range(Cells(1, 3), Cells(3, 3)).Value = 20
End Sub
3 – Çalışma Sayfası Referansı
Hücrelere bir çalışma sayfasındaki çalışma sayfası adları veya dizinleri ve hücre adresleri ile başvurulabilir.
“A1” hücresinin şu değere sahip olduğunu düşünelim:

Çalışma sayfası ve hücre adresi belirtilerek değerlere başvurulabilir.

Veya çalışma sayfasının indeksini çağırarak.

Her iki durumda da “A1” hücresinin çıktısı Hemen sekmesinde yazdırılacaktır.

Kod:
Sub WorksheetRef()
'ad çağrısı
Debug.Print Worksheets(“Sheet1”).Range(“A1”).Value
'indeks çağrısı
Debug.Print Worksheets(1).Range(“A1”).Value
End Sub
4 – Çalışma Kitabı Referansı
VBA Active Cell değeri, şu anda üzerinde çalıştığımız çalışma kitabını gösterildiği gibi çağırarak referans alınabilir. Çalışma kitabımızın adının Excel Format olduğunu varsayalım.
“A1” hücresinin şu değere sahip olduğunu düşünelim:

Bu değere, önce Çalışma Kitabı adına, sonra çalışma sayfası adına ve ardından adrese başvurularak başvurulabilir.

Çalışma kitabı ayrıca Excel Çalışma Kitabının dosya dizin yolu kullanılarak da açılabilir ve başvurulabilir:

Çıktıyı yazdıracak olan:

Not: Excel dosyasının yolunu, sisteminizde bulunan Excel dosya yoluna göre değiştirin.
Kod:
Sub WorkbookRef()
'name çağrısı
Debug.Print Workbooks(“ExcelFormat.xlsm”).Worksheets(“Sheet1”).Range(“A1”).Value
'dizin çağrısı
Debug.Print Workbooks.Open(“C:\Users\Ananth\Downloads\ExcelFormat.xlsm”).Worksheets(1).Range(“A1”).Value
End Sub
Etkin Hücre Adresi, Değer, Satır ve Sütun Numarası
Excel VBA'da etkin hücrenin adresine, hücre değerine, satır numarasına ve sütun numarasına erişmek için ActiveCell nesnesinin özelliklerini kullanabilirsiniz. Hücre değerini göz önünde bulundurun:

Aşağıda daha önce bahsedilen değerleri yazdırmanın yolları gösterilmektedir.
- VBA AKTİF HÜCRE ADRESİ:
Bu, aşağıda gösterildiği gibi ActiveCell'de bulunan VBA Adres özelliğini kullanarak yapılabilir:

- VBA AKTİF HÜCRE DEĞERİ:
Aşağıda gösterildiği gibi Aktif Hücre değerinin yazdırılmasıyla gerçekleştirilebilir:

- VBA AKTİF HÜCRE SATIRI:
ActiveCell'deki Satır niteliğini kullanarak, etkin hücrenin Satır numarası aşağıdaki gibi yazdırılabilir:

- VBA AKTİF HÜCRE SÜTUN NUMARASI:
ActiveCell'de bulunan Column niteliğini çağırarak sütun numarası aşağıdaki gibi yazdırılır:

Aşağıda görüldüğü gibi, dördünün de çıktısı Hemen sekmesinde yazdırılacaktır:

Kod:
Sub ValueRef()
'adres ref
Debug.Print “Etkin Hücre Adresi: ” & ActiveCell.Address
'değer ref
Debug.Print “Etkin Hücre Değeri: ” & ActiveCell.Value
'satır ref
Debug.Print “Etkin Hücre Satırı: ” & ActiveCell.Row
'sütun numarası ref
Debug.Print “Etkin Hücre Sütunu: ” & ActiveCell.Column
End Sub
Excel VBA'da Etkin Hücrenin Parametreleri
Excel VBA'da, ActiveCell nesnesi, etkin hücrenin çeşitli yönlerine erişmenize ve bunları düzenlemenize olanak tanıyan çeşitli özellikler sağlar. Aşağıdaki örneği ele alalım.
Aşağıda gösterildiği gibi, Aktif Hücre “A1”de bir fonksiyon tanımlanmıştır. Değer şu anda 75'tir.

Etkin Hücre'ye başvurulabilecek birkaç parametre vardır:
- Adres: ActiveCell, etkin bir hücrenin adresini aşağıdaki gibi döndürebilir:

- Değer: ActiveCell belirtilen etkin hücrenin değerini döndürür:

- Satır: ActiveCell, şu anda etkin olan hücrenin satır numarasını yazdırabilir:

- Sütun: ActiveCell, VBA etkin hücresinin sütun numarasının değerini döndürür:

- Formül: ActiveCell, etkin hücrede kullanılan Excel formülünü yazdırabilir. Kullanılmış bir formül yoksa, yalnızca değeri yazdırır:

- Yazı Tipi: ActiveCell, yazı tipi boyutunu, yazı tipi rengini değiştirerek yazı tiplerini özelleştirebilir; örneğin:

Burada değeri kalın yaptık ve yazı tipi boyutunu 12 olarak değiştirdik ve ayrıca yazı tipi rengini VBA RGB (0,0,255) kullanarak mavi olarak değiştirdik.
Kod:
Sub ParamRef()
'adres ref
Debug.Print “Etkin Hücre Adresi: ” & ActiveCell.Address
'değer ref
Debug.Print “Etkin Hücre Değeri: ” & ActiveCell.Value
'satır ref
Debug.Print “Etkin Hücre Satırı: ” & ActiveCell.Row
'sütun numarası ref
Debug.Print “Etkin Hücre Sütunu: ” & ActiveCell.Column
'formül ref
Debug.Print “Etkin Hücre Formülü: ” & ActiveCell.Formula
'FONT
ActiveCell.Font.Bold = True
ActiveCell.Font.Size = 12
ActiveCell.Font.Color = RGB(0, 0, 255)
End Sub
Çıktı şu şekilde olacaktır:

