Mensaje    Asunto: Cerrar Excel por automatización Responder citando

Hola, estoy haciendo un propgarama que lea datos de una hoja de excel a una base de datos, y, para que no moleste al usuario estot ocultando el programa Excel, pero quisiera de este mismo modo poder cerrarlo, este pequeño procedimiento abre una hoja de excel e inserta los nombres en un ListBox,

Código:
void __fastcall TFrmMain::BtnOpenClick(TObject *Sender)
{
   String OrigenPath;

   if(NormalOpen->Execute())
      {

         OrigenPath=NormalOpen->FileName;
         Variant xlApp = CreateOleObject("Excel.Application");
         xlApp.OlePropertySet("Visible", false);
         Variant xlLibros = xlApp.OlePropertyGet("Workbooks");
         xlLibros.OleProcedure("Open", OrigenPath.c_str(), 0, false);
         Variant vLibro = xlLibros.OlePropertyGet("Item",1);
         
         Variant vHojas = vLibro.OlePropertyGet("Worksheets");
         
         int NumHojas=vHojas.OlePropertyGet("Count");

         for(int PosHoja=1;PosHoja<=NumHojas;PosHoja++)
            {
               Variant vHoja = vHojas.OlePropertyGet("Item",PosHoja);
               LstBHojas->Items->Add(vHoja.OlePropertyGet("Name"));   
            }
         xlApp.OlePropertyGet("ActiveWindow").Exec(PropertySet("Close"));
      }
}


Estoy tratando de cerrar la instancia de Excel, abrí el editor de Macros y al observar la macro que cree me devuelve esto:

Código:
ActiveWindow.Close


Por o que traté de "formar" la instrucción

Código:
xlApp.OlePropertyGet("ActiveWindow").Exec(PropertySet("Close"));


El programa se compila bien, pero al ejecutarlo me devuelve error de violación de acceso.