Como esta es una necesidad que me sucede muy a menudo, utilizo esta función que te devuelve el nombre del fichero sin su extensión, independientemente de la longitud de los caracteres.
Código:
Public Function SinExtension(Fichero As String) As String
Dim Punto As Integer
Punto = InStrRev(Fichero, ".")
If Punto > 0 Then
SinExtension = Left$(Fichero, Punto - 1)
Else
SinExtension = Fichero
End If
End Function
Asi puedes por ejemplo hacer lo siguiente:
NuevoFichero = SinExtension(AntiguoFichero) & ".txt"