Makale Satır, Sütun, Aralık ve Hücre Adresi Kullanım Yöntemleri

Bu Makale Yararlı Oldu mu?

  • Evet

  • Hayır


Sonuçlar yalnızca oylamadan sonra görülebilir.
Excel'in hücre işlemleri ile ilgili nesne hiyerarşisi bu şekildedir.

excelnesne.png

Application

Excel uygulamasının genel adı

Workbooks

Şu anda açık olan tüm çalışma kitaplarının bir koleksiyonu

Worksheets

Belirli bir çalışma kitabındaki tüm çalışma sayfalarının koleksiyonu

Columns

Çalışma kitaplarındaki tüm sütunlar

Rows

Çalışma kitaplarındaki tüm satırlar

Range

Bir hücre aralığı ya da tek bir hücre

Cells

Çalışma sayfalarındaki her bir hücre



Excel'de bizim bütün işimiz, en küçük parça olan hücrelerledir.
Farklı türdeki verileri bu hücrelerde tutar, hesaplamasını yapar, filtreler, sıralar, raporlar ve daha birçok işlem yaparız.
Bu işlemleri yaparken, Sütun, Satır, Hücre Aralığı ve Hücre adreslerinin kullanımlarını mutlaka ezberlememiz gerekir.
Şimdi ezberlememiz gereken tabloyu görelim. Bu yazım kalıplarını bilmeden VBA'da pek bir çalışma yapamayız.

Hücre ve Aralık İşlemlerinde Adres Belirtme Tablosu

Kullanım Şekli

Anlamı

[A1]

A1 hücresi

Cells(1)

A1 hücresi

Cells(1, 1)

A1 hücresi

Cells(1, "A")

A1 hücresi

Range("A1")

A1 hücresi

Columns

Çalışma kitabındaki tüm sütunlar

Columns("A")

A sütunu

Columns(1)

A sütunu

Range("A:A")

A sütunu

Rows(1)

Birinci satır

Range("1:1")

Birinci satır

Rows

Çalışma kitabındaki bütün satırlar

Range("1:5")

Birinci satırdan beşinci satıra kadar

Range("1:1,3:3,8:8")

Birinci, üçüncü, sekizinci satırlar

Range("A:A,C:C,F:F")

A, C, ve F sütunları

Range("A:C")

A'dan C sütununa kadar

Range("A1").Resize(5, 2)

A1'den B5'e kadar - A1:B5 Aralığı

Range("A1:B5")

A1'den B5'e kadar - A1:B5 Aralığı

Range(Cells(1, 1), Cells(5, 2))

A1'den B5'e kadar - A1:B5 Aralığı

Range("C5: D9,G9:H16")

Çoklu aralık seçimi



Bu örnek kodları F8 ile adım adım test edebilirsiniz.
PHP:
Sub Hücre_Secimleri()
    [A1].Select
    Cells(1, 1).Select
    Cells(1, "A").Select
    Range("A1").Select
    Columns.Select
    Columns("A").Select
    Columns(1).Select
    Range("A:A").Select
    Rows.Select
    Rows(1).Select
    Range("1:1").Select
    Range("1:5").Select
    Range("1:1,3:3,8:8").Select
    Range("A:A,C:C,F:F").Select
    Range("A:C").Select
    Range("A1").Resize(5, 2).Select
    Range("A1:B5").Select
    Range(Cells(1, 1), Cells(5, 2)).Select
    Range("C5:D9,G9:H16").Select
End Sub
VBA tarafından bir hücre yolunun tam adresi bu şekildedir;
Application.ActiveWorkbook.Worksheets(1).Range("A1").Value fakat VBA bize bir hücreyi illâ bu şekilde tam yolunu belirtmeniz gerekir demiyor. Eğer kodlarda aktif sayfadaki herhangi bir hücre adresi verilecekse ve sadece o sayfada işlem yapılacaksa, o zaman sadece Range veya Cells'i kullanmamız yetecektir. Yani yukarıdaki kodda belirtilen şu kısım Range("A1") yeterli olacaktır. Eğer Range, Cells, Columns, Rows ifadelerinden önce herhangi bir sayfa adı belirtilmemiş ise, o zaman belirtilen hücre aktif sayfadaki hücre olarak belirtilmiş olur. Bir başka ifadeyle; Range("A1") ifadesi, aktif sayfanın A1 hücresi anlamına gelir. Eğer Range öncesinde bu şekilde herhangi bir sayfa adı belirtilirse o zaman o sayfadaki A1 hücresi demiş olursunuz. Örnek; WorkSheets("SayfaAdı").Range("A1")

Kodlarda sayfa adını tanımlamanın da birkaç farklı yolu vardır.
Örneğin Sayfa1 adlı sayfanın tanımlaması nasıl yapılır görelim.
Tanımlama yaparken VBA'nın kendi orijinal sayfa adını da kullanabilirsiniz, bizim sayfa adını elle değiştirebildiğimiz Sekmelerin isimlerini de kullanabilirsiniz. Bu arada sayfaların adını veya indeks numarasını belirtebilirsiniz.
Şimdi örneklere geçebiliriz.

VBA'da görünen sayfa adı bu şekilde ise; sayfa1-min.png kodlarda sayfayı bu şekillerde ifade edebiliriz..

  1. Sayfa1.Select
  2. Sheets(1).Select
  3. Sheets("1 Günlük").Select
Bu arada Sheets - Worksheets aynı anlama gelmektedir. İsterseniz Worksheets(1).Select 'de yazabilirsiniz.
Yukarıda belirttiğim gibi tam yolunu ThisWorkbook.Worksheets(1).Select şeklinde belirtebiliriz.

Ayrıca Set deyimi ile sayfamıza kısa bir isim de verip tanımlama yapabiliyoruz. Yukarıdaki Sayfa1 için Set ile tanımlama yapmayı da görelim.
Set s1 = Sayfa1 veya Set s1 = Sheets(1) veya Set s1 = Sheets("1 Günlük") gibi tanımlama yaptığımızda artık 1 Günlük sayfasını kodlarda s1 olarak ifade edip kullanabiliyoruz. Eğer sayfaya ait özelliklere ulaşmak istersek, bu şekilde Worksheet değişken tanımlaması yapmamız gerekir.
Dim s1 As Worksheet
Set s1 = Sayfa1
veya yukarıda belirttiğim alternatiflerde yazılabilir.

Eğer iki farklı çalışma kitabı arasında veri alışverişi olacaksa, o zaman o çalışma kitaplarının isimlerini net olarak belirtip tanımlamamız gerekir.
Karşılaşacağımız ve kullanacağımı ifadeler bunlar olacak;
ThisWorkbook ifadesi; Bu Çalışma Kitabı demek.
ActiveWorkbook ifadesi; Aktif Çalışma Kitabı demek.

Bu iki ifadeyi birbirinden ayıran fark; biri kodları yazdığınız çalışma kitabıdır, diğeri de sonradan açılan veya aktif edilen çalışma kitabıdır.
Genellikle ThsWorkbook ile ActiveWorkbook arasında veri alışverişi olduğunda buna benzer bir yapı kullanırız;
ThisWorkbook.Sheets(1).Range("A1").Value = ActiveWorkbook.Sheets(1).Range("B1").Value

Worksheets("Sayfa1").Select bu ifadesiyle ilgili aşağıdaki görseldeki gibi bir detay daha verirsek, kodları yazarken, nesne, metot ve özellik kısımlarını daha net kavramış olursunuz. Nesne nedir, metot nedir, özellik nedir, sorularına kafanızda bir az olsun cevap bulmuş olduğunu umuyorum.

objemetotozellik-min.png

Range nesnesi tek bir hücre veya birden fazla hücre aralığını temsil eder.
Cells nesnesi de sadece tek bir hücreyi ifade eder.

Yukarıda Range ve Cells kullanımı ile ilgili örnekleri belirtmiştik.
Range("hücre veya hücre aralığı")
Cells(satır_no, sütun_no)
 
Son düzenleme:
Admin
Üst Alt