Pues no se de dónde te inventaste
teLibro y
teHoja... los nombres que se utiliza al trabajar con los métodos de un objeto OLE-COM son definidos por el desarrollador de dichos objetos (en éste caso Microsoft).
Si quieres acceder a una hoja diferente debes utilizar otros índices; por ejemplo:
worksheets[6]; tambien es posible hacerlo de la siguiente forma:
Código Delphi
[-] excel.workbooks('libro6.xls').worksheets('hoja6').activate;
excel.activesheet.
Te muestro de nuevo un ejemplo con un documento de Excel que ya existe. Tambin te muestro la forma de uso de
GetActiveOleObject;
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
var excel: OleVariant;
begin
try
excel := GetActiveOleObject('Excel.Application');
except
try
excel := CreateOleObject('Excel.Application');
except
ShowMessage('No se pudo crear el objeto de Excel');
Exit;
end;
end;
excel.Workbooks.Open('c:\librucho1.xls').worksheets[1].shapes.addpicture('C:\Imágenes\ClubDelphi.jpg', False, True, 0, 0, -1, -1);
excel.visible := True
end;
Saludos