none
Word Fusszeile per VBA RRS feed

  • Frage

  • Hallo Leute!

    Hab unter Word 2007 ein Makro was per Mausklick Kopf- und Fusszeile einfügt. Beides sind Grafiken.

    Unter Word 2007 wird das das Logo in Kopfzeile und Fusszeile in die Fusszeile gepackt.
    Unter Word 2010 wird Logo und Fusszeile in die Kopfzeile gepackt. :-(

    Hab euch den Code unten angeführt.

      Dim shpCanvas As Shape
      'Add a graphic to the drawing canvas
      ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Shapes.AddPicture _
        FileName:="C:\Users\Christian\Desktop\Logo.png", _
        LinkToFile:=False, SaveWithDocument:=True
      ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Shapes.AddPicture _
        FileName:="C:\Users\Christian\Desktop\Fusszeile_Salzburg.wmf", _
        LinkToFile:=False, SaveWithDocument:=True

    Vielleicht hat jemand ne Idee. Vielen Dank im voraus.

    LG Christian

    Donnerstag, 27. Mai 2010 22:29

Antworten

  • Servus Schorsch!

    Funktionierte nicht ganz so wie wollte. 
    Mit oben genannten Code hab ich immer eine eigene 1. Seite. Ist nicht immer gewünscht.
    Außerdem geht es komischerweise mit Word 2007 nicht.

    Hab mich jetzt über das Wochenende (schlechtes Wetter) mit dem Makrorecorder gespielt.
    Unten stehendes Script funktioniert jetzt so wie es soll. Gehört sicher noch optimiert. :-)

    Jedenfalls vielen Dank für deine Hilfe

    LG

    Christian 

    Sub Vorlage()
    'Erste Seite anders
    ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter = True
    ActiveDocument.Sections(1).Headers(wdHeaderFooterFirstPage).Range.Select
    Selection.InlineShapes.AddPicture FileName:= _
      "C:\Users\Christian\Desktop\Logo.png", LinkToFile:=False, _
      SaveWithDocument:=True
    ActiveDocument.Sections(1).Footers(wdHeaderFooterFirstPage).Range.Select
    Selection.InlineShapes.AddPicture FileName:= _
      "C:\Users\Christian\Desktop\Fusszeile_Salzburg.wmf", LinkToFile:=False, _
      SaveWithDocument:=True
    Selection.TypeParagraph
    Selection.TypeParagraph
    Selection.MoveDown Unit:=wdLine, Count:=1
      
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
      "FILENAME \p", PreserveFormatting:=True
    Selection.TypeText Text:=vbTab & vbTab
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldPage
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldNumPages
    'Ab der 2. Seite
    ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Select
    Selection.InlineShapes.AddPicture FileName:= _
      "C:\Users\Christian\Desktop\Fusszeile_Salzburg.wmf", LinkToFile:=False, _
      SaveWithDocument:=True
    Selection.TypeParagraph
    Selection.TypeParagraph
    Selection.MoveDown Unit:=wdLine, Count:=1
      
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
      "FILENAME \p", PreserveFormatting:=True
    Selection.TypeText Text:=vbTab & vbTab
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldPage
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldNumPages
    ActiveWindow.View.Type = wdPrintView
    End Sub
    • Als Antwort markiert FiC5020 Sonntag, 30. Mai 2010 17:15
    Sonntag, 30. Mai 2010 17:15

Alle Antworten

  • Servus Christian,

    füge einfach nach dem "Dim ..." vor Deinen Anweisungen die nachfolgend angegebene Zeile mit "ActiveDocument.PageSetup ...." ein.

    Die erste Seite bleibt somit ohne Kopf- und Fußzeile, alle weiteren Seiten erhalten die gewünschten Grafiken.

    Hat bei mir funktioniert :-))

    Grüße!

    Schorsch

     

     Dim shpCanvas As Shape
     'Add a graphic to the drawing canvas
    
      ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter = True ' Diese Zeile ist wichtig !!!
     ' Die folgenden Zeilen unterscheiden sich nicht von Deinen, sind lediglich zusammengefasst
     With ActiveDocument.Sections(1)
      .Headers(wdHeaderFooterPrimary).Shapes.AddPicture _
      FileName:="C:\Users\Christian\Desktop\Logo.png", _
      LinkToFile:=False, SaveWithDocument:=True
      
      .Footers(wdHeaderFooterPrimary).Shapes.AddPicture _
      FileName:="C:\Users\Christian\Desktop\Fusszeile_Salzburg.wmf", _
      LinkToFile:=False, SaveWithDocument:=True
      End With
    
    Freitag, 28. Mai 2010 03:05
  • Servus Schorsch!

    Danke für prompte Antwort.

    Funktioniert soweit. Ich möchte jedoch, das ganze bereits auf der 1. Seite beginnt.
    Mit deiner Anpassung wird es schön brav erst auf der 2. Seite eingebaut.

    Ohne deine Anpassung werden die beiden Grafiken auf Seite 1 in die Kopfzeile gepackt.

    LG

    Christian

    Freitag, 28. Mai 2010 08:42
  • Servus Christian,

    die folgende Prozedur ist zwar jetzt wesentlich umfangreicher, sollte aber wie gewünscht funktionieren. Bei mir tut sie's jedenfalls. Ob das jetzt alles nach allen "Regeln der Kunst" programmiert ist, lasse ich mal dahin gestellt. Es geht ja wohl lediglich um das Ergebnis ;-)

    Probier' Folgendes:

    Sub HeadFootItem()

    Dim shpCanvas As Shape

    ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter = False

    With ActiveDocument.Sections(1)

        .Headers(wdHeaderFooterFirstPage).Shapes.AddPicture _
        FileName:="c:\users\Christian\Desktop\Logo.png", _
        linktofile:=False, savewithdocument:=True
       
        .Footers(wdHeaderFooterFirstPage).Shapes.AddPicture _
        FileName:="c:\users\Christian\Desktop\Fusszeile_Salzburg.wmf", _
        linktofile:=False, savewithdocument:=True

    End With

    ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter = True
    ActiveDocument.PageSetup.OddAndEvenPagesHeaderFooter = False

    With ActiveDocument.Sections(1)

        .Headers(wdHeaderFooterPrimary).Shapes.AddPicture _
        FileName:="c:\users\Christian\Desktop\Logo.png", _
        linktofile:=False, savewithdocument:=True
       
        .Footers(wdHeaderFooterPrimary).Shapes.AddPicture _
        FileName:="c:\users\Christian\Desktop\Fusszeile_Salzburg.wmf", _
        linktofile:=False, savewithdocument:=True
      
       .Headers(wdHeaderFooterEvenPages).Shapes.AddPicture _
       FileName:="c:\users\Christian\Desktop\Logo.png", _
       linktofile:=False, savewithdocument:=True
       
       .Footers(wdHeaderFooterEvenPages).Shapes.AddPicture _
       FileName:="c:\users\Christian\Desktop\Fusszeile_Salzburg.wmf", _
       linktofile:=False, savewithdocument:=True

    End With

    End Sub
     

    Freitag, 28. Mai 2010 11:43
  • Servus Schorsch!

    Funktionierte nicht ganz so wie wollte. 
    Mit oben genannten Code hab ich immer eine eigene 1. Seite. Ist nicht immer gewünscht.
    Außerdem geht es komischerweise mit Word 2007 nicht.

    Hab mich jetzt über das Wochenende (schlechtes Wetter) mit dem Makrorecorder gespielt.
    Unten stehendes Script funktioniert jetzt so wie es soll. Gehört sicher noch optimiert. :-)

    Jedenfalls vielen Dank für deine Hilfe

    LG

    Christian 

    Sub Vorlage()
    'Erste Seite anders
    ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter = True
    ActiveDocument.Sections(1).Headers(wdHeaderFooterFirstPage).Range.Select
    Selection.InlineShapes.AddPicture FileName:= _
      "C:\Users\Christian\Desktop\Logo.png", LinkToFile:=False, _
      SaveWithDocument:=True
    ActiveDocument.Sections(1).Footers(wdHeaderFooterFirstPage).Range.Select
    Selection.InlineShapes.AddPicture FileName:= _
      "C:\Users\Christian\Desktop\Fusszeile_Salzburg.wmf", LinkToFile:=False, _
      SaveWithDocument:=True
    Selection.TypeParagraph
    Selection.TypeParagraph
    Selection.MoveDown Unit:=wdLine, Count:=1
      
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
      "FILENAME \p", PreserveFormatting:=True
    Selection.TypeText Text:=vbTab & vbTab
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldPage
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldNumPages
    'Ab der 2. Seite
    ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Select
    Selection.InlineShapes.AddPicture FileName:= _
      "C:\Users\Christian\Desktop\Fusszeile_Salzburg.wmf", LinkToFile:=False, _
      SaveWithDocument:=True
    Selection.TypeParagraph
    Selection.TypeParagraph
    Selection.MoveDown Unit:=wdLine, Count:=1
      
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
      "FILENAME \p", PreserveFormatting:=True
    Selection.TypeText Text:=vbTab & vbTab
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldPage
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldNumPages
    ActiveWindow.View.Type = wdPrintView
    End Sub
    • Als Antwort markiert FiC5020 Sonntag, 30. Mai 2010 17:15
    Sonntag, 30. Mai 2010 17:15