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.

  • 🎯 Tanım: Aralık nesnesi tek bir hücreyi, bir satırı, bir sütunu, bir seçimi veya 3 boyutlu bir aralığı işaret eder.
  • 🧬 hiyerarşi: Tam nitelikli bir referans, sırasıyla Uygulama, Çalışma Kitapları, Çalışma Sayfaları ve ardından Aralık şeklinde sıralanır.
  • ???? ️ Özellikler ve Yöntemler: Bir özellik, nesne hakkında bilgi depolar ve bir yöntem ise Seçme veya Birleştirme gibi bir eylemi gerçekleştirir.
  • 🔢 Hücrelerin Özelliği: Cells(Row, Column) ifadesi, bir hücreyi numarasına göre adresler ve bu da programlama döngülerine uygundur.
  • ✍️ Okuma ve yazma: `Value` özelliği hem hücrenin içeriğini alır hem de yeni içeriği geri yazar.
  • ↔️ Ofset Özelliği: Offset, bir referansı başlangıç ​​hücresinden belirli sayıda satır ve sütun kadar hareket ettirir.

Excel VBA Aralığı Nesnesi

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

  1. "Aralık" anahtar kelimesi.
  2. Anahtar kelimeyi takip eden parantezler
  3. İlgili Hücre Aralığı
  4. 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.

Worksheet.Range Özelliğini Kullanan Tek Hücre

) 2 Adım Bu adımda,

  • Tıklayın Worksheet.Range Özelliğini Kullanan Tek Hücre 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.

Worksheet.Range Özelliğini Kullanan Tek Hücre

) 3 Adım Bir sonraki adımda,

  • Makro düğmesine tıklayın Worksheet.Range Özelliğini Kullanan Tek Hücre üst menüden. Aşağıdaki pencereyi açacaktır.
  • Bu pencerede 'düzenle' butonuna tıklayın.

Worksheet.Range Özelliğini Kullanan Tek Hücre

) 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

Worksheet.Range Özelliğini Kullanan Tek Hücre

) 5 Adım Şimdi dosyayı kaydedin Worksheet.Range Özelliğini Kullanan Tek Hücre ve programı aşağıda gösterildiği gibi çalıştırın.

Worksheet.Range Özelliğini Kullanan Tek Hücre

) 6 Adım Programın yürütülmesinden sonra Hücre “A1”in seçildiğini göreceksiniz.

Worksheet.Range Özelliğini Kullanan Tek Hücre

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

SSS

Cells(Rows.Count, 1).End(xlUp).Row kullanın. Bu, A sütununun altından başlar ve veri içeren son hücreye atlar; bu, satırlar silindikten sonra UsedRange'den daha güvenilirdir.

Her okuma veya yazma işlemi VBA ve Excel arasında gerçekleşir. Aralığı tek bir atama ile bir diziye yükleyin, diziyi bellekte işleyin, ardından tek bir ifadeyle geri yazın. Ekran Güncellemesini kapatmak da yardımcı olur.

Genellikle geçersiz bir adres, mevcut olmayan bir sayfa adı veya etkin olmayan bir çalışma sayfasında aralık seçme girişimi söz konusudur. Referansı sayfa ile nitelendirin veya önce sayfayı etkinleştirin.

Evet. Kaydedilen kodu yapıştırın ve bir yapay zeka asistanı her "Seç" ve "Seçim" çiftini doğrudan, tam nitelikli bir "Aralık" referansıyla değiştirecektir. Her iki sürümü de bir kopyada çalıştırın ve saklamadan önce sayfayı karşılaştırın.ping değişim.

Evet. Hedefi tanımlayın, örneğin Veri sayfasındaki A'dan D'ye kadar olan sütunlardaki her dolu satır; yapay zeka asistanı eşleşen Aralık ifadesini döndürür. Canlı veriler üzerinde çalıştırmadan önce küçük bir örnek üzerinde doğrulayın.

Bu yazıyı şu şekilde özetleyin: