How would the below work for you:
Sub CreateSlidesAndLinkBullets()
Dim ppt As Presentation
Dim srcSlide As Slide, newSlide As Slide
Dim shp As Shape, backTextBox As Shape
Dim slideIndex As Integer, originalSlideIndex As Integer, para As Integer
Dim headingText As String
Dim textRange As textRange
Dim slideWidth As Single, slideHeight As Single
Set ppt = ActivePresentation
Set srcSlide = ActiveWindow.View.Slide
originalSlideIndex = srcSlide.slideIndex
slideWidth = ppt.PageSetup.slideWidth
slideHeight = ppt.PageSetup.slideHeight
For Each shp In srcSlide.Shapes
If shp.HasTextFrame Then
If shp.TextFrame.HasText Then
For para = 1 To shp.TextFrame.textRange.Paragraphs.Count
headingText = Trim(shp.TextFrame.textRange.Paragraphs(para).Text)
If headingText <> "" Then
slideIndex = ppt.Slides.Count + 1
Set newSlide = ppt.Slides.Add(slideIndex, ppLayoutText)
newSlide.Shapes.Title.TextFrame.textRange.Text = headingText
Set textRange = shp.TextFrame.textRange.Paragraphs(para)
textRange.ActionSettings(ppMouseClick).Hyperlink.SubAddress = newSlide.SlideID & ", 0,0"
Set backTextBox = newSlide.Shapes.AddTextbox(msoTextOrientationHorizontal, slideWidth - 150, 10, 140, 30)
backTextBox.TextFrame.textRange.Text = "Back to Menu"
backTextBox.TextFrame.textRange.Font.Size = 14
backTextBox.TextFrame.textRange.Font.Bold = msoTrue
backTextBox.TextFrame.textRange.ActionSettings(ppMouseClick).Hyperlink.SubAddress = srcSlide.SlideID & ", 0,0"
End If
Next para
End If
End If
Next shp
End Sub