esisterebbe la funzione API FindExecutable, ma ha bisogno ti un file esistente per trovarne il programma che lo esegue, e non solo l'estensione...

ho creato, comunque, una fuzione che permette di trovare il file anche dando solo l'estensione, basta creare una file fittizio

codice:
Private Declare Function FindExecutable Lib "shell32.dll" _
        Alias "FindExecutableA" (ByVal lpFile As String, _
        ByVal lpDirectory As String, _
        ByVal lpResult As String) As Long

Function GetExeName(Extension As String) As String

Dim F As Integer
Dim i As Integer, s2 As String
Dim TestFileName As String
Const MAX_FILENAME_LEN = 260

TestFileName = App.Path & "\~qwerty." & Extension

F = FreeFile
Open TestFileName For Output As #F
Close #F

s2 = String(MAX_FILENAME_LEN, 32)
i = FindExecutable(TestFileName, vbNullString, s2)
If i > 32 Then
   GetExeName = Left$(s2, InStr(s2, Chr$(0)) - 1)
Else
   GetExeName = ""
End If

Kill TestFileName

End Function
la puoi chiamare così:

codice:
NomeEseguibile = GetExeName("txt")
Boolean