JAVH Lt JG


Registrado: 23 Oct 2003Mensajes: 61Ubicación: Tampico Tamaulipas, México
|
Publicado: Sab 05 Ene, 2008 11:56 pm Asunto: Cerrar Excel por automatización |
|
|
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. |
|