• Word, L/scape Headers & Footers

    • This topic has 3 replies, 4 voices, and was last updated 24 years ago.
    Author
    Topic
    #354644

    Hello
    What solutions have people used to place Headers & Footers for Landscape oriented pages across the short edge.
    I have used text boxes which is fiddly at best. The VBA code to control this becomes a nightmare.
    Regards
    Geof

    Viewing 2 reply threads
    Author
    Replies
    • #521796
    • #521800

      Geof,

      Here’s a macro I wrote some time ago (Word 97) to do just that.
      Notes:
      This inserts a new landscape section at the current insertion point – essentially it splits the current section into two parts, with the new landscape section in the middle – you then need to copy/paste the material intended for the LS section, into the new LS section.

      The macro relies on inserting an autotext to provide for the sideways page number – this is just a textbox that was tweaked to just the right location and had the text direction changed – you’d have to create your own autotext for this purpose.

      I’ve left in (but commented out) the little tests I was using to suss out what was actually going on, when creating this.

      Sub InsertLandscapeSection()
      Dim rCurRng As Range
      Dim nSectCount As Integer
      Dim nUserView As Integer
      'Gary Frieder
      'Posted on Woody's Lounge Word forum
      
      'test to ensure in main doc story and prompt if not
      If Selection.Information(wdInHeaderFooter) = True Then
          MsgBox "Insertion Point Must Be In Body of Page" _
            & vbCr & "Before Running This Procedure", vbExclamation, _
            "Alert: Place Insertion Point in Body of Page"
          Exit Sub
      End If
      On Error GoTo InsertLandscapeSection_err
      Application.ScreenUpdating = False
      
      'ensure in page view for rest of procedure
      nUserView = ActiveWindow.View.Type
      If nUserView  wdPageView Then
          ActiveWindow.View.Type = wdPageView
      End If
      
      With Selection
          '.TypeText ("I started here")
          .TypeParagraph
          Set rCurRng = Selection.Range
          'Insert first Section Break
          .Sections.Add Range:=rCurRng
          '.TypeText ("Where am I now - 1?")
          .TypeParagraph
      
          .TypeParagraph
          Set rCurRng = Selection.Range
          'Insert 2nd Section Break
          .Sections.Add Range:=rCurRng
          '.TypeText ("And Where am I now - 2?")
          .TypeParagraph
      
          .GoTo What:=wdGoToSection, Which:=wdGoToNext, Count:=1, _
              Name:=""
          .TypeText ("Landscape Section")
          .TypeParagraph
      End With
      
      'get index of current section
      nSectCount = Selection.Information(wdActiveEndSectionNumber)
      'turn off Same As Previous in header and footer
      With ActiveDocument.Sections(nSectCount).Headers(wdHeaderFooterPrimary)
              .LinkToPrevious = False
      End With
      With ActiveDocument.Sections(nSectCount).Footers(wdHeaderFooterPrimary)
              .LinkToPrevious = False
              .PageNumbers.RestartNumberingAtSection = False
      End With
      
      With Selection
          .GoTo What:=wdGoToSection, Which:=wdGoToNext, Count:=1, _
              Name:=""
          '.TypeText ("And I ended up here - OK with that?")
          .TypeParagraph
      End With
      'get index of current section
      nSectCount = Selection.Information(wdActiveEndSectionNumber)
      'turn off Same As Previous in header and footer
      With ActiveDocument.Sections(nSectCount).Headers(wdHeaderFooterPrimary)
              .LinkToPrevious = False
              .PageNumbers.RestartNumberingAtSection = False
      End With
      With ActiveDocument.Sections(nSectCount).Footers(wdHeaderFooterPrimary)
              .LinkToPrevious = False
      End With
      
      'now go back to LS section to set stuff
      With Selection
          .GoTo What:=wdGoToSection, Which:=wdGoToPrevious, Count:=1, _
              Name:=""
          '********Do all this AFTER fixing trailing section LinkToPrev
          .TypeParagraph
          With .PageSetup
              .Orientation = wdOrientLandscape
              .TopMargin = InchesToPoints(1.0625)
              .BottomMargin = InchesToPoints(1.0625)
              .LeftMargin = InchesToPoints(1)
              .RightMargin = InchesToPoints(1)
              .HeaderDistance = InchesToPoints(0.5)
              .FooterDistance = InchesToPoints(0.5)
              .PageWidth = InchesToPoints(11)
              .PageHeight = InchesToPoints(8.5)
          End With
      End With
      'In LS section, Go to header and insert page no Autotext
      '(get code from earlier version)
      ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
      ActiveDocument.AttachedTemplate.AutoTextEntries("LandscapeSectionPageNumber"). _
              Insert Where:=Selection.Range
      'go back to main document
      ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
      'In LS section, Go to footer and delete contents
      ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
      With Selection
          .WholeStory
          .Delete
      End With
      'go back to main document
      ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
      '*********************************
      
      'restore original user view
      If nUserView  wdPageView Then
          ActiveWindow.View.Type = nUserView
      End If
      
      Application.ScreenUpdating = True
      Exit Sub
      
      InsertLandscapeSection_err:
      Application.ScreenUpdating = True
      SetBodySectionPageMargins_err:
          Application.ScreenUpdating = True
          MsgBox Err.Number & " : " & Err.Description, vbOKOnly, _
          "modDTP_PgSet.InsertLandscapeSection"
      End Sub
      
    • #521881

      Hi Geof:

      You can also see this post.

      A couple of additional tips that I’ve copied from somewhere regarding landscape sections with portrait header/footers are:

      Method 2 (unless you need a footnote):
      1. Exchange all the row entries for column entries, so the rows become columns and the columns become rows. (Map each entry table1[i,j] to table2[j,i], for row entries i=1,…,I, and column entries j=1,…,J.)
      2. Rotate text direction of all the table entries so now the head of the table is on the left-hand side of the page. [THIS ONLY WORKS IN WORD 97 or later.]

      So the headers are in the right place at the top of the page, with the head of the table at the left side. But the footnote is at the bottom of the page instead of landscape under the table.
      Is there a way of having a footnote appear at the foot of a table instead of the foot of the page?
      You can trick Word by copying the header info into a text box and the footer (if needed) into a text box. You can adjust the direction of the text from a textbox and place the “header” textbox on the right side of the page and the footer textbox on the left side. This will show the “top” of the landscape page on the right side of the adjusted portrait page. [AGAIN, ONLY IN 97]

      You can also use the above method for portrait header/footers with landscape table.
      1. Make the table landscape.
      2. Disconnect the header/footers on the landscaped pages.
      3. Copy the header/footer info into textboxes.
      4. Rotate the text in the text boxes. [Can

    Viewing 2 reply threads
    Reply To: Word, L/scape Headers & Footers

    You can use BBCodes to format your content.
    Your account can't use all available BBCodes, they will be stripped before saving.

    Your information: