Avatar billede densortehingst Seniormester
09. januar 2020 - 09:21 Der er 5 kommentarer og
1 løsning

Ændre billedstørrelse fra makro

Jeg har en word makro, som ændre billedstørrelsen på alle billeder i dokumentet.

Sub billedstørrelse()
'
' billedstørrelse Makro
'
' Selected image(s) are resized to 5 cm in width
'
    Dim shape As InlineShape
    ' iterate all selected shapes
    For Each shape In Selection.InlineShapes
        ' remain aspect ratio
        shape.LockAspectRatio = msoTrue
        ' set with to 5 cm
        shape.Width = CentimetersToPoints(1.5)
    Next
End Sub

Jeg savner en makro, som gør det samme i et excel dokument :)
Avatar billede jens48 Ekspert
10. januar 2020 - 14:25 #1
Måske kan dette bruges:

Sub Picture()
Dim Pic As Shape
For Each Pic In Worksheets("Sheet1").Shapes
Pic.LockAspectRatio = msoTrue
Pic.Width = 50
Next
End Sub
Avatar billede jens48 Ekspert
10. januar 2020 - 15:01 #2
Ovenstående var i punkter. Hvis du vil have det i mm skal 3. sidste linje ændres til

Pic.Width = 50 / 25.4 * 72
Avatar billede densortehingst Seniormester
11. januar 2020 - 11:11 #3
Som altid når Jens laver noget, så virker det :) Dog kan jeg ikke få den til at tage et enkelt markeret område - den tager hele regnearket, men det gør ikke så meget :)
Avatar billede jens48 Ekspert
11. januar 2020 - 16:29 #4
Så prøv med denne makro, som retter alle billeder der (delvist) ligger indenfor et valgt område (her valgt som A1R30)

Sub ModifyPic()
    Dim PicRng As Range
    Dim Pic As Picture
    Dim Rng As Range
    Application.ScreenUpdating = False
    Set Rng = Range("A1:R30")
    For Each Pic In ActiveSheet.Pictures
        Set PicRng = Range(Pic.TopLeftCell.Address & ":" & Pic.BottomRightCell.Address)
        If Not Intersect(Rng, PicRng) Is Nothing Then
        Pic.Width = 50 / 25.4 * 72
        End If
    Next
    Application.ScreenUpdating = True
End Sub
Avatar billede Klaus W Guru
08. januar 2023 - 11:44 #5
Hej Jens48
Jeg bruger din kode fra denne tråd og den fungerer upåklagelig. En ting jeg ikke kan regne ud er hvilke tal jeg skal ændre for at billede bliver større eller mindre har prøvet, det ændrer selvfølgelig billede størrelsen, når jeg ændrer tallene. Men selve sammen hænget kan jeg ikke se.
Jeg syntes jeg har set en kode fra dig til at få billede til at passe i cellen, også hvis man ændrer cellens højde og brede, kan det have sin rigtighed?
Kan du evt. være behjælpelig.
Klaus W
Avatar billede jens48 Ekspert
09. januar 2023 - 00:28 #6
Hej Klaus,

Er det ikke forklaret i #2?
Du skal bruge
Pic.LockAspectRatio = msoTrue
for at sikre at forholdet mellem højde og bredde ikke ændres, og med formelen i #2 sættes bredden (i eksemplet til 50 mm)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester