![]() |
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.DeleteEnd 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 RangeDim sekil As ShapeSet aralik = Application.InputBox(Prompt:="Lütfen görsellerin silineceği aralığı seçin", Type:=8)If Not aralik Is Nothing ThenFor Each sekil In ActiveSheet.ShapesIf sekil.Type = msoPicture ThenIf Not Intersect(sekil.TopLeftCell, aralik) Is Nothing Thensekil.DeleteEnd IfEnd IfNext sekilEnd IfEnd 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.
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!
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.
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.
Kullanıcı makroyu çalıştırır.
Ekrana gelen kutucuk ile kullanıcıdan bir alan seçmesi istenir.
Sayfadaki her bir 'Şekil' için döngü başlar.
Şeklin türü 'Resim' mi? Sol üst köşesi seçilen alanda mı?
Eğer tüm koşullar doğruysa, resim silinir. Değilse, döngü devam eder.
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.