Excel VBA Aralığı Nesnesi
⚡ Akıllı Özet
Excel VBA Range nesnesi, bir çalışma sayfasındaki tek bir hücreyi veya bir hücre grubunu temsil eder. Bu sayfa, nesne hiyerarşisini, Range ve Cells özelliklerini, hücre seçme ve referans verme işlemlerini, değer okuma ve yazma işlemlerini ve Offset özelliğini açıklamaktadır.

VBA Aralığı nedir?
VBA Aralığı Nesnesi, Excel çalışma sayfanızdaki bir hücreyi veya birden çok hücreyi temsil eder. Excel VBA'nın en önemli nesnesidir. Excel VBA aralığı nesnesini kullanarak aşağıdakilere başvurabilirsiniz:
- Tek bir hücre
- Bir satır veya sütun hücre
- Bir hücre seçimi
- 3 boyutlu bir aralık
Önceki dersimizde de bahsettiğimiz gibi, VBA kayıt yapmak ve çalıştırmak için kullanılır. MakroPeki VBA, sayfadaki hangi verinin üzerinde çalışılması gerektiğini nasıl belirler? İşte burada VBA Aralık Nesneleri devreye giriyor.
VBA'da Nesnelere Referans Vermeye Giriş
Excel'in VBA Aralığı Nesnesine ve Nesne Niteleyicisine başvurulması.
- Nesne Niteleyicisi: Bu, nesneye referans vermek için kullanılır. Bahsettiğiniz çalışma kitabını veya çalışma sayfasını belirtir.
Bu hücre değerlerini değiştirmek için, Emlaklar hem de Yöntemler kullanılmış.
- Mülkiyet: Bir özellik, nesne hakkındaki bilgileri saklar.
- Yöntem: Yöntem, gerçekleştireceği nesnenin bir eylemidir. Aralık nesnesi seçili, kopyalanmış, temizlenmiş, sıralanmış vb. işlemleri gerçekleştirebilir.
VBA, Excel'deki bir nesneye başvurmak için nesne hiyerarşisi modelini izler. Aşağıdaki yapıyı takip etmeniz gerekir. Unutmayın, buradaki nokta (.dot) farklı seviyelerdeki nesneleri birbirine bağlar.
Uygulama.Çalışma Kitapları.Çalışma Sayfaları.Aralık
Bu hiyerarşiye iki farklı özellik aracılığıyla ulaşılabilir ve en sık kullanılan özellik Range özelliğidir.
Range özelliğini kullanarak Excel VBA Range Object'e nasıl başvurulur?
Range özelliği iki farklı nesne tipine uygulanabilir.
- Çalışma Sayfası Nesneleri
- Aralık Nesneleri
Range Özelliği için Sözdizimi
- "Aralık" anahtar kelimesi.
- Anahtar kelimeyi takip eden parantezler
- İlgili Hücre Aralığı
- Alıntı yapmak (" ")
Application.Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("A1")
Yukarıda gösterildiği gibi Range nesnesine başvurduğunuzda, buna şu şekilde atıfta bulunulur: tam nitelikli referansExcel'e tam olarak hangi aralığı, hangi sayfayı ve hangi çalışma sayfasını istediğinizi belirttiniz.
Örnek E-posta: MesajBox Çalışma Sayfaları(“Sayfa1”).Aralık(“A1”).Değer
Range özelliğini kullanarak aşağıdaki gibi birçok görevi gerçekleştirebilirsiniz:
- Aralık özelliğini kullanan Tek hücreye bakın
- Worksheet.Range Özelliğini kullanarak Tek hücreye bakın
- Bir satırın veya sütunun tamamına bakın
- Worksheet.Range Property ve çok daha fazlasını kullanarak birleştirilmiş hücrelere bakın
Bu nedenle menzil mülküne ilişkin tüm senaryoları kapsamak çok uzun olacaktır. Yukarıda bahsedilen senaryolardan yalnızca birine örnek göstereceğiz. Aralık özelliğini kullanan tek hücreye bakın.
Worksheet.Range Özelliğini kullanarak Tek hücreye bakın
Tek bir hücreye referans vermek için, hücrenin adresini metin dizesi olarak Range özelliğine iletin.
Sözdizimi basittir “Aralık (“Hücre”)”.
Burada sayfadan tek hücreyi seçmek için “.Select” komutunu kullanacağız.
) 1 Adım Bu adımda Excel dosyanızı açın.
) 2 Adım Bu adımda,
- Tıklayın
düğmesine basın.
- Bir pencere açılacaktır.
- Program adınızı buraya girin ve 'Tamam' düğmesini tıklayın.
- Sizi ana Excel dosyasına götürecektir, Makro kaydetmeyi durdurmak için üst menüden 'durdur' kayıt düğmesine tıklayın.
) 3 Adım Bir sonraki adımda,
- Makro düğmesine tıklayın
üst menüden. Aşağıdaki pencereyi açacaktır.
- Bu pencerede 'düzenle' butonuna tıklayın.
) 4 Adım Yukarıdaki adım, "Tek Hücre Aralığı" adlı dosya için VBA kod düzenleyicisini açacaktır. Excel sayfasından "A1" hücre aralığını seçmek için aşağıdaki gibi kodu girin.
Sub SingleCellRange() Range("A1").Select End Sub
) 5 Adım Şimdi dosyayı kaydedin ve programı aşağıda gösterildiği gibi çalıştırın.
) 6 Adım Programın yürütülmesinden sonra Hücre “A1”in seçildiğini göreceksiniz.
Benzer şekilde, belirli bir ada sahip bir hücreyi seçebilirsiniz. Örneğin, adı "Guru99- VBA Eğitimi”. Aşağıda gösterildiği gibi komutu çalıştırmanız gerekiyor. Bu komut, o isimdeki hücreyi seçecektir.
Menzil("Guru99- VBA Eğitimi”).Seç
Burada diğer aralık nesnesini uygulamak için kod örneği verilmiştir.
| Excel'de hücre seçme aralığı | Aralık beyan edildi |
|---|---|
| Tek Sıra için | Aralık(“1:1”) |
| Tek Sütun için | Aralık("A:A") |
| Bitişik Hücreler İçin | Aralık(“A1:C5”) |
| Bitişik Olmayan Hücreler İçin | Aralık(“A1:C5, F1:F5”) |
| İki aralığın kesişimi için | Aralık(“A1:C5 F1:F5”) (Kesişme hücresi için virgül operatörünün olmadığını unutmayın) |
| Hücreyi birleştirmek için | Aralık(“A1:C5”) (Hücreyi birleştirmek için “birleştir” komutunu kullanın) |
Hücre seçmek sadece ilk adımdır. Pratikte bir makro, hücrenin içeriğini okur ve yeni bir değer yazar.
Range Nesnesi ile Değerleri Okuma ve Yazma
Çalışma sayfasına dokunan hemen hemen her makro iki şeyden birini yapar: bir hücreden bir değer okur veya bir değer yazar. Her ikisi de Değer özelliği üzerinden gerçekleşir ve ikisinin de hücrenin önceden seçilmesine ihtiyacı yoktur.
Sub ReadAndWrite() Dim Price As Double Dim Qty As Long ' Read two values out of the sheet Price = Range("B1").Value Qty = Range("B2").Value ' Write the calculated result back Range("B3").Value = Price * Qty ' Fill a whole block in one statement Range("D1:D10").Value = "Guru99" ' Clear only the contents, keeping the formatting Range("F1:F10").ClearContents End Sub
Bu örüntüyü güvenilir kılan dört nokta var.
- Seçim yapmak zorunlu değil: Yazı Yazmak Aralık(“B3”).Değer = 10 Hücreyi önce seçmekten daha hızlı ve güvenlidir. Kaydedilen makrolar .Select ile doludur çünkü kaydedici fare hareketlerini yansıtır, kodun buna ihtiyacı olduğu için değil.
- Değer ve Metin: .Value altta yatan veriyi döndürürken, .Text ekranda gösterilen ve sütun genişliğine göre kısaltılabilen biçimlendirilmiş dizeyi döndürür. Hesaplamalarda .Value'ı okuyun.
- Blokların tamamı tek bir satırda: Çok hücreli bir aralığa değer atamak, her hücreyi aynı anda doldurur; bu da tek tek doldurmaya kıyasla çok daha hızlıdır.ping.
- Doğru şeyi temizleyin: ClearContents yalnızca değerleri siler, Clear biçimlendirmeyi de kaldırır ve Delete hücreleri siler ve etraflarındaki hücreleri kaydırır.
Aralık (Range) özelliği, bir hücreyi harf ve rakam kullanarak adresler. İkinci bir özellik ise aynı hücreyi iki rakam kullanarak adresler.
Hücre Özelliği
Aralığa benzer şekilde, VBA Ayrıca "Hücre Özelliği"ni de kullanabilirsiniz. Tek fark, elektronik tablonuzdaki hücrelere referans vermek için kullandığınız bir "öğe" özelliğine sahip olmasıdır. Hücre özelliği, programlama döngülerinde kullanışlıdır.
Örneğin,
Hücreler.öğe(Satır, Sütun). Aşağıdaki iki satır da A1 hücresine atıfta bulunur.
- Hücreler.öğe(1,1) VEYA
- Hücreler.item(1”A”)
VBA'da Aralık (Range) ve Hücreler (Cells) Arasındaki Fark
Aralık ve Hücreler, aynı çalışma sayfası hücrelerine farklı yollarla ulaşır ve doğru seçim, kodu daha kısa ve okunması daha kolay hale getirir.
| Fark noktası | Aralık | Hücreler |
|---|---|---|
| Adres biçimi | Bir metin dizesi, Range(“A1”) | İki sayı, Hücreler(1, 1) |
| Çoklu hücreler | Evet, Aralık (“A1:C5”) | Hücre hücre |
| Bir döngünün içinde | Dize birleştirmesi gerekiyor | Satır numarası döngü sayacı olabilir. |
| okunabilirlik | Excel'de gördüğünüz adresle eşleşir. | 27. sütunu hayal etmek AA'dan daha zor. |
| Kombine kullanım | Range(Cells(1, 1), Cells(5, 3)) ifadesi A1:C5 aralığındaki hücreleri sayılardan oluşturur. | |
Pratik kural, bir bakışta okuyabileceğiniz sabit bir adres için Range, satır veya sütun numarası çalışma zamanında hesaplandığında ise Cells kullanmaktır.
Aralık Uzaklığı özelliği
Aralık ofseti özelliği, satırları/sütunları orijinal konumundan uzakta seçecektir. Bildirilen aralığa göre hücreler seçilir. Aşağıdaki örneğe bakın.
Örneğin,
Range("A1").Offset(RowOffset:=1, ColumnOffset:=1).Select
Bunun sonucu B2 hücresi olacaktır. Ofset özelliği, A1 hücresini 1 sütun ve 1 satır öteye kaydıracaktır. İhtiyacınıza göre RowOffset / ColumnOffset değerini değiştirebilirsiniz. Hücreleri geriye doğru kaydırmak için negatif bir değer (-1) kullanabilirsiniz.
Yukarıdaki kodu içeren Excel'i indirin
Yukarıdaki Excel dosyasını indirin. Code






