Excel VBA Hide Columns, VBA koduyla bir Microsoft Excel çalışma sayfasında belirli bir sütunu/sütunları gizlemenize olanak tanıyan bir özelliktir. Bu özellik, görevleri otomatikleştirmek, verileri düzenlemek veya sütunların görünürlüğünü belirli koşullara göre özelleştirmek için kullanışlıdır. Sütunları gizleyerek, çalışma sayfalarınızı daha kullanıcı dostu hale getirebilir ve yalnızca analizinizle veya sunumunuzla ilgili bilgileri görüntüleyebilirsiniz.
Bir örneğe bakalım. Burada, basit bir amacı olan HideColumnByIndex adında bir alt rutinimiz var: belirli bir sütunu gizlemek.

Hedef sütun, 2 dizinine karşılık gelen B sütunudur. Kod, çalışma sayfasındaki tüm sütunları temsil eden Columns özelliğini kullanır ve parantez içinde B sütununu dizinine göre kesin olarak tanımlar. Kod, B sütununu gizleme görevini “.Hidden” özelliğini True olarak ayarlayarak gerçekleştirir.

Bu VBA makrosunu çalıştırdığınızda Excel çalışma sayfasındaki B sütunu görünümden gizlenir.

- VBA Sütunları Gizle, Columns nesnesinin .Hidden özelliğini kullanarak sütunları gizlemenize olanak tanır.
- VBA Sütun Numaralarını Kullanarak Sütunları Gizle özelliğiyle, sütun numaralarını belirterek sütunları doğrudan gizleyebilirsiniz ve bu sayede Excel çalışma sayfanızdaki veri görünürlüğünü özelleştirmek için basit bir yöntem sunar.
- Excel'de özelleştirilmiş ölçütlere göre sütunları gizlemek için VBA Ölçütlere Göre Sütunları Gizle yöntemini kullanabilir, böylece çalışma sayfanızda esnek veri sunumu ve analizi yapabilirsiniz.
- VBA aracılığıyla otomasyon, belirli ölçütlere göre sütunları seçici olarak gizleyerek veya göstererek Excel çalışma sayfalarınızın organizasyonunu ve kullanılabilirliğini artırabilir.
Sözdizimi
Temel söz dizimi şöyledir:
Columns(ColumnIndex).Hidden = True
| Terim | Tanım |
|---|---|
| Columns | Bu özellik çalışma sayfasındaki tüm sütunları temsil eder. |
| ColumnIndex | Bunu gizlemek istediğiniz sütunun indeksi veya numarasıyla değiştirin. |
| .Hidden | Bu özellik, sütunun gizli olup olmadığını belirler (gizlemek için True olarak ayarlayın). |
VBA'da Sütunlar Nasıl Gizlenir?
VBA'da sütunları gizlemek, Columns özelliğini ve “.Hidden” özelliğini kullanmayı içerir. İşte VBA Hide columns'un nasıl kullanılacağına dair adım adım bir kılavuz.
Adım 1: Excel'i açın ve VBA düzenleyicisini açmak için ALT + F11 tuşlarına basın.

Adım 2: Menüde “Ekle”ye tıklayıp “Modül”ü seçerek yeni bir modül ekleyin.

Adım 3: İstenilen sütunları gizlemek için bir VBA alt programı (kod bloğu) yazın.
Adım 4: Gereksinimlerinize göre hangi sütunların gizleneceğini belirtmek için VBA kodunuzu özelleştirin . Tek bir sütunu veya birden fazla sütunu gizleyebilir veya sütunları dinamik olarak gizlemek için koşullar uygulayabilirsiniz.
Adım 5: Kodu yürütmek ve belirtilen sütunları gizlemek için VBA makrosunu çalıştırın. Makroyu VBA düzenleyicisi aracılığıyla veya Excel çalışma sayfanızdaki bir düğmeye veya olaya atayarak tetikleyebilirsiniz.
Adım 6: Gizli bir sütunu göstermek için aynı sözdizimini kullanın ancak .Hidden öğesini False olarak ayarlayın . Bu, gizli sütunu tekrar görünür hale getirecektir.
Columns(ColumnIndex).Hidden = False
Örnekler
Örnek 1 – Aralık Nesnesini kullanarak gizle:
Bu örnekte amacımız Excel çalışma sayfamızdaki belirli bir sütunu, yani C sütununu, 'C:C' Aralık nesnesini kullanarak gizlemektir.

Adım 1: Yeni modülde, HideColumnByRange adında bir VBA alt rutini oluşturarak başlıyoruz.

Adım 2: Alt rutin içerisinde, Columns özelliğini kullanarak çalışma sayfasındaki tüm sütunlara erişiyoruz.

Adım 3: Hangi sütunun gizleneceğini belirtmek için çift tırnak işareti içinde "C:C" Aralık nesnesini kullanırız. VBA'daki bu Aralık nesnesi, C sütunundaki hücrelerin tam aralığını tanımlar. Bunu çift tırnak işareti içine alarak Excel'e tüm C sütunuyla çalışmak istediğimizi bildiririz.

Adım 4: Son olarak, seçili sütunun .Hidden özelliğini True olarak ayarlıyoruz . Bu eylem, tüm sütun C'yi görünümden gizler.

Adım 5: Şimdi makroyu kaydedin ve Çalıştır'a tıklayın. Bu makroyu çalıştırdığınızda, Excel çalışma sayfanızdaki C sütununun gizlendiğini ve artık görünür olmadığını göreceksiniz.

İşte tam kod:
Sub HideColumnByRange()
' Sütunu gizle C
Columns(“C:C”).Hidden = True
End Sub
Örnek 2 – Sütunlar Özelliğini kullanarak gizle
Bu örnekte, çalışma sayfamızdaki belirli bir sütunu, yani B sütununu (ikinci sütun) gizlemeyi amaçlıyoruz.
Adım 1: HideColumnByProperty adında bir VBA alt rutini oluşturarak başlıyoruz .

Adım 2 : Alt rutin içerisinde yine sütunlarla çalışmak için Columns özelliğini kullanıyoruz.

Adım 3 : Sütunu adıyla belirtmek yerine, doğrudan sütunun indeksini belirtiyoruz; B sütunu için bu indeks 2'dir.

Adım 4: Önceki örnekte olduğu gibi .Hidden özelliğini True olarak ayarlıyoruz.

Adım 5: Bu makroyu çalıştırdığınızda çalışma sayfanızdaki B sütunu (ikinci sütun) gizlenir.

İşte tam kod:
Sub HideColumnByProperty()
' İndeks 2 olan sütunu gizle (B)
Columns(2).Hidden = True
End Sub
Örnek 3 – Birden Fazla Sütunu Gizle:
Bu durumda amacımız belirli bir sütun aralığını, özellikle D'den G'ye kadar olan sütunları gizlemektir.

Adım 1: HideMultipleColumns adında bir VBA alt rutini başlatıyoruz.

Adım 2: Bu alt rutin içerisinde VBA'daki Columns özelliğini bir kez daha kullanacağız .

Adım 3: Gizlemek istediğimiz sütun aralığını belirtmek için, bunların referanslarını çift tırnak içinde, "D:G" olarak veriyoruz.

Adım 4: .Hidden özelliğini True olarak ayarlayarak, D ile G aralığındaki tüm sütunları etkili bir şekilde gizleriz.

Adım 5: Bu makroyu çalıştırdığınızda D, E, F ve G sütunlarının görünümden gizlendiğini göreceksiniz.

İşte tam kod:
Sub HideMultipleColumns()
' D'den G'ye kadar olan sütunları gizle Sütunlar
(“D:G”).Hidden = True
End Sub
Örnek 4 – Tek Hücreli Sütunları Gizle:
Bu örnekte amacımız, tek bir hücrenin (E1) içeriğine dayanarak bir sütunu (bu durumda sütun E) gizlemektir.

Adım 1: HideColumnWithSingleCell adında bir VBA alt rutini oluşturuyoruz.

Adım 2 : Alt rutin içerisinde, E1 hücresinin boş olup olmadığını kontrol etmek için IsEmpty fonksiyonunu kullanıyoruz.

Adım 3 : Eğer E1 hücresi gerçekten boşsa koşullu bloğa geçiyoruz.
Adım 4: Koşullu blok içerisinde, E sütununu gizlemek için Columns özelliğini kullanıyoruz.

Adım 5: Bu makroyu çalıştırdığınızda, E1'in veri içerip içermediği incelenir; boşsa, E sütunu gizlenir. Aksi takdirde, görünür kalır.

İşte tam kod:
Sub HideColumnWithSingleCell()
' E1 hücresi boşsa E sütununu gizle
If IsEmpty(Range(“E1”)) Then
Columns(“E:E”).Hidden = True
En If
End Sub
Örnek 5 – Her Alternatif Sütunu Gizle:
Bu örnek, B sütunundan başlayarak her diğer sütunun nasıl gizleneceğini göstermektedir. Aşağıda, bir çalışma sayfasında bazı veriler bulunmaktadır.

Adım 1: HideAlternativeColumns adında bir VBA alt rutini oluşturuyoruz.

Adım 2: Alt rutin içerisinde “col”u bir tamsayı olarak tanımlıyoruz ve sütun dizinleri arasında yineleme yapmak için col adlı bir döngü değişkeni tanımlıyoruz.

Adım 3: Döngü 2. indekste (B sütununa karşılık gelir) başlar ve her yinelemede 2'şer artar. Etkili bir şekilde her ikinci sütunu hedefler.

Adım 4: Döngünün her yinelemesinde, col değişkeni tarafından belirtilen sütunu gizlemek için Columns özelliğini kullanırız.

Adım 5: Bu makroyu çalıştırdığınızda B, D, F vb. sütunlar gizlenecek ve diğer tüm sütunlar gizlenecektir.

İşte tam kod:
Sub HideAlternativeColumns()
Dim col As Integer
‘ Loop through columns and hide every other column starting from column B
For col = 2 To Columns.Count Step 2
Columns(col).Hidden = True
Next col
End Sub
Örnek 6 – Her Boş Sütunu Gizle
Bu örnek, yalnızca boş hücreler içeren sütunların nasıl gizleneceğini gösterir. Bu örnekte, K sütunu ve N'den sonraki her sütun boştur.

Adım 1: HideEmptyColumns adında bir VBA alt rutini oluşturuyoruz.

Adım 2: Alt rutin içerisinde, sütun dizinleri arasında yineleme yapmak için col döngü değişkenini kullanırız .

Adım 3: Döngü 1. indeksten başlar ve tüm sütunları kapsar. Burada Columns.Count sütunların sayısını bulur.

Adım 4 : Döngünün her yinelemesinde, geçerli sütundaki (Columns(col)) boş olmayan hücreleri saymak için WorksheetFunction.CountA işlevini kullanırız.

Adım 5 : Sayım 0 ise (yani tüm hücreler boşsa), o sütunu gizlemek için Columns özelliğini kullanırız.

Adım 6: Bu makroyu çalıştırmak, veri içermeyen tüm sütunları gizler. Bu örnekte, K sütununun ve N'den sonraki her sütunun, herhangi bir veri içermediği için gizlendiğini görebilirsiniz.

İşte tam kod :
Sub HideEmptyColumns()
Dim col As Integer
' Sütunlar arasında döngü yap ve sütundaki tüm hücreler boşsa gizle
For col = 1 To Columns.Count
If WorksheetFunction.CountA(Columns(col)) = 0 Then
Columns(col).Hidden = True
End If
Next col
End Sub
Örnek #7 – Hücre Değerine Göre Sütunları Gizle
Bu örnekte amacımız ilk satırdaki belirli hücre değerlerine göre sütunları gizlemektir.

Adım 1: HideColumnsBasedOnCellValue adlı bir VBA alt rutini oluşturuyoruz. Ve hücreyi aralık olarak bildiriyoruz.

Adım 2: Bu alt rutin içerisinde, ilk satırdaki hücreler arasında yineleme yapmak için For Each döngüsünü kullanırız.

Adım 3: Döngüde karşılaşılan her hücre için değerini kontrol ediyoruz.
Adım 4: Hücrenin değeri “Gizle” değerine eşitse koşullu bloğa giriyoruz.

Adım 5: Koşullu bloğun içerisinde, hücreye karşılık gelen tüm sütuna erişmek için EntireColumn'ı kullanırız ve .Hidden özelliğini True olarak ayarlarız.

Adım 6: Bu makroyu çalıştırdığınızda, ilk satırdaki ilgili hücrenin “Gizle” değerini içerip içermediğine bağlı olarak sütunları gizler.

İşte tam kod:
Sub HideColumnsBasedOnCellValue()
Dim cell As Range
‘ 1. satırdaki hücreler arasında döngü kur ve hücre değerine göre sütunları gizle
For Each cell In Range(“1:1”)
If cell.Value = “Hide” Then
cell.EntireColumn.Hidden = True
End If
Next cell
End Sub
Dikkat Edilmesi Gereken Önemli Noktalar
- Gizli bir sütunu göstermek için .Hidden özelliğini False olarak ayarlayabilirsiniz.
- VBA Sütun Numaralarını Kullanarak Sütunları Gizle'yi kullanarak, sütun numaralarını belirterek doğrudan sütunları gizleyebilir ve Excel çalışma sayfanızdaki veri görünürlüğünü kontrol etmenin basit ve kesin bir yolunu sağlayabilirsiniz.
- Çalışma sayfanızdaki veri görünürlüğü üzerinde dinamik kontrol sağlamak için, Excel'deki sütunları belirli hücre değerlerine göre gizlemek üzere VBA Hücre Değerine Göre Sütunları Gizle yöntemini kullanabilirsiniz.
