Если вы не хотите, чтобы логотип появлялся на каждой странице, вам необходимо применить макет «другая первая страница» к документам, у которых его еще нет.Затем вам нужно будет решить, что делать с документами, которые не имеют такого макета, но имеют заголовок, поскольку существующий заголовок теперь будет отображаться только на 2-й и последующих страницах (если имеется более одной страницы).В следующем коде я применил макет «другая первая страница», который устраняет любые опасения по поводу того, что происходит в вашем проблемном сценарии, и предполагал, что заголовок и логотип должны появляться только на первой странице:
Sub Demo()
Application.ScreenUpdating = False
Dim Sctn As Section, Rng As Range, Shp As Shape
Set Sctn = ActiveDocument.Sections.First
With Sctn
If .PageSetup.DifferentFirstPageHeaderFooter = False Then
'Apply a Different First Page layout
.PageSetup.DifferentFirstPageHeaderFooter = True
Set Rng = .Headers(wdHeaderFooterFirstPage).Range
With Rng
'Replicate the original Primary header
If Sctn.Headers(wdHeaderFooterPrimary).Range.Text <> "" Then
.FormattedText = Sctn.Headers(wdHeaderFooterPrimary).Range.FormattedText
.Characters.Last.Delete
End If
End With
'Delete the original Primary header
Sctn.Headers(wdHeaderFooterPrimary).Range.Text = vbNullString
End If
With Rng
.Collapse wdCollapseStart
'Add the logo
Set Shp = .InlineShapes.AddPicture(FileName:="My company logo", _
LinkToFile:=False, SaveWithDocument:=True).ConvertToShape
'Adjust the logo's formatting
With Shp
.WrapFormat.Type = wdWrapBehind
.Left = 5
.Top = 5
.LockAspectRatio = True
.Width = 107
End With
End With
End With
Application.ScreenUpdating = True
End Sub
Если документ состоит из нескольких разделов, вам также необходимо подумать, что делать с макетами и заголовками страниц.