Glib
Glib

Reputation: 262

Add picture "below margin"

I have some code that will put an image onto a document. If there is already a table in the footer, the image appears in the wrong place.

If I manually change the vertical position from 0.44 below 'paragraph' to below 'bottom margin', then it goes to the correct position for all documents.

I can't see any way to access this option in vba however.

Sub myFooter()
' Paste a logo into the footer.
'CTRL+SHIFT+F
Application.ScreenUpdating = False
Dim img As String, shp As Shape, oWD As Word.Document, Sctn As Section
On Error Resume Next

    img = "G:\Shared Drives\footer.jpg"
    Set oWD = ActiveDocument

    For Each Sctn In oWD.Sections
    With oWD.Sections(Sctn.Index).Footers(wdHeaderFooterPrimary).Shapes.AddPicture(img)
      ' for absolute positioning
      .Left = CentimetersToPoints(15.75)
      .Top = CentimetersToPoints(0.44)
      '.below = BottomMargin
    End With
    Next Sctn

Set shp = Nothing
Application.ScreenUpdating = True
End Sub

Is there some other way to do this, or have I missed something for how to amend the absolute position of the image?

Upvotes: 1

Views: 304

Answers (1)

AAA
AAA

Reputation: 3670

Amend your With section as follows:

With oWD.Sections(Sctn.Index).Footers(wdHeaderFooterPrimary).Shapes.AddPicture(img)
      ' for absolute positioning
      .Left = CentimetersToPoints(15.75)
      .RelativeVerticalPosition =  wdRelativeVerticalPositionBottomMarginArea
      .Top = CentimetersToPoints(0.44)
      .TopRelative = wdShapePositionRelativeNone
    End With

Upvotes: 1

Related Questions