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
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