I have not been able to test with 2007.

I suggest you try using numeric values instead of the names for the file formats. Numeric values are less flaky across versions. And they also work with later versions of Excel.

Your variable now needs to be numeric not a string
so
Dim FileSaveFormat as Integer
then
swap this line
FileSaveFormat = xlCSV
to
FileSaveFormat = 6

swap this line
FileSaveFormat = xlText
to
FileSaveFormat = -4158