Try adding this error handler - It may not solve any problems, but it will help decode some of the cryptic OLE automation errors you can recieve which helps better understand what is happening.
' you can either include winapi.inc or...
declare function FormatMessage lib "kernel32.dll" alias "FormatMessageA" (dwFlags&, lpSource as any, dwMessageId&, dwLanguageId&, lpBuffer$, nSize&, arglist as any) as long
' setup error handler
On Error Goto RELEASE_OBJECTS
dim vpvObj as variant
dim vappsOpen as variant
Dim ErrNum&, lReturn&, lError&
Dim sHex$, sReturn$, strError$, message$