A family of Microsoft word processing software products for creating web, email, and print documents.
In more than 20 years of VBA coding, I've never used .Paragraphs.Add -- it just seems to be doing things the hard way. The built-in constant vbCr represents a paragraph mark, and adding it to a string creates a new paragraph. If you use the range's .InsertAfter command, the inserted text extends the range, so there's also no need to redefine and adjust the range. One more thing: You should declare all your variables, not just the strings.
This version will do what you want:
Sub AddGrafs()
Dim Txt1 As String, Txt2 As String
Dim H1 As Style, BT As Style
Dim rng As Range
Txt1 = "Heading text"
Txt2 = "Body text"
Set H1 = ActiveDocument.Styles("Custom heading style")
Set BT = ActiveDocument.Styles("Custom body text style")
Set rng = ActiveDocument.Sections(1).Range
rng.End = rng.End - 1
With rng
.InsertAfter Txt1 & vbCr
.Paragraphs.Last.Style = H1
.InsertAfter Txt2 & vbCr
.Paragraphs.Last.Style = BT
End With
End Sub