Hola.
Seguro que la respuesta de Luis M. es adecuada.
Te muestro lo sgte... Probé las cuatro secuencias y en todas se abre la app respectiva.
MiArchivoDOC = "c:\TEST1.doc"
MiArchivoXLS = "c:\TEST1.xls"
** Primero: Word
poExplorer = CreateObject("Word.Application")
poExplorer.Documents.Open(MiArchivoDOC)
poExplorer.Visible = .T.
*poExplorer.WindowState = 2 && en las primeras ejecuciones funcionó como se requiere
*poExplorer.WindowState = 1 &&
=MessageBox('Se abrió Word',0,'--')
** Segundo: Word
M.lcFile = MiArchivoDOC
M.loWord = CREATEOBJECT("Word.Application")
M.loWord.Documents.Open(M.lcFile)
*M.loWord.Application.Visible = .T. && sí funciona: se abre Word
M.loWord.Visible = .T. && sí funciona: se abre Word
RELEASE M.loWord
=MessageBox('Se abrió Word',0,'--')
** Tercero: Excel
poExplorer = CreateObject("Excel.Application")
poExplorer.Documents.Open(MiArchivoXLS)
poExplorer.Visible = .T.
*poExplorer.WindowState = 2 && en las primeras ejecuciones funcionó como se requiere
*poExplorer.WindowState = 1 &&
=MessageBox('Se abrió Excel',0,'--')
** Cuarto: Excel
M.lcFile = MiArchivoXLS
M.loApp = CREATEOBJECT("Excel.Application")
M.loApp.Documents.Open(M.lcFile)
*M.loApp.Application.Visible = .T. && sí funciona: se abre Excel
M.loApp.Visible = .T. && sí funciona: se abre Excel
RELEASE M.loApp
=MessageBox('Se abrió Excel',0,'--')