Amigo,
Vou te passar a outra forma... vc precisa passar somente o path do arquivo e o status da janela, como quer q ela abra... a API do windows localiza qual o aplicativo padrao pra abrir pelo tipo de arquivo... so vai dar erro se nao tiver nenhuma aplicação no seu sistema pra abrir o tipo de arquivo passado...
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Const SW_SHOWNORMAL As Long = 1
Private Const SW_SHOWMAXIMIZED As Long = 3
Pra chamar vc faz:
ShellExecute Me.hwnd, vbNullString, "arquivo", vbNullString, "C:", SW_SHOWNORMAL
Espero q isso te ajude... flw!