Scusa, ho visto in questo link:
http://msdn.microsoft.com/it-it/library/xe736fyk(VS.80).aspx

che la funzione shell ha un parametro chiamato "wait" che se impostato a true attende il termine del programma.

Quindi ho scritto:

Shell ("programma.exe",,true)

però in questo modo mi restituisce un errore di sintassi.