VBA Intersect, verilen iki veya daha fazla aralık adresinin orta noktasını veren bir fonksiyondur. Bu nedenle, kesişim noktalarını elde etmek için en azından en az iki aralık vermemiz gerekir. Genellikle, Intersect kelimesi matematik geometrisinde iki veya daha fazla çizgi birbirini kestiğinde kullanılır. VBA Intersect de farklı değildir. Aralıkların kesişme noktasını getirecektir. Örneğin, bir Excel çalışma sayfasındaki aşağıdaki verilere bakın.

İki aralığımız olduğunu varsayalım, yani B1 ila B16 aralığı ve A10 ila D10 aralığı. Kesişim noktasını elde etmek için aşağıdaki VBA Intersect kodunu kullanabiliriz.
Sub Kesişim_Giriş()
Intersect(Range(“B1:B16”), Range(“A10:D10”)).Select
End Sub
Kodu çalıştırdığımızda verilen iki aralığın kesiştiği noktayı verecektir.

Verilen iki aralığın kesişim noktası B10'dur.
ÖNEMLİ NOKTALAR
- Intersect, iki aralık arasındaki ortak kesişen hücreyi alan bir fonksiyondur.
- Aralık referanslarını iki farklı değişkene atayabilir ve aralık referansı yerine doğrudan değişken adını kullanabiliriz.
- Kesişen hücrenin arka plan rengini değiştirebiliriz.
- Kesişen hücrelerden satır ve sütun sayısını kaydırabiliriz.
- İçeriği temizleyebilir ve kesişen hücrelere biçimlendirme uygulayabiliriz.
Excel VBA Kesişim Fonksiyonu nasıl kullanılır?
VBA Intersect fonksiyonunun kullanımına dair adım adım bir yaklaşım göstereceğiz. Örneğe geçmeden önce, VBA Intersect fonksiyonunun sözdizimini anlayalım.
Sözdizimi

- Arg1 As Range: Bu argümanda, hücrelerin ilk kesişen aralığını veriyoruz. Bu zorunlu bir argümandır.
- Arg2 As Range: Burada, hücrelerin ikinci kesişen aralığını veriyoruz. Bu aynı zamanda zorunlu bir argümandır.
Diğer argümanlar isteğe bağlıdır. VBA Intersect fonksiyonuna 30'a kadar aralık verebiliriz.
Şimdi, VBA Intersect fonksiyonunu uygulamak için gereken basit adımları gösterelim. Girişte kullanılan verileri tekrar ele alalım.

C1:C16 ve A1 ila A8 olmak üzere iki aralığın kesişen hücre adresini almamız gerektiğini varsayalım. Aşağıda listelenen adımları izleyelim.
Adım 1: Makroya isim vererek alt prosedürü başlatın.

Adım 2: Kesişen hücre adresini bu değişkene depolayacağımız için String VBA veri türünde bir değişken tanımlayın.

Adım 3: Tanımlı değişkeni kullanın ve ona VBA Intersect fonksiyonunu atayın.

Adım 4: VBA RANGE nesnesini kullanarak ilk kesişen aralığı C1 ile C16 arasında belirtin .

Adım 5: İkinci kesişen aralık için aralığı A8 ila D8 olarak belirtin.

Adım 6: Şimdi, VBA Intersect fonksiyonunun parantezini kapatın ve fonksiyonla ilişkili tüm Özelliklere ve yöntemlere erişmek için bir nokta girin.

Adım 7: Gördüğümüz gibi, VBA Intersect fonksiyonuyla ilişkili tüm Özellikler ve yöntemlerin bir listesine sahibiz. Kesişen noktanın hücre adresini almamız gerektiğinden, adres özelliğini kullanalım.

Adım 8: Şimdi, değişkene atanan kesişen nokta hücre adresini bir mesaj kutusunda gösterelim. Aşağıda çalışma kitabınızda kopyalayıp kullanmanız için tam kod bulunmaktadır.
Sub VBA_Intersect_Ex()
Dim Intersect_Cell As String
Intersect_Cell = Intersect(Range(“C1:C16”), Range(“A8:D8”)).Address
MsgBox Intersect_Cell
End Sub
Kodu çalıştıralım. Verilen iki aralığın kesişen hücre adresini gösterir.

C1 ila C16 ve A8 ila D8 arasındaki iki aralığın kesişen hücre adresi C8 hücresidir.
Excel VBA Intersect'in örnekleri
Size çeşitli VBA Intersect fonksiyon örnekleri gösterelim. İlk örnekle başlayalım.
Örnek 1 – Değişkenlere Aralıklar Atama
Giriş örneğinde, VBA Intersect fonksiyonuna doğrudan iki farklı aralık girdik. Esnek yol, aralıkları değişkenlere atamak ve bu değişkenleri VBA Intersect fonksiyonu içinde kullanmaktır.
Bu örnek için aşağıdaki verileri kullanacağız.

Aşağıdaki koda bakın.

Kod Açıklaması:
Bölüm 1: VBA Intersect fonksiyonuna sağlanacak ilk hücre aralığını atamak için bir değişken tanımladık. Sonra, C1'den C16'ya kadar olan hücre aralığını tanımlanan değişkene atadık.
Bölüm 2: İkinci hücre aralığını VBA Intersect fonksiyonuna atamak için başka bir değişken tanımladık. Sonra, A8'den D8'e kadar olan hücre aralığını ikinci aralık değişkenine atadık.
Bölüm 3: Intersect'in içinde, aralık referanslarını tutan değişkenleri kullandık. Son olarak, kesişen hücreyi seçmek için "Select" yöntemini seçtik. Kodu çalıştırdığımızda, kesişen hücreyi seçecektir. Burada, VBA Intersect'in birden fazla aralığını kullanmadık.

Örnek 2 – Kesişen Hücrenin arka plan rengini değiştirin
Tüm örnekler için aynı veri aralığını kullanacağız. Bu sefer, kesişen hücrenin arka plan rengini değiştireceğiz.
Aşağıdaki koda bir bakalım.
Sub VBA_Intersect_Ex2()
'İlk aralığı atamak için bir değişken tanımlayın
Dim Rng1 As Range
'İlk aralığı bir değişkene ayarlayın
Set Rng1 = Range(“C1:C16”)
'İkinci aralığı atamak için başka bir değişken tanımlayın
Dim Rng2 As Range
'İlk aralığı bir değişkene ayarlayın
Set Rng2 = Range(“A8:D8”)
'Kesişen hücrenin arka plan rengini değiştirmek için VBA Intersect işlevini kullanın
Intersect(Rng1, Rng2).Interior.Color = vbBlue
End Sub
“ Intersect(Rng1, Rng2).Interior.Color = vbBlue ” satırı kesişen hücreye mavi rengini atar.
Kodu çalıştırın. Kesişen hücrenin arka plan rengini vbBlue olarak değiştirmelidir.

Görüldüğü gibi kesişen hücrelerin arka plan rengi maviye dönüşmüştür.
Örnek 3 – Kesişen Hücreden Uzak Hücreler
Ayrıca, VBA Intersect row and column kullanarak Excel'deki satır ve sütun sayısını kesişen hücreden kaydırabiliriz . Örneğin, kesişen hücrenin C8 olduğunu ve bu kesişen hücreden D12 hücresini seçmemiz gerekiyorsa, aşağıdaki kodu kullanabiliriz.
Sub VBA_Intersect_Ex3()
'İlk aralığı atamak için bir değişken tanımlayın
Dim Rng1 As Range
'İlk aralığı değişkene ayarlayın
Set Rng1 = Range(“C1:C16”)
'İkinci aralığı atamak için başka bir değişken tanımlayın
Dim Rng2 As Range
'İlk aralığı değişkene ayarlayın
Set Rng2 = Range(“A8:D8”)
'Kesişen hücreden 4 satır ve 1 sütunu kaydırmak için VBA Intersect işlevini kullanın
Intersect(Rng1, Rng2).Offset(4, 1).Select
End Sub
Bu kodu çalıştırdığımızda kesişen hücrenin dört satır aşağısında ve bir sütun sağında bulunan hücre seçilecektir.

Görüldüğü gibi, kesişen hücre C8'den dört satır aşağıda ve kesişen hücrenin 1 sütun sağında bulunan D8 hücresini seçmiş.
Örnek 4 – Kesişen Hücreden İçeriği Temizle
Bir diğer ilginç örnek ise kesişen hücreden içeriği temizleyebilmemizdir. Aşağıdaki kod kesişen hücreden içeriği temizleyecektir .
Intersect(Rng1, Rng2).ClearContents
Kesişen hücreden verileri silmek için VBA Intersect hedefinin “ClearContents” özelliğini kullandık.
Sub VBA_Intersect_Ex4()
'İlk aralığı atamak için bir değişken tanımlayın
Dim Rng1 As Range
'İlk aralığı bir değişkene ayarlayın
Set Rng1 = Range(“C1:C16”)
'İkinci aralığı atamak için başka bir değişken tanımlayın
Dim Rng2 As Range
'İlk aralığı bir değişkene ayarlayın
Set Rng2 = Range(“A8:D8”)
'İçeriği temizlemek için ofsetlemek üzere VBA Intersect işlevini kullanın
Intersect(Rng1, Rng2).ClearContents
End Sub
Bu kodu çalıştırdığımızda kesişen hücredeki içerik veya veri temizlenecektir.

Dikkat Edilmesi Gereken Önemli Noktalar
- VBA Intersect en az iki aralık gerektirir. Verilen iki aralık geçerli değilse, aralık dışı hatası verir.
- Eğer sonraki özellik veya metot düzgün bir şekilde eşleştirilmemişse hata almak isteriz.
- Kesişen hücrelerin arka plan rengini değiştirirken önceden tanımlanmış VBA renklerini kullanabiliriz veya VBA renk indeks kodlarını kullanabiliriz.
