Stránka 1 z 1

XLS-makro pro změnu velikosti obrázku(ů)

Napsal: 02 úno 2011 18:39
od MK_Vs
Dobrý den,

jakým příkazem pomocí VBA zmenším vždy aktuálně vybraný obrázek(y), nebo zástupce na definovanou velikost. Pomocí záznamu makra bohužel vyberu jen aktuální obrázek. Každý další získává vyšší číslo a není poté příkazem není nalezen.

Jak bude prosím vypadat makro pro výběr obrázku a jeho změnu velikosti na definované rozměry?

Děkuji za pomoc.

Re: XLS-makro pro změnu velikosti obrázku(ů)

Napsal: 02 úno 2011 19:29
od mike007
Asi nějak takto:

Kód: Vybrat vše

Sub zmenit_velikosti()
ActiveSheet.Pictures.Select
Selection.ShapeRange.ScaleWidth 1.34, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 1.34, msoFalse, msoScaleFromTopLeft
End Sub


Hodnoty (1.34) si změň podle sebe.

Re: XLS-makro pro změnu velikosti obrázku(ů)

Napsal: 02 úno 2011 22:25
od m.niki
nedávno jsem taky bezvýsledně řešil tento problém, nemůžu přijít na to jak jednoznačně definovat nějakým názvem vložený obrázek, aby s ním mohlo makro pracovat. Teď jsem zkusil kód, který zde vložil mike007, ale na obrázek vložený v sešitě to vůbec nereaguje, označí to všechny ovládací talačítka a pracuje s nimi (Excel 2007)

Re: XLS-makro pro změnu velikosti obrázku(ů)

Napsal: 02 úno 2011 22:37
od mike007
Vyzkoušel jsem to v Excel 2007 a pracuje korektně.

Re: XLS-makro pro změnu velikosti obrázku(ů)

Napsal: 02 úno 2011 22:54
od m.niki
tak jsem to zkusil znovu a zjistil jsem, že to (u mě) funguje, pouze pokud se na listu nenachází žádný ovládací prvek ActiveX, ovládací prvek formuláře tomu nevadí, když je na listu pouze obrázek tak to funguje v pohodě.

Re: XLS-makro pro změnu velikosti obrázku(ů)

Napsal: 03 úno 2011 06:08
od MK_Vs
Tímto postupem lze zmenšit o určitý poměr. Pokud by bylo cílem mít všechny obrázky nebo i ikony vložených dokumentů stejné, bylo by možno použít předdefinovanou šířku nebo výšku?

Re: XLS-makro pro změnu velikosti obrázku(ů)

Napsal: 03 úno 2011 08:47
od navstevnik
V te nejjednodussi podobe pro vlozene obrazky "Picture xx", demo uprav, zmen dle potreby:

Kód: Vybrat vše

Option Explicit

Sub SrovnatVelikosti()
  Dim Shp As Shape
  Dim W As Single, H As Single
  W = 100: H = 150  ' pozadovane rozmery obrazku
  For Each Shp In ActiveSheet.Shapes
    If Left(Shp.Name, 4) = "Pict" Then
      Shp.LockAspectRatio = msoFalse  ' odemknou uzamknuti pomeru stran
      Shp.Width = W
      Shp.Height = H
    End If
  Next Shp
  Set Shp = Nothing
End Sub

nebo:

Kód: Vybrat vše

Option Explicit

Sub UpravitSirkuObr()
  Dim Shp As Shape
  For Each Shp In ActiveSheet.Shapes
    If Shp.Type = msoPicture Then
      With Shp
        .LockAspectRatio = msoTrue ' uzamknout pomer stran
        .Width = 100 ' sirka obrazku
      End With
    End If
  Next Shp
  Set Shp = Nothing
End Sub

Re: XLS-makro pro změnu velikosti obrázku(ů)

Napsal: 03 úno 2011 19:51
od MK_Vs
DObrý den, na ikonu jako zástupce souboru tento postup nefunguje. Lez měnit velikost i u ikon, vložených zástupců souborů?

Re: XLS-makro pro změnu velikosti obrázku(ů)

Napsal: 04 úno 2011 08:54
od navstevnik
Pripoj soubor obsahujici vsechny objekty vlozene na list, u kterych chces upravit rozmer (ktery - W,H a jak- pomerne, absolutne).