Для создания COM-объекта Microsoft Excel необходимо в методе CreateObject указать программный идентификатор «Excel.Application»:
Var
Excel: Variant;
Begin
Excel := Variant.CreateObject("Excel.Application");
Экземпляр COM-объекта будет создан в памяти компьютера. Для полноценной работы с приложением Excel необходимо в нем создать новую книгу, либо открыть уже существующую, и установить для свойства «Application.Visible» (См. справку по Visual Basic) значение True:
Var
Excel: Variant;
Begin
Excel := Variant.CreateObject("Excel.Application");
//Создание новой книги
Excel.GetProperty("Workbooks").Invoke("Add", New Variant[0]);
//либо, открытие существующей книги
Excel.GetProperty("Workbooks").Invoke("Open", "c:\Book1.xlsx");
//Отображение приложения
Excel.SetProperty("Visible", True);
После этого окно приложения будет отображено на экране.
В операционной системе Windows 7 разработчиками Microsoft был изменен подход к работе с окнами, поэтому код указанный выше приведет к созданию приложения Excel, но приложение не получит фокус. Окно приложения будет расположено на заднем плане, а его ярлык будет доступен только на панели задач. Если необходимо перевести окно на передний план и передать ему фокус, то существует следующий путь обхода: перед отображение окна необходимо минимизировать размеры окно, а затем восстановить их. В Fore для этого можно использовать следующий код:
Enum XlWindowState
xlMaximized = -4137, xlMinimized = -4140, xlNormal = -4143
End Enum XlWindowState;
Var
Excel: Variant;
Begin
Excel := Variant.CreateObject("Excel.Application");
Excel.GetProperty("Workbooks").Invoke("Add", New Variant[0]);
Excel.SetProperty("WindowState", XlWindowState.xlMinimized);
Excel.SetProperty("WindowState", XlWindowState.xlMaximized);
Excel.SetProperty("Visible", True);
См. также: