Я использую Windows 10, Delphi Berlin и Microsoft Office 2007. Я пытаюсь получить количество открытых окон Excel. Когда я загружаю файл Excel и открываю его, отдельный Excel запускается, поэтому в одном окне Excel существует только одна книга.Excel Application.Windows.Count возвращает 0
Я импортировал библиотеку объектов Microsoft Office 12.0 и написал 2 процедуры. Button1Click работает с tExcelApplication и Button2Click делает с CreateOleObject ('excel.application'). После запуска Excel работает хорошо, но граф распознается как ошибка только в редакторе, а последний возвращает 0.
Как удалить раздражающее сообщение об ошибке или заставить _Excel работать?
type
TForm1 = class(TForm)
ExcelApplication1: TExcelApplication;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Caption := IntToStr(ExcelApplication1.Windows.Count);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
_Excel: Variant;
begin
_Excel := CreateOleObject('excel.application');
Button2.Caption := _Excel.windows.count;
end;
В этой же ситуации две процедуры производят отличное возвращаемое значение. –
Итак, вторая часть вашего вопроса - почему поздний связанный код возвращает ноль? Или это то, что ранний связанный код возвращает ноль? Вы на 100% уверены, что действительно есть окно, а excel дает неправильное значение. Кажется, трудно поверить. –
@JOS попробуйте GetActiveOleObject, вы можете запустить новый процесс excel. –