Formaat afbeelding met macro wijzigen

Status
Niet open voor verdere reacties.

Michel5

Gebruiker
Lid geworden
10 okt 2004
Berichten
106
Ik heb een vervelend probleem.

Ik moet in een Word document veel afbeeldingen plaatsen. Deze afbeeldingen mogen een breedte hebben van 4,5cm 8,5 cm en 11,5 cm.

Hiervoor kan ik een macro schrijven.

Het probleem is dat de Hoogte hierbij ook vast ligt.

Met behulp van de macro heb ik geen juiste verhoudingen meer.

Wie weet hiervoor een oplossing.
 
Je kunt in word op de foto met de rechtermuisknop de eigenschappen instellen, en vervolgens deze instellen op het juiste formaat.
 
dat is mij bekend.
Mijn probleem bestaat uit het volgende;

ik wil drie macro's hebben
de ene macro maakt de afbeelding 4,5
de tweede 8,5
en de derde 11,5

dit is nog geen probleem

probeem wordt dat nu ook de hoogte van de afbeelding in deze macro vasstaat.

en dat wil ik niet

de verhoudingen kloppen niet meer
 
oplossing

ben er zelf uit voor de geïnterreseerde hieronder de code

De afbeelding moet geselecteerd zijn

Sub Afb_115_Breed()
' Plaats afbeelding van het klembord op de invoegpositie met een breedte van 11,5cm
' de hoogte wordt proportioneel aangepast
' Waarde is in Point aangegeven 28,35 Point is 1cm

Dim oh, ow, nh, nw, Percentage As String
oh = Selection.InlineShapes(1).Height
ow = Selection.InlineShapes(1).Width
Percentage = 327.75 / ow
nh = Percentage * oh
nw = Percentage * ow
Selection.InlineShapes(1).Height = nh
Selection.InlineShapes(1).Width = nw
End Sub
 
Hai Michel, :D

Zeer goed dat je er zelf uitgekomen bent! :thumb:

Mag ik je nog wat goed bedoelde VBA-tips geven?

In jou Dim statement wordt in feite maar één string gedimensioneerd!
Dit is Percentage als string.
Alle overige zijn niet gespecificeerd dus automatisch Variant.

Tevens wil ik opmerken dat je rekent met strings.
Strings zijn geschikt als tekstgegevens maar niet echt geschikt als rekendata. (ondanks dat het nu wel goed gaat)

Je rekent met cijfers achter de comma, dus moet je eigenlijk rekenen met het type Double.

Zo kun je het ook opschrijven:
Code:
Sub Afb_115_Breed()
Dim oh  As Double, ow           As Double, nh As Double
Dim nw  As Double, Percentage   As Double

 With Selection.InlineShapes(1)
    oh = .Height
    ow = .Width
    Percentage = 327.75 / ow
    nh = Percentage * oh
    nw = Percentage * ow
    .Height = nh
    .Width = nw
 End With
 
End Sub

Dit is puur als tip bedoeld dus hopelijk heb je er wat aan.

See Yah! :thumb:
 
Bedankt Joost,

Altijd blij met verbereringen. Zeker ook het gebruik van With, wordt de boel toch weer wat netter.

Het gebruik van String heb je gelijk in, echter een vraag.

Ik meende dat als ik onderstaande notatie gebruik

Dim oh, ow, nh, nw, Percentage As String

De variabele allemaal als string gedefinieerd zijn, is dit een denkfout.

Zou goed kunnen want ik voel me de Karel Appel van de VBA's (ik rotzooi maar wat an)

Moet het een beetje van creativieteit hebben, dus tpis en adviezen zijn altijd welkom.

Nog bedankt.

Michel
 
Geplaatst door Michel5
Bedankt Joost,

Altijd blij met verbereringen. Zeker ook het gebruik van With, wordt de boel toch weer wat netter.

Het ziet er niet alleen netter/beter uit het is ook sneller! (op deze procedure zul je het verschil niet merken)

Als je een "With" blok gebruikt dan blijf je binnen het aangeroepen object en bespaar je dus de tijd om het object opnieuw in te stellen.

Het gebruik van String heb je gelijk in, echter een vraag.

Ik meende dat als ik onderstaande notatie gebruik

Dim oh, ow, nh, nw, Percentage As String

De variabele allemaal als string gedefinieerd zijn, is dit een denkfout.

Dit is een denkfout! ;)
Zoals boven vermeld is nu alleen Percentage een string de rest Variant.

Wil jij toch op deze manier declareren schrijf dan als volgt:
Code:
Dim oh As String, ow As String, nh As String, nw As String

Nu zijn het wel allemaal strings! :p

Zou goed kunnen want ik voel me de Karel Appel van de VBA's (ik rotzooi maar wat an)

Moet het een beetje van creativieteit hebben, dus tpis en adviezen zijn altijd welkom.

Nog bedankt.

Michel
Hai Michel, :D

De beste algemene tips zijn:

* Blijf doorgaan met schilderen..ooit wordt je zo goed als Karel!
* Koop eens een goed boek over VBA, dit helpt je echt mijlenver vooruit. (de beste zijn in het engels geschreven)
Maar zelfs met het boek VBA voor Dummies schroef je jou kennis binnen No Time met 200% op!
* Ook op Internet is een verschrikkelijke berg met informatie te vinden.
* En vergeet niet de F1 (Help) in de VBE is het allerbeste VBA boek wat er is! (onderschat dit niet)

Veel succes! :thumb:
 
Ik zit nu met een zelfde probleem, met tekst en foto;s samenvoegen ziet het
er goed uit, vervolgens Ctrl-A en F9 op het samenvoegen met de foto's te activeren
komen er verschillende afbeelding formaten uit, met de macro van hier boven
kan ik de afbeelding in het juiste formaat corrigeren, alleen gaat het bij mij om
60 afbeeldingen!!, moet ik ze nu stuk voor stuk met macro gaan wijzigen of
is hier een macro voor ??

bvd

offthefield
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan