Buenas tardes!
A ver Carlos...tratando de entender...
"Lo quieres como el explorador de windows"
"Que muestre la hoja, pero que no abra el excel para editarla"
Entonces sería una vista previa del archivo?
Dicho de otra forma la hoja desactivada.
Habría que considerar, como lo menciona Alejandro Isla, que una hoja de excel es muy extensa para mostrarla en una vista previa.
Creo que tendrías que navegar en ella para visualizarla.
He insertado alguna vez objeto Ole para word, pero no sé si exista para Excel.
Pon éste código en un botón de un formulario. tienes que crear una shape (shape1) no visible.
Lo baje de la red, pero no encuentro el enlace.
Pruebalo como te lo mando con el block de notas y luego lo adaptas a Excel.
Lo que hace es "incrustar" una aplicación externa en el formulario.
Opino que si muestra tu hoja tendrías que protegerla para que sea sólo de lectura.
**********
DECLARE INTEGER SetParent IN user32;
INTEGER hWndChild,;
INTEGER hWndNewParent
DECLARE INTEGER WinExec IN kernel32 STRING lpCmdLine,;
INTEGER nCmdShow
DECLARE INTEGER FindWindow IN user32;
STRING lpClassName, STRING lpWindowName
DECLARE INTEGER SetWindowPos IN user32;
INTEGER hwnd,;
INTEGER hWndInsertAfter,;
INTEGER x,;
INTEGER y,;
INTEGER cx,;
INTEGER cy,;
INTEGER wFlags
= WinExec("notepad.exe", 1)
* find its hwnd
nHwnd = FindWindow(NULL, "Sin título: Bloc de notas")
* Note you must supply the EXACT Caption of the window)
* force it inside our form
SetParent(nHwnd,ThisForm.HWnd)
* size it
LOCAL nLeft,nTop,nWidth,nHeight
nLeft = ThisForm.shape1.Left
nTop = ThisForm.shape1.Top
nWidth = ThisForm.shape1.Width
nHeight = ThisForm.shape1.Height
SetWindowPos(nHwnd, 1,nLeft, nTop,nWidth, nHeight,64)
*********************
Suerte
zarlu
Chetumal, Quintana Roo, México