Excel VBA ile Sayfadaki Görselleri Temizleme Nasıl Yapılır?

Excel VBA ile Sayfadaki Görselleri Temizleme Nasıl Yapılır?
Excel VBA ile sayfadaki görselleri silin.

Herkese selamlar. Bir süre önce Excel VBA üzerine yazılar yazmaya başladım. Bu yazıların tamamına Excel etiketinden ulaşabilirsiniz. Gelecekteki yazılardan haberdar olmak için etiketin sayfasını yer imlerine eklemenizi ve ara ara ziyaret etmenizi tavsiye ederim. Epey eğlenceli şeyler yazacağım. İşim gereği çok eğlenerek ürettiğim makrolar var, faydalanmanızı dilerim. Bugün, Excel VBA ile sayfadaki görselleri temizlemeyi göstereceğim. Önceki yazımızdaki formatı yine takip edelim. Önce kodu vereyim, sonra kodun nasıl çalıştığını ve sayfadaki görselleri nasıl temizlediğini anlatayım, sonra da excel vba ile sayfadaki görselleri temizlemeyi ne amaçlarla kullanabileceğinize dair örnekler vereyim. 

Excel VBA ile Sayfadaki Görselleri Temizleme

Yöntem 1: En Kısa Yoldan VBA ile Görselleri Temizleme

Sub gorselleriSil()
ActiveSheet.Pictures.Delete
End Sub

Bu yöntem en kısa şekilde sayfadaki görselleri siler. Bir buton tanımlayıp, gorselleriSil() sub'unu makro olarak atadığınızda, o butona tıklandığı an tüm görseller silinir. ActiveSheet adı üstünde aktif çalışma sayfasını, Pictures o sayfadaki görselleri işaret eder. Delete komutu da silmeye yarar. Şimdi işi biraz daha kompleks hale getirelim.

Yöntem 2: Kullanıcıdan Aralık Alarak VBA ile Görselleri Temizleme

Sub gorselleriSil()
    Dim aralik As Range
    Dim sekil As Shape
    
    Set aralik = Application.InputBox(Prompt:="Lütfen görsellerin silineceği aralığı seçin", Type:=8)
    
    If Not aralik Is Nothing Then
        For Each sekil In ActiveSheet.Shapes
            If sekil.Type = msoPicture Then
                If Not Intersect(sekil.TopLeftCell, aralik) Is Nothing Then
                    sekil.Delete
                End If
            End If
        Next sekil
    End If
End Sub

Excel VBA ile sayfadaki görselleri temizleme makrosu bu şekilde. Peki bu makro nasıl çalışıyor? Ne yapıyor?

  • Önce gorselleriSil adında bir sub tanımladık.
  • Sonra aralık ve şekil değişkenlerimizi tanımladık. 
  • Aralığı kullanıcının girmesi için inputbox koyduk ve kullanıcıya seçim yaptırdık.
  • Aralık tanımlandıysa, şekilin türü de msoPicture türündeyse ve şekil seçilen aralıkta kalıyorsa şekli sildirdik.
Bu kodda sayfadaki tüm görselleri silmek yerine, sadece kullanıcının temizlemeye ihtiyaç duyduğu alandaki görselleri sildik.

Excel VBA ile Sayfadaki Görselleri Temizlemeye Neden İhtiyaç Duyarsınız?

Eğer elimizde büyük boyutlara sahip bir excel dosyamız varsa ve bu dosyanın içerisinde birden fazla görsel bulunuyorsa, bu görselleri silmeyi tercih edebilirsiniz. Ya da Excel sayfasındaki görselleri yeniden konumlandırmak istiyorsunuzdur, konumlama yapmadan önce tamamen temizleyip sonra yeniden ekleyebilirsiniz. Ya da sadece görsellerin sayfadaki duruşunu beğenmemiş olabilirsiniz vs.vs. Elimizde birden çok görsel içeren -özellikle aynı görselin üst üste defalarca yapıştırıldığı hallerde- bu makroyu kullanmak ciddi bir eziyetten kurtarıyor insanı.

Eğer excel sayfadaki görselleri temizleme makrosunda kendinize göre ilave geliştirmeler yaparsanız, ya da aklınıza başka şeyler gelirse; yorumlarda mutlaka paylaşın. Hem siz hem de daha sonra bu yazıya gelecek olan ziyaretçiler, faydalansın. Yorumlarda görüşmek üzere, hoşça kalın!

Color Palette Used: Brilliant Blues #005F73 (Dark Teal), #0A9396 (Teal), #94D2BD (Light Teal), #E9D8A6 (Beige), #EE9B00 (Orange) Narrative Plan: 1. Hook: Title showing the problem. 2. Problem Section: Illustrate pain points with KPIs. 3. Solution 1 (Simple): Show the one-liner code. 4. Solution 2 (Advanced): Explain the logic with a CSS-based flowchart. 5. Benefits (Why?): Compare manual vs. macro effort with a Bar Chart. 6. Performance Impact: Show file size reduction with Donut Charts. 7. Conclusion: Final encouraging words. Visualization Plan & Justification (NO SVG / NO MERMAID): - KPI Stats: Styled HTML text. Goal: Inform. Method: HTML/CSS. NO SVG. - Code Blocks: Styled HTML
 tag. Goal: Inform. Method: HTML/CSS. NO SVG.
        - Flow Chart: Structured HTML divs with Tailwind CSS. Goal: Organize. Method: HTML/CSS. NO SVG, NO MERMAID.
        - Time Saved Chart: Bar Chart. Goal: Compare. Library: Chart.js (Canvas). NO SVG.
        - File Size Chart: Donut Chart. Goal: Compare Composition. Library: Chart.js (Canvas). NO SVG.

        Confirmation: NEITHER Mermaid JS NOR SVG were used anywhere in this output.
    

Excel'de Görsel Kaosuna Son Verin

VBA Makroları ile sayfalarınızdaki onlarca resmi saniyeler içinde nasıl temizleyeceğinizi öğrenin.

Sorun: Kontrolden Çıkmış Görseller

🕒

Zaman Kaybı

Düzinelerce resmi tek tek seçip silmek, değerli zamanınızı boşa harcar.

💾

Şişen Dosya Boyutu

Gereksiz görseller, Excel dosyanızın boyutunu MB'larca artırarak yavaşlamasına neden olur.

🤯

Yönetim Zorluğu

Üst üste binmiş veya gizlenmiş resimleri bulup temizlemek neredeyse imkansızdır.

Yöntem 1: Hızlı ve Kesin Çözüm

Tek bir komutla aktif çalışma sayfasındaki tüm görselleri anında silebilirsiniz. Bu yöntem, sayfayı tamamen temizlemek istediğinizde idealdir.

Buton oluşturup bu makroyu atayarak işlemi tek tıkla halledebilirsiniz.

Sub gorselleriKompleSil() ActiveSheet.Pictures.Delete End Sub

Yöntem 2: Akıllı ve Hedef Odaklı Temizlik

Sadece belirli bir alandaki görselleri silmek için kullanıcıdan aralık seçmesini isteyen gelişmiş makro.

BAŞLAT
Kullanıcı makroyu çalıştırır.
1. Aralık Seçimi
Ekrana gelen kutucuk ile kullanıcıdan bir alan seçmesi istenir.
2. Döngü Başlangıcı
Sayfadaki her bir 'Şekil' için döngü başlar.
3. Kontrol
Şeklin türü 'Resim' mi? Sol üst köşesi seçilen alanda mı?
4. Eylem
Eğer tüm koşullar doğruysa, resim silinir. Değilse, döngü devam eder.
BİTİR
Tüm şekiller kontrol edildiğinde makro biter.

Neden Otomatikleştirmelisiniz?

Görsel Sayısına Göre Harcanan Zaman

Grafikte de görüldüğü gibi, görsel sayısı arttıkça manuel silme işlemi için harcanan zaman katlanarak artar. VBA makrosu ise görsel sayısından bağımsız olarak işi saniyeler içinde tamamlar.

Bu otomasyon, sadece zaman kazandırmakla kalmaz, aynı zamanda insan hatası riskini de ortadan kaldırır.

Performans Etkisi: Önce ve Sonra

Makro Öncesi Dosya Boyutu

Makro Sonrası Dosya Boyutu

Görselleri temizlemek, dosya boyutunu %50'den fazla azaltarak Excel'in daha hızlı çalışmasını ve dosyanın daha kolay paylaşılmasını sağlar.

Kendi makrolarınızı geliştirerek verimliliğinizi artırın. Yaratıcılığınızın sınırı yok!

Daha yeni Daha eski

İletişim Formu