none
Word 2007 VBA - Positionierung eines Shapes zentriert in Bezug auf die Seitengröße RRS feed

  • Frage

  • Hallo,

    ich möchte ein Bild zentriert in Bezug auf die Seitengröße in der Kopfzeile erstellen (quasi als Hintergrundbild). Das Problem dabei ist dass sich das Shape immer am Seitenrand orientiert. Es soll aber immer gleich aussehen, egal welche Seitenränder eingestellt sind.

    Mein Code:

    Set shp = ActiveDocument.Shapes.AddPicture( _
    FileName:=strBild, Anchor:=rng, LinkToFile:=False, SaveWithDocument:=True, Left:=19.25, Top:=199.85)
    
    With shp
      .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
      .RelativeVerticalPosition = wdRelativeVerticalPositionPage
      .RelativeHorizontalSize = wdRelativeHorizontalSizePage
      .RelativeVerticalSize = wdRelativeVerticalSizePage
    End With
    

    Freitag, 1. Oktober 2010 13:57

Alle Antworten

  • Hi,

    du kannst für die zentrierte Position noch die Abmessung der Seite und des Bildes berücksichtigen:

    With shp
     .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
     .RelativeVerticalPosition = wdRelativeVerticalPositionPage
     .RelativeHorizontalSize = wdRelativeHorizontalSizePage
     .RelativeVerticalSize = wdRelativeVerticalSizePage
     .Left = (Selection.PageSetup.PageWidth - .Width) / 2
     .Top = (Selection.PageSetup.PageHeight - .Height) / 2
    End With
    

    Gruß Christian
    Montag, 4. Oktober 2010 18:15
  • Hallo,

    danke aber bei deinem Code wird das Bild teilweise ausserhalb der Seite verschoben. Die Größe wird auch erst angepasst wenn ich zusätzlich noch ScaleHeight und ScaleWidth aufrufe. Die besten Ergebnisse erziele ich jetzt mit folgendem Code:

    With shp
      .Left = wdShapeCenter
      .Top = wdShapeCenter
      .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
      .RelativeVerticalPosition = wdRelativeVerticalPositionPage
      .ScaleHeight factor:=1, RelativeToOriginalSize:=msoCTrue
      .ScaleWidth factor:=1, RelativeToOriginalSize:=msoCTrue
    End shp

    RelativeSize hab ich komplett weggelassen da bei mir seltsamerweise der Ablauf an der Stelle komplett einfriert wenn ich den Code bei einem leeren Dokument ausführe. Bei einem komplexen Dokument mit mehreren Hundert Seiten und verschiedenen Kopfzeilen funktioniert es dagegen einwandfrei. Das konnte ich auch auf mehreren Rechnern reproduzieren.

    Gruß Alex

     

     

    Dienstag, 5. Oktober 2010 09:16