Я предполагаю, что вы запускаете VBA-код в PowerPoint.
Вы можете установить заголовок слайда, только если вы нашли соответствующую форму, которая содержит заголовок.Эта форма может быть распознана по Shape.Type = msoPlaceholder
и PlaceholderFormat.Type = ppPlaceholderTitle
(или PlaceholderFormat.Type = ppPlaceholderCenterTitle
).
Если вы хотите цикл от 1 до 7, то вы можете обращаться к слайдам по их индексу от 1 до 7 также(а не дополнительной For Each
петлей над всеми слайдами).
Private Sub SetTitlesFromExcellist()
Dim xlApp As Excel.Application
Dim xlWorkSheet As Excel.worksheet
Dim ppSlide As PowerPoint.Slide
Dim ppShape As PowerPoint.Shape
Dim i As Long
On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")
On Error GoTo 0
If xlApp Is Nothing Then Exit Sub
Set xlWorkSheet = xlApp.ActiveSheet
For i = 1 To 7
Set ppSlide = ActivePresentation.Slides(i)
If ppSlide.Shapes.HasTitle Then
For Each ppShape In ppSlide.Shapes
If ppShape.Type = msoPlaceholder Then
Select Case ppShape.PlaceholderFormat.Type
Case ppPlaceholderCenterTitle, ppPlaceholderTitle
ppShape.TextFrame.TextRange.Text = xlWorkSheet.Cells(i, 1)
Exit For
End Select
End If
Next ppShape
End If
Next i
End Sub