Sayfadaki resimlerin boyutunu öğrenmek

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,154
Excel Vers. ve Dili
Office 2013 İngilizce
Merhabalar,

Ekli dosya içerinde iki farklı onay kutusu resimi var, biri onaysız, diğeri onaylı
bu resimleri biribirinden ayırt etmek için aklıma gelen ilk yöntem boyutlarını (KB) öğrenmek,

aşağıdaki kodla resim isimlerini öğrenebiliyoruz, boyutlarını nasıl alabiliriz
Kod:
Sub ShpName_1()

    Dim shp As Shape
    i = 2
    For Each shp In ActiveSheet.Shapes
        
        If shp.Name Like "Picture*" Then
        
         Cells(i, 5) = shp.Name
        i = i + 1
        End If
        
    Next shp

End Sub
iyi çalışmalar.
 

Ekli dosyalar

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,748
Excel Vers. ve Dili
Excel 2019 Türkçe
Kod:
MsgBox ActiveSheet.Shapes(1).Height'Yükseklik
MsgBox ActiveSheet.Shapes(1).Width'Genişlik
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,154
Excel Vers. ve Dili
Office 2013 İngilizce
Kod:
MsgBox ActiveSheet.Shapes(1).Height'Yükseklik
MsgBox ActiveSheet.Shapes(1).Width'Genişlik
Sn HamitCan verdiğiniz kodda her iki resimde de aynı değerleri alıyorum,

ben tikli ve boş onay kutularını bir şekilde ayırt etmek istiyorum, yani farklı değerleri alabileceğim bir yöntem bulmam gerekli.

benim aklıma gelen yöntem resimin dosya boyutu oldu, çünkü birinin içi dolu olduğu için byte değeri yüksek çıkar diye düşündüm.


teşekkürler, iyi çalışmalar.
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
Excel Vers. ve Dili
Office 2010 & 2013 tr
Sn tamer,
Resimlerde çakışmayacak en garanti özellik resmin ismidir. Resimlerin isimlerini karşılaştırarak işlem yapın.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,154
Excel Vers. ve Dili
Office 2013 İngilizce
Sn tamer,
Resimlerde çakışmayacak en garanti özellik resmin ismidir. Resimlerin isimlerini karşılaştırarak işlem yapın.
Sn Hocam resimin ismi benim işimi görmüyor; eğer isime göre işlem yapabilseydim zaten soru sormama gerek kalmazdı...
iyi çalışmalar.
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,748
Excel Vers. ve Dili
Excel 2019 Türkçe
Onaylı olup olmadığı işinizi görür mü ?
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
Excel Vers. ve Dili
Office 2010 & 2013 tr
Sn Hocam resimin ismi benim işimi görmüyor; eğer isime göre işlem yapabilseydim zaten soru sormama gerek kalmazdı...
iyi çalışmalar.
Sorunuzu tam okumamışım, biraz dikkatsiz davrandım. Yoksa zaten elinizde olan bir yöntemi dayatma gibi bir amacım yok, yanlış anlaşılmasın.

Sorunuzu baştan sona dikkatlice okuyunca ve dosyanızdaki resimleri inceleyince durum kafamda şekillendi.
Sanırım dosyanızdaki seçenek kutuları excelin yerleşik nesneleriyle oluşturulmamış, dolayısıyla işaretleyip işareti kaldırma gibi bir imkanımız olmuyor.

Excel dosyasındaki bir resmin doğrudan boyutunu öğrenebiliyor muyuz bilmiyorum. Şimdiye kadar rastlamadım. Ama dolaylı yollardan bunu yapmak mümkün. Aşağıdaki şekilde bir yöntem geliştirdim. Sanırım ihtiyacınızı karşılayacaktır. Yalnız dikkat etmeniz gereken husus, boyutu etkileyen bir çok hususun olmasıdır. Çözünürlük, hacim gibi öğeler boyutta değişkenliğe sebep olacaktır. Yani resmin durumuna göre işaretli görünen resim diğerine göre kb bazında daha büyük olabileceği gibi bunun tam tersinin olması da mümkündür.

Bununla birlikte bu işlemle nasıl bir sonuca ulaşmak istediğinizi belirtirseniz farklı alternatifler de sunabiliriz.

Kod:
Sub ShpName_1()
Dim resim As ChartObject
Application.ScreenUpdating = False
For Each shp In ActiveSheet.Shapes
Say = Say + 1
Set resim = ActiveSheet.ChartObjects.Add(0, 0, ActiveSheet.Shapes(1).Width, ActiveSheet.Shapes(1).Height)
shp.Copy
With resim
    .Chart.Paste
    .Chart.ChartArea.Border.LineStyle = 0
     yol = ThisWorkbook.Path & "\nesne" & ".jpg"
    .Chart.Export yol
    .Delete
End With
Cells(Say + 1, 5) = FileLen(yol)
Next
Kill yol
Application.CutCopyMode = False
End Sub
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,748
Excel Vers. ve Dili
Excel 2019 Türkçe
Sayın lemruk'a katılıyorum. Bu şekiller birer resim olduğu için üzerlerinde çalışmak zor. Belki vardır ama ben bilmiyorum.
 
Üst