Excel'de belirtilen hücre değerine göre şeklin boyutunu otomatik olarak nasıl ayarlarım?
Excel'de daireler, dikdörtgenler veya özel grafikler gibi şekiller, görsel zenginleştirme, pano oluşturma veya veri görselleştirme amacıyla sıkça kullanılır. Bazen bir şeklin boyutunun belirli bir hücredeki değeri dinamik olarak yansıtmasını isteyebilirsiniz—örneğin ilerleme göstergeleri oluşturmak, görsel durum panoları tasarlamak ya da raporlarınızı daha etkileşimli ve sezgisel hale getirmek için. Ancak Excel, şeklin boyutunu hücre içeriğine otomatik olarak bağlayan doğrudan bir yerleşik özelliğe sahip değildir. Bu makale, belirtilen bir hücrenin değerine göre şekillerin boyutunu otomatik olarak ayarlamak için pratik yöntemler sunar ve böylece Excel projelerinizi daha dinamik ve görsel olarak anlamlı hale getirmenize yardımcı olur.
Belirtilen hücre değerine göre şeklin boyutunu VBA koduyla otomatik olarak değiştirme
Bir şeklin, belirli bir hücreye girilen değere göre otomatik olarak boyutunu ayarlamasını sağlamak için VBA makrosundan yararlanabilirsiniz. Bu yöntem, pano öğelerinizi otomatikleştirmek veya verilerdeki değişiklikleri her şekli manuel olarak ayarlamadan görsel olarak vurgulamak istediğinizde özellikle etkilidir. Aşağıdaki VBA kodu, çalışma sayfanızdaki bir şeklin boyutunu bir hücre değerine bağlar.

Office Tab
Word, Excel, PowerPoint ve daha fazlası için sekme tabanlı gezinme—tıpkı bir web tarayıcısında olduğu gibi, tek pencerede sorunsuzca geçiş yapın.
Lütfen aşağıdaki adımları izleyin:
1. Yeniden boyutlandırmak istediğiniz şekli içeren sayfa sekmesine sağ tıklayın ve bağlam menüsünden Kodu Görüntüle seçeneğini seçin. Bu işlem, ilgili çalışma sayfasının kod düzenleyici penceresini açar.
2. Microsoft Visual Basic for Applications penceresinde, aşağıdaki VBA kodunu Kod penceresine kopyalayıp yapıştırın. Kodu, şeklinizin bulunduğu çalışma sayfasının kod sayfasına yapıştırdığınızdan emin olun.
VBA kodu: Excel'de belirtilen hücre değerine göre şeklin boyutunu otomatik olarak değiştirme
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Row = 2 And Target.Column = 1 Then
Call SizeCircle("Oval 2", Val(Target.Value))
End If
End Sub
Sub SizeCircle(Name As String, Diameter)
Dim xCenterX As Single
Dim xCenterY As Single
Dim xCircle As Shape
Dim xDiameter As Single
On Error GoTo ExitSub
xDiameter = Diameter
If xDiameter > 10 Then xDiameter = 10
If xDiameter < 1 Then xDiameter = 1
Set xCircle = ActiveSheet.Shapes(Name)
With xCircle
xCenterX = .Left + (.Width / 2)
xCenterY = .Top + (.Height / 2)
.Width = Application.CentimetersToPoints(xDiameter)
.Height = Application.CentimetersToPoints(xDiameter)
.Left = xCenterX - (.Width / 2)
.Top = xCenterY - (.Height / 2)
End With
ExitSub:
End Sub Açıklama ve önlemler:
- Bu kodda, "Oval 2", yeniden boyutlandırmak istediğiniz şeklin adını belirtir. Bu adın, Seçim Bölmesi’nde gösterilen adla tam olarak eşleştiğinden emin olun (Giriş > Bul ve Seç > Seçim Bölmesi).
- Kod, yalnızca A2 hücresine (Satır 2, Sütun 1) özel bir değişiklik yapıldığında tetiklenir. Farklı bir hücre kullanmak istiyorsanız, lütfen bu değerleri buna göre güncelleyin.
- Şeklin boyutu, çapı santimetre cinsinden belirten hücre değerine göre ayarlanır. Aşırı boyutlandırmayı önlemek için kod, üst sınırı 10 cm ve alt sınırı 1 cm olarak tanımlar.
- Bu aralığın dışına (1'den küçük veya 10'dan büyük) bir değer girerseniz, şekil en yakın sınıra göre otomatik olarak yeniden boyutlandırılır.
- Belirtilen şekil adı bulunamadığında veya değer sayısal değilse, kod hata mesajı vermeden işlemi yoksayar.
Değere göre birden fazla şeklin farklı hücrelerde otomatik olarak yeniden boyutlandırılması gereken senaryolarda (örneğin, bir dizi görsel gösterge veya ölçüm aracı oluştururken), aşağıdaki VBA çözümünü genişletebilirsiniz.
VBA kodu: Excel'de farklı belirtilen hücrelerin değerlerine göre birden fazla şekli otomatik olarak yeniden boyutlandırma
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xAddress As String
On Error Resume Next
If Target.CountLarge = 1 Then
xAddress = Target.Address(0, 0)
If xAddress = "A1" Then
Call SizeCircle("Oval 1", Val(Target.Value))
ElseIf xAddress = "A2" Then
Call SizeCircle("Smiley Face 3", Val(Target.Value))
ElseIf xAddress = "A3" Then
Call SizeCircle("Heart 2", Val(Target.Value))
End If
End If
End Sub
Sub SizeCircle(Name As String, Diameter)
Dim xCenterX As Single
Dim xCenterY As Single
Dim xCircle As Shape
Dim xDiameter As Single
On Error GoTo ExitSub
xDiameter = Diameter
If xDiameter > 10 Then xDiameter = 10
If xDiameter < 1 Then xDiameter = 1
Set xCircle = ActiveSheet.Shapes(Name)
With xCircle
xCenterX = .Left + (.Width / 2)
xCenterY = .Top + (.Height / 2)
.Width = Application.CentimetersToPoints(xDiameter)
.Height = Application.CentimetersToPoints(xDiameter)
.Left = xCenterX - (.Width / 2)
.Top = xCenterY - (.Height / 2)
End With
ExitSub:
End Sub Önemli notlar ve kullanım ipuçları:
If...ElseIfbölümüne End Iföncesine benzer satırlar eklemeniz yeterlidir. Gerekli hücre adresini ve şekil adını doğru şekilde girin.3. Kodu değiştirdikten ve kaydettikten sonra, çalışma sayfanıza dönmek için Alt+Q tuşlarına basarak Microsoft Visual Basic for Applications penceresini kapatın.
Artık A2 hücresindeki değeri değiştirdiğinizde, belirtilen "Oval2" şekli gerçek zamanlı olarak otomatik olarak yeniden boyutlanacak. Ekran görüntüsüne göz atın:

Benzer şekilde, A1, A2 veya A3 hücrelerindeki değerleri güncellediğinizde, "Oval 1", "Smiley Face 3" ve "Heart 2" şekilleri bağlı oldukları hücrelere göre anında boyutlarını otomatik olarak ayarlar. Aşağıdaki örneğe göz atın:

Ek hatırlatmalar:
- Yeniden boyutlandırma yalnızca belirtilen hücrelerdeki değerler değiştiğinde devreye girer. Şekli elle taşıyarak veya değiştirerek referans noktasını bozarsanız, şeklin konumunu sıfırlamanız gerekebilir.
- Yalnızca sayısal değerler beklenen şekilde çalışır. Boş hücreler ya da metin girdileri, şeklin minimum boyuta inmesine veya doğru şekilde ayarlanmamasına neden olabilir.
- VBA çözümleri makro izinleri gerektirir; bu nedenle Excel ortamınızda makroların etkin olduğundan emin olun.
Not: Hücre değeri 10'u (maksimum şekil boyutu 10 cm olarak ayarlı) aştığında, şekil boyutu artmaya devam etmez. Benzer şekilde, 1'den küçük değerler minimum boyut olan 1 cm'ye yuvarlanır.
Sorun Giderme İpuçları: Yeniden boyutlandırma beklenen şekilde çalışmıyorsa, şekil adlarının ve hücre referanslarının tam olarak eşleştiğini, makroların etkin olduğunu ve çalışma sayfasında koruma kısıtlaması bulunmadığını tekrar kontrol edin. Çalışma zamanı hatası alırsanız, belirtilen şekillerin etkin çalışma sayfasında bulunduğundan ve adlarının doğru yazıldığından emin olun.
Özet öneri:VBA yöntemi, dinamik ve gerçek zamanlı yeniden boyutlandırma sağlar; etkileşimli panolar ile veri odaklı raporlar için idealdir. Ancak şekil adlandırması, VBA ortamının anlaşılması ve kodun korunabilmesi için çalışma kitabının makro etkin bir dosya ().xlsm) olarak kaydedilmesini gerektirir. Bu yöntem, otomasyonun gerekli olduğu ve çalışma kitabında makro işlevlerinin kabul edilebilir olduğu durumlar için uygundur.
Referansa göre manuel şekil yeniden boyutlandırma
Şekil boyutlarını yalnızca ara sıra ayarlamanız gerekiyorsa veya makro kullanmadan daha basit bir yöntem tercih ediyorsanız, şekil boyutunu gerektiğinde hücre değerine uyacak şekilde manuel olarak ayarlayabilirsiniz. Bu yaklaşım, otomasyonun kritik olmadığı ya da makro kullanımının kısıtlandığı senaryolar için idealdir.
Yeniden boyutlandırmak istediğiniz şekle tıklayın, ardından Şekli Biçimlendir bölmesinde (şekle sağ tıklayın > Boyut ve Özellikler) genişlik ve yükseklik değerlerini manuel olarak girin. Bu alanlara hücre değerlerinden de referans verebilirsiniz. Otomatik olmasa da bu yöntem, tek seferlik ayarlamalar için basit ve etkilidir.
İpucu: Bu yaklaşımda, şekil ile hücre arasında bağlantı olmadığı için hücre değerleri değiştiğinde şekil boyutunu manuel olarak güncellemeniz gerekir. Bu yöntem, makrolardan kaynaklanan güvenlik uyarılarından kaçınmanıza olanak tanır; ancak gerçek zamanlı görsel güncellemeleri desteklemez.
Geçerli Excel çalışma kitabı içindeki tüm şekilleri listele ve dışa aktar:
Grafik Dışa Aktar yardımcı programıyla, Kutools for Excel sayesinde Geçerli Çalışma Kitabı’ndaki tüm şekilleri anında listeleyebilir ve aşağıdaki ekran görüntüsünde gösterildiği gibi hepsini aynı anda belirttiğiniz klasöre aktarabilirsiniz. Hemen indirip deneyin! (30 günlük ücretsiz deneme)Download and try it now! (30-day free trial)

İlgili makaleler:
- Excel'de belirli bir şekle üzerine gelindiğinde nasıl ipucu eklenir?
- Excel'de bir şekli saydam arka plan rengiyle nasıl doldurabilirim?
- Excel'de belirli bir hücre değerine göre bir şekli nasıl gizleyebilir veya gösterebilirim?
En İyi Office Üretkenlik Araçları
Excel becerilerinizi Kutools for Excel ile geliştirin ve verimlilikte hiç yaşamadığınız bir deneyim yaşayın.Kutools for Excel, üretkenliği artırmak ve Zamanı Kaydet için 300’den fazla gelişmiş özelliğe sahiptir.İhtiyacınız olan özelliği hemen edinmek için buraya tıklayın…
Office Tab, Office uygulamalarına sekmeli bir arayüz kazandırarak işlerinizi çok daha kolay hale getirir.
- Word, Excel, PowerPoint, Publisher, Access, Visio ve Project'te sekmeli düzenleme ve okuma özelliğini etkinleştirin.
- Belgeleri yeni pencerelerde değil, aynı pencerenin yeni sekmelerinde açıp oluşturun.
- Günlük üretkenliğinizi %50 artırır ve her gün yüzlerce fare tıklamasından tasarruf etmenizi sağlar!
Tüm Kutools eklentileri — tek bir kurulum dosyasında!
Kutools for Office paketi, Excel, Word, Outlook ve PowerPoint eklentilerini ve ayrıca Office Tab Pro’yu içeren kapsamlı bir çözümdür; Office uygulamalarında çalışan ekipler için idealdir.
- Hepsi bir arada paket— Excel, Word, Outlook ve PowerPoint eklentileri + Office Tab Pro
- Tek kurulum, tek lisans— birkaç dakikada hazır (MSI uyumlu)
- Birlikte daha iyi çalışır— Office uygulamalarında akıcı üretkenlik
- 30 günlük tam özellikli deneme— kayıt gerekmez, kredi kartı gerekmez
- En iyi fiyat performans— ayrı ayrı eklenti satın almaya göre tasarruf sağlar