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