I see the difference now but it should NOT be within the loop.
strFileName = Dir$(strFPath & strSpec) Finds the first file in the Folder that has a pptx ending
In the loop strFileName = Dir() finds the NEXT file that matches
Your line
strFileName = strFPath & strSpec
Would look for a file with path:
C:\Users\JohnDesktop\data\*.PPTX
Which cannot exist because * is not an acceptable name