Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

VBA Script afbeeldingen verkleinen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Zoals al de titel zegt zoek ik een script of code waarmee ik automatisch de afbeeldingen naar een bepaalde afmeting kan zetten.

Dat wil zeggen dat ik bijvoorbeeld in Excel (2003) een script wil draaien die er voor kan zorgen dat de afbeeldingen op de hoogte en breed tot 25% word terug gebracht (schaalniveau).

Weet iemand hoe dit mogelijk is ???

Alvast bedankt

  • Rupie
  • Registratie: Augustus 2006
  • Laatst online: 13-11 11:58
Je zou iets kunnen proberen als dit:

code:
1
2
3
4
5
6
7
8
9
10
Sub resize()
'
' resize Macro
' De macro is opgenomen op 13-1-2010 door Rupie.
'

'
    Selection.ShapeRange.ScaleWidth 0.53, msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.ScaleHeight 0.53, msoFalse, msoScaleFromTopLeft
End Sub


moet je alleen nog even spelen met de 0.53 denk ik. En de afbeelding moet wel geselecteerd zijn om dit uit te voeren. Eventueel kan je dat doen door het volgende toe te voegen

code:
1
ActiveSheet.Shapes("Picture 1").Select


Gehele code zou dan worden:

code:
1
2
3
4
5
6
7
8
9
10
11
Sub resize()
'
' resize Macro
' De macro is opgenomen op 13-1-2010 door Rupie.
'

'
    ActiveSheet.Shapes("Picture 1").Select
    Selection.ShapeRange.ScaleWidth 0.53, msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.ScaleHeight 0.53, msoFalse, msoScaleFromTopLeft
End Sub


Eventueel zou je vervolgens nog een loopje met een tellertje toe kunnen voegen om in 1x een hele rij afbeeldingen te resizen.

[ Voor 48% gewijzigd door Rupie op 13-01-2010 12:07 . Reden: Selectie van afbeelding toegevoegd ]

Desktop | Server | Laptop


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

In principe gaat wat Janoz in "afbeeldingen excel verkleinen m.b.v. VBA..." al zegt ook hier op: dit forum is niet bedoeld voor 'doe effe een scriptje'-vragen. Maar meer om hard met je mee te denken als je zelf vastloopt. Als je dit soort vragen hebt, maak dan ajb altijd een goed begin met een stuk code en stel je vraag pas als je vastloopt :)
Hoe dan ook nog welkom!

Een macro opnemen is altijd een handig startpunt om te zien welke mogelike functies je zou kunnen gebruiken. Bedenk daarbij wel dat macro's opnemen bijna altijd veel ranzigere en onderhoudsonvriendelijkere code oplevert dan wanneer je zelf even kort nadenkt en zelf code schrijft. Waar je dan natuurlijk de kennis uit de combi van macro-opnemen en F1 goed kan gebruiken ter inspiratie :)

Anyway, met bovenstaande ben je er al bijna. Al is .Select gebruiken IMHO bijna altijd 'fout', roep het object dan meteen 'hard' aan, of loop door alle objecten.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Witte
  • Registratie: Februari 2000
  • Laatst online: 15-10 13:46
als je alle afbeeldingen wil aflopen, kan je deze code gebruiken:

code:
1
2
3
4
5
6
7
8
9
Sub schalen()
Dim myShape As Shape

For Each myShape In ActiveSheet.Shapes
  myShape.ScaleWidth 0.53, msoFalse, msoScaleFromTopLeft
  myShape.ScaleHeight 0.53, msoFalse, msoScaleFromTopLeft
Next

End Sub

Houdoe