Im not sure either as it is using both.
I have had a play with this and thought i would share what i have.
Please note that i believe this could be made simpler if you can modify the way the excel data is arranged.
Sub pp()
Dim ppSl As PowerPoint.Slide
Dim strPath As String
Dim rCell As Range
strPath = "C:\Users\A\Desktop\Report Format_VBA.pptx" '< your template location
Set oPPTApp = CreateObject("PowerPoint.Application")
oPPTApp.Visible = msoTrue
Set oPPTFile = oPPTApp.Presentations.Open(strPath)
Set ppSl = oPPTFile.Slides(1)
With Sheet1
ppSl.Shapes("TextBox 3").TextFrame.TextRange.Text = .Range("B2").Value
ppSl.Shapes("TextBox 4").TextFrame.TextRange.Text = .Range("B3").Value
ppSl.Shapes("Rectangle 7").TextFrame.TextRange.Text = .Range("B9").Value
ppSl.Shapes("Rectangle 16").TextFrame.TextRange.Text = ""
For Each rCell In .Range("B21:B" & .Range("B" & Rows.Count).End(xlUp).Row).Cells
If rCell.Offset(, 1).Value = "y" Then
With ppSl.Shapes("Rectangle 16").TextFrame.TextRange
.Text = .Text & rCell.Value & vbNewLine & vbNewLine
End With
End If
Next rCell
End With
ppSl.Shapes("Rectangle 16").TextFrame.TextRange.Font.Size = 12
With oPPTFile
.SaveAs "C:\Users\A\Desktop\Report Format_VBA_Edited.pptx"
.Close
End With
oPPTApp.Quit
Set oPPTApp = Nothing
Set oPPTFile = Nothing
End Sub
I did not use the check boxes, instead i looked for the letter "y" in column "C" to include as part of results.
I would change my Excel data so that every piece of text that is to be formatted differently on the pp presentation resided in its own cell.
I would also have the four results saved in four separate boxes on the presentation rather than one.
Hope this helps anyway