VBA Sütun Ekleme, Excel'de VBA kullanarak çalışma sayfasına yeni sütunlar ekleme veya yerleştirme anlamına gelir. Veri işleme kapsamında, bazen birden fazla sütun eklemek gerekir. Sütun eklemek için Excel'de sağ tıklama ve Ekleme yöntemini kullanırız. Ancak, VBA'da görev daha karmaşıktır.
Bir Ekle komut kodu yazmalı ve sütunları önce, sola veya sağa VBA olarak eklemeye karar vermeliyiz. Örneğin, Excel'deki aşağıdaki verilere bakın.

A ve B sütunları arasına bir sütun eklememiz gerektiğini varsayalım. Bir sütun eklemek için aşağıdaki kodu kullanırız. VBA kodunu çalıştırdığımızda , aşağıda gösterildiği gibi A ve B arasına yeni bir sütun ekleyecektir.


- Ekleme metodu, var olan sütunu sağ tarafa iterek yeni bir sütun ekleyecektir.
- Sütuna, RANGE nesnesini ve COLUMNS özelliğini kullanarak başvurabiliriz.
- Döngüleri birbiri ardına kullanarak alternatif sütunlar ekleyebiliriz.
- Mantıksal IF koşulunu uygulayarak hücre değerine göre sütun ekleyebiliriz.
- Yeni bir sütun eklemek için bir hücreye başvurduğumuzda, yalnızca Insert metodu çalışmayacaktır. Bu nedenle, önce “EntireColumn” özelliğini, ardından Insert metodunu kullanmalıyız.
VBA kullanarak Excel Çalışma Sayfasına Sütun Nasıl Eklenir?
Excel VBA'da birden fazla yöntem kullanarak sütun ekleyebiliriz. Sütun eklemek için kullanılan yaygın yöntemler şunlardır.
- Columns Özelliği
- Range Nesnesi
- Cells Özelliği
Bir sütun eklemek için yukarıdaki yöntemlerden herhangi birini kullanabiliriz. Yukarıdaki yöntemlerden herhangi birini kullanmak gereksinime bağlıdır ve bunları birbirine alternatif olarak kullanabiliriz.
Bir sütun eklemenin adım adım yaklaşımını gösterelim. Örneğin, Excel'deki aşağıdaki verilere bakın.

B sütunundan sonra bir sütun eklememiz gerektiğini varsayalım. Aşağıdaki adımları izleyin.
- Makroya isim vererek bir alt rutin prosedürü oluşturun.

- B sütunundan sonra bir sütun eklememiz gerektiğinden C sütununa COLUMNS özelliğini kullanarak başvuralım.

- Sütuna başvurulduktan sonra I+ekleme yöntemini seçmek için bir nokta girin.

Noktayı girdiğimizde, COLUMNS özelliğiyle ilişkili özellikleri ve yöntemleri gösteren IntelliSense listesini görmüş olmamız gerekir. Ancak, COLUMNS özelliğini her kullandığımızda, herhangi bir IntelliSense listesi görmeyiz; bu da Excel VBA'da yeni başlayan biri için bir dezavantaj olacaktır.
Bu nedenle, IntelliSense listesini görmemizi sağlayan RANGE nesnesini kullanmak her zaman önerilir. - RANGE nesnesini kullanalım ve tüm sütuna başvuralım. RANGE nesnesiyle ilişkili özellikleri ve yöntemleri gösteren IntelliSense listesini görmek için bir nokta giriyoruz.

- Listeden Ekleme yöntemini seçin.

- Insert metodunu seçtikten sonra argümanlarını görebiliriz.

- Shift argümanı için “xlToRight” komutunu kullanmalıyız çünkü başvurulan “C” sütunu sağ tarafa taşınmalıdır.

Şimdi kodu çalıştıralım. Mevcut sütun “C”yi sağa iterek yeni bir sütun ekleyecektir.
VBA kullanarak Excel'de Sütun Ekleme Örnekleri
VBA Insert Columns metodunun farklı kullanım senaryolarını sizlere gösterelim.
Örnek 1 – VBA'da Aralık Nesnesini Kullanarak Sütun Ekleme
Önceki örnekte gördüğümüz gibi, VBA'da bir RANGE nesnesi kullandığımızda IntelliSense listesine erişiriz , bu da kodu oluşturmamıza yardımcı olur. Benzer şekilde, başka bir örneğe bakalım.

Mevcut sütun “E”den sonra bir sütun eklememiz gerektiğini varsayalım. Öncelikle yeni bir sütun eklemek istediğimizde sağa kaydırılacak sütuna referans vermeliyiz.
“E” sütunundan sonra yeni bir sütun eklediğimiz için “F” sütununa başvurmamız gerekir.

Sağa taşınacak sütun seçildikten sonra Insert metodunu seçmemiz gerekiyor.

VBA sütun ekleme yönteminin kaydırma bağımsız değişkeninin varsayılan değeri “xlToRight”tır.

Sub Insert_Column_Ex1()
Range(“F:F”).Insert xlToRight
End Sub
Kodu çalıştıralım. Mevcut "F" sütununu sağ tarafa iterek yeni bir sütun ekleyecektir.

Örnek 2 – Birden Fazla Sütun Ekleme
Ayrıca tek seferde birden fazla sütun ekleyebiliriz. Örneğin, önceki örnekteki aynı verileri kullanalım.

"B" sütunundan hemen sonra üç VBA ekleme sütunu eklememiz gerektiğini varsayalım. Bu nedenle, "B" sütunundan sonra üç sütuna, yani "C", "D" ve "E" sütunlarına başvurmamız gerekir.

Başlangıç ve bitiş sütunlarını verdik. “D” sütunu da bu referansa dahil edilmiştir. Şimdi, Ekleme yöntemini seçin.

Sub Ekle_Sütun_Ex2()
Range(“C:E”).Insert
End Sub
Bu kodu çalıştırdığımızda birden fazla sütun eklenmiş olacak.

Her üç sütun da sol sütundaki biçimlendirmeyi taşır, yani "B" sütunu.
Örnek 3 – VBA'da COLUMNS Özelliğini Kullanarak Sütun Ekleme
RANGE nesnesi yerine, sütun eklemek için VBA'da COLUMNS özelliğini kullanabiliriz . Daha önce tartışıldığı gibi, dezavantajlarından biri IntelliSense listesini göremememiz ve tamamen VBA becerilerine güvenmek zorunda olmamızdır.
"C" sütunundan sonra bir sütun eklememiz gerektiğini varsayalım. Burada, COLUMNS özelliğini kullandığımızda sütuna sayısal numarasıyla başvurmalıyız.

Sub Ekle_Sütun_Ex3()
Columns(3).Insert
End Sub
“C” sütunu sütunlar listesindeki üçüncü sütun olduğundan, ona sayısal 3 kullanarak başvurduk. Bu kodu çalıştırdığımızda, yeni sütunu ekleyeceğiz.

Yeni sütun 2. sütundan sonra eklenmiş ve mevcut 3. sütun 4. sütuna itilmiştir. VBA COLUMNS özelliğini kullanırken, bu özellik ile ilişkili özelliklerden ve yöntemlerden kesinlikle emin olmak önemlidir.
Örnek 4 – Alternatif Sütunları Ekle
Alternatif sütunlar eklememiz sık sık olmaz, ancak bazen buna ihtiyaç duyabiliriz. Bu nedenle, her alternatif sütundan sonra boş sütunlar ekleme tekniğini bilmek gerekir.
Örneğin aşağıdaki verilere bakalım.

Her alternatif sütundan sonra yeni bir sütun eklememiz gerektiğini varsayalım, yani aşağıda gösterildiği gibi.

Alternatif boş sütunlar eklemek için aşağıdaki kodu kullanabiliriz.

Sub Insert_Column_ex4()
'Toplam sütun sayısını bulmak için bir değişken tanımlayın
Dim LC As Long
'Toplam sütunları bulun
LC = Cells(1, Columns.Count).End(xlToLeft).Column
'Yeni bir sütun eklememiz gereken ilk sütunu seçin
Columns(2).Select
'Döngüyü atamak için bir değişken tanımlayın
Dim k As Long
'Döngüyü başlatın
For k = 2 To LC
'Etkin hücreden yeni bir sütun ekleyin
ActiveCell.EntireColumn.Insert
'Yeni bir sütun ekledikten sonra iki hücreyi sağa taşıyın
ActiveCell.Offset(0, 2).Select
Next k
End Sub
Bu kodu çalıştıralım ve çalışma sayfasında aşağıdaki sonucu elde edelim.

Görüldüğü gibi, alternatif sütunlar olarak yeni boş sütunlar elde ettik. Bu kod dinamiktir; mümkün olduğunca çok sütuna sahip olabiliriz. VBA'nın sola sütun eklemesi yerine, her sütundan sonra dinamik olarak boş sütunlar ekleyecektir.
Örnek 5 – Hücre Değerine Göre Sütun Ekleme
Bir sütun eklemek için bazı mantıksal koşullar uygulayabiliriz. Örneğin, hücre başlığı bir şeye eşitse yeni bir sütun ekleyebiliriz veya aksi takdirde bir sonraki sütuna geçebiliriz.
Örneğin Excel'deki aşağıdaki verilere bakalım.

Her 3 ayda bir çalışan bazında satış bilgilerimiz var. Üç ay sonra, tekrarlanan bir isim sütunumuz var ve bu okuyucular için sıkışık görünüyor.
İsimli bir sütun başlamadan önce boş bir sütun ekleyelim. Koşula göre bir sütun eklemek için aşağıdaki kodu kullanabiliriz.

Kodun Kısa Açıklaması
- Bölüm 1: Burada, son kullanılan sütunu bulmak için bir değişken tanımladık, böylece toplamda kaç sütunumuz olduğunu biliyoruz.
- Bölüm 2: Sütun numarasını başlatmak için bir değişken tanımladık. Başlangıçta 2 olarak ayarlandı, böylece döngü başladığında 2. sütundan başlayacak.
- Bölüm 3: FOR döngüsünde kullanılacak bir değişken tanımladık.
- Bölüm 4: Döngüyü başlattık. Döngünün içinde, geçerli döngü sütun başlığı değerinin “Ad”a eşit olup olmadığını kontrol etmek için bir IF mantıksal koşulu uyguladık. Eğer öyleyse, o geçerli döngü sütununa yeni bir sütun ekleyecek veya aksi takdirde IF koşulundan çıkacaktır.
Bu koşulda, döngü her çalıştığında sütun numarasını 1 artırmak için ai = i + 1 uyguladık. Kodu çalıştıralım ve bir çalışma sayfasında aşağıdaki sonucu görelim.

Görüldüğü gibi, "Ad" başlıklı sütuna sahip olduğumuz her yerde, o sütundan önce boş bir sütun görüyoruz.
