Есть несколько проблем с вашим кодом ... ActiveDocument фактически не имеет ссылки на страницы напрямую ... вы нигде не устанавливаете Paragraph p ... номера страниц жестко запрограммированы в экспорте.
Попробуйте следующее. Он просматривает каждую страницу документа (отмечая, что документ должен находиться в представлении PrintLayout), затем получает первое предложение, уменьшает его на 1, чтобы удалить символ конца абзаца, и создает имя файла PDF. Затем он сохраняет всю страницу в формате PDF.
Sub printSepPdf()
Dim PageCounter As Long
Dim PageFirstSentence As Range
Dim PDFName As String
For PageCounter = 1 To ActiveDocument.Windows(1).Panes(1).pages.Count
Set PageFirstSentence = ActiveDocument.Range.GoTo(wdGoToPage, wdGoToAbsolute, PageCounter)
PageFirstSentence.Expand (wdSentence)
PageFirstSentence.SetRange PageFirstSentence.Start, PageFirstSentence.End - 1
PDFName = PageFirstSentence & ".pdf"
ActiveDocument.ExportAsFixedFormat OutputFileName:=PDFName, _
ExportFormat:=wdExportFormatPDF, _
OpenAfterExport:=False, _
OptimizeFor:=wdExportOptimizeForPrint, _
Range:=wdExportFromTo, _
From:=PageCounter, _
To:=PageCounter, _
Item:=wdExportDocumentContent, _
IncludeDocProps:=False, _
KeepIRM:=False, _
CreateBookmarks:= _
wdExportCreateHeadingBookmarks, _
DocStructureTags:=True, _
BitmapMissingFonts:=False, _
UseISO19005_1:=False
Next
End Sub