What purpose is served by SheetArray? Could you not print immediately when Selected(i) is true?
Consider building a new worksheet (possibly in a new workbook). When selected(i) is true, copy the contents of the selected worksheet into the new worksheet after any existing contents. You can then print this new worksheet as a single pdf.
If you like, you can add some title information to the new worksheet before you copy each selected worksheet.