View Single Post
 
Old 07-11-2013, 05:01 PM
gmaxey gmaxey is offline Windows 7 32bit Office 2010 (Version 14.0)
Expert
 
Join Date: May 2010
Location: Brasstown, NC
Posts: 1,421
gmaxey is a jewel in the roughgmaxey is a jewel in the roughgmaxey is a jewel in the roughgmaxey is a jewel in the rough
Default

Miles,

The way I do this is to create two autotext entries. One LH_Logo is the Logo graphic. The other No_Logo is a empty shape of the same size and position as LH_Logo. Then add an autotext field in the first page header:

{AutoText LH_Logo}

Code:
Sub AddLetterhead()
Dim oFld As Field
Dim oRng As Word.Range, oRngFld As Word.Range
Dim lngInterogate As Long
  
  lngInterogate = ActiveDocument.Sections(1).Headers(1).Range.StoryType
  Set oRng = ActiveDocument.StoryRanges(wdFirstPageHeaderStory)
  'Does the header Autotext field exist?
  On Error Resume Next
  If Not oRng.Fields(1).Type = wdFieldAutoText Then
    On Error GoTo 0
    'No, then create it.
    Set oRngFld = oRng.Duplicate
    oRngFld.Collapse wdCollapseStart
    Set oFld = oRng.Fields.Add(oRngFld, wdFieldAutoText, "LH_Logo")
    oFld.Update
    On Error GoTo 0
  Else
   Set oFld = oRng.Fields(1)
    If InStr(oFld.Code.Text, "No_Logo") > 0 Then
      oFld.Code.Text = Replace(oFld.Code, "No_Logo", "LH_Logo")
      oFld.Update
    End If
  End If
lbl_Exit:
  Exit Sub
End Sub
Sub RemoveLetterhead()
Dim oFld As Field
Dim oRng As Word.Range
Dim lngInterogate As Long
  
  lngInterogate = ActiveDocument.Sections(1).Headers(1).Range.StoryType
  Set oRng = ActiveDocument.StoryRanges(wdFirstPageHeaderStory)
  'Does the header Autotext field exist?
  If oRng.Fields.Count > 0 Then
    Set oFld = oRng.Fields(1)
    If oFld.Type = wdFieldAutoText Then
      If InStr(oFld.Code.Text, "LH_Logo") > 0 Then
        oFld.Code.Text = Replace(oFld.Code, "LH_Logo", "No_Logo")
        oFld.Update
      End If
    End If
  End If
lbl_Exit:
  Exit Sub
End Sub
__________________
Greg Maxey
Please visit my web site at http://www.gregmaxey.com/
Reply With Quote