Avatar billede michaelrar Seniormester
21. marts 2009 - 22:12 Der er 3 kommentarer og
1 løsning

VBA - Indsætte billede i Word

Hej

Jeg har brug for at indsætte et billede fra harddisken i et Worddokument.
Det skal indsættes med egenskaben i layout "Foran tekst" på en given plads i øverste højre hjørne.

Uanset hvorledes jeg vrider mine makroer kan jeg ikke få det til at lykkes.

Nogle gode ideer ?

Mvh
Michael
Avatar billede supertekst Ekspert
21. marts 2009 - 23:04 #1
Prøv at vis din makro
Avatar billede Lene Fredborg Ekspert
22. marts 2009 - 00:16 #2
Makroen nedenfor indsætter et billede med ombrydning Foran tekst. Se kommentarerne i makroen. Du skriver ikke, om billedet skal være i sidehovedet eller ej. Det er mit gæt, at det måske er et logo el.lign. du ønsker at indsætte, og i det tilfælde vil en placering i sidehovedet oftest være det bedste. Et billede med ombrydning "Foran tekst" vil altid være ankret til et afsnit. Koden skal derfor bestemme, hvor/hvilket afsnit billedet ankes til. I koden nedenfor er vist 3 muligheder (1, 2A og 2B):


Sub InsertPictureInFrontOfText()
    Dim oShape As Shape
    Dim oRange As Range
   
    'Brug oRange til at bestemme, hvilket afsnit billedet skal ankres til
    'MULIGHED 1: Brug næste linje hvis billedet skal være på side 1 og ankres til 1. afsnit:
'    Set oRange = ActiveDocument.Paragraphs(1).Range
'    'MULIGHED 2: Brug A eller B hvis billedet skal være i sidehovedet i sektion 1 og ankres til 1. afsnit i sidehovedet:
'    'A: I dokument med "Speciel første side"
'    Set oRange = ActiveDocument.Sections(1).Headers(wdHeaderFooterFirstPage).Range.Paragraphs(1).Range
'    'B: I dokument uden "Speciel første side"
    Set oRange = ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Paragraphs(1).Range
   
    'Indsæt billede - udskift FileName til korrekt sti+navn
    Set oShape = ActiveDocument.Shapes.AddPicture(FileName:="C:\MitBillede.jpg", _
        LinkToFile:=False, SaveWithDocument:=True, _
        Anchor:=oRange)
       
    'Sæt ønsket placering og ombrydning
    'Her sat til position relativt til siden, 1 cm nede, 15 cm inde
    With oShape
        .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
        .RelativeVerticalPosition = wdRelativeVerticalPositionPage
        .Left = CentimetersToPoints(15)
        .Top = CentimetersToPoints(1)
        'Ombrydning foran tekst
        .WrapFormat.Type = wdWrapNone
    End With
   
    'Ryd op
    Set oRange = Nothing
    Set oShape = Nothing

End Sub
Avatar billede michaelrar Seniormester
22. marts 2009 - 09:56 #3
Super Lene. Du er god!

Smid lige et svar
Avatar billede Lene Fredborg Ekspert
22. marts 2009 - 16:26 #4
Glæder mig at det kunne hjælpe dig videre.
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
Kategori
Kurser inden for grundlæggende programmering

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