- Katılım
- 25 May 2018
- Mesajlar
- 1,608
- En iyi yanıt
- 14
- Puanları
- 113
- Konum
- İstanbul
- Web sitesi
- excelarsivi.com
- Ad Soyad
- Murat OSMA
- Office Vers.
- Microsoft 365 TR+EN
Excel'in hücre işlemleri ile ilgili nesne hiyerarşisi bu şekildedir.
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
Bu örnek kodları F8 ile adım adım test edebilirsiniz.
VBA tarafından bir hücre yolunun tam adresi bu şekildedir;
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; kodlarda sayfayı bu şekillerde ifade edebiliriz..
Yukarıda belirttiğim gibi tam yolunu
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.
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;
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.
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)
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; kodlarda sayfayı bu şekillerde ifade edebiliriz..
- Sayfa1.Select
- Sheets(1).Select
- Sheets("1 Günlük").Select
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.
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: