Il codice che hai scritto ha poco senso, se non lo spieghi....
Prova questo:
Public Sub ExecuteFile(FilePath As String)
'Esegue file
On Error GoTo error
Dim ret As Integer
ret = Shell("rundll32.exe url.dll,FileProtocolHandler " & (FilePath))
Exit Sub
error:
MsgBox Err.Description, vbExclamation, "Error"
End Sub
La chiami passando il PATH completo alla Sub sopra...
Chiaramente apre il file con il Programma di Default...!
Se vuoi aprire l'immagine con un Programma specifico(un EXE e non una DLL) usa Shell passando prima il Path dell'exe e poi quello dell'immagine.
Il "rundll32.exe" equivale al rightClick del mouse sull'icona e selezione del Contextmenu APRI.