Perchè usando il comando SHELL non conosce l'applicazione da usare per aprire il file, ad esmpio per aprire un file pdf potresti usare:
SHELL("C:\Programmi\Adobe\pdbreader.exe C:\prova.pdf"),
oppure puoi usare il comando shell32.exe di windows per aprirlo
SHELL("shell32.exe C:\prova.pdf")
in questo caso windows controlla qual'è applicazione predefinita e usa quella.
Ora non ricordo perfettamenre la sintassi ma se fai una brevissima ricerca sul web la trovi.
Saltui