EIntfCastError クラスの例外とは?


Piknic  2005-02-19 05:31:20  No: 13314

初めまして、Piknic と申します。

現在、TExcelApplicationを使用して、エクセルファイルに接続し、
いろいろな操作をしているのですが、
" EIntfCastError クラスの例外、'Interfaceはサポートされていません。' "
という例外が発生します。
発生するタイミングは任意なので、原因がつかめません。

どなたか、解決策をご教授お願いできないでしょうか?

[開発環境]
DELPHI 5 EnterPrise
[OS]     Windows 2000
[OFFICE] 2000
ちなみに、Delphi5 の Servers の標準は「excel97.pas」だったので、
「excel2000.pas」に変更してあります。

次ページに例外が発生する個所と、その部分のソースを掲載します。


Piknic  2005-02-19 05:31:53  No: 13315

const
  LCID: DWORD =LOCALE_SYSTEM_DEFAULT;

・・・

{ボタン実行時処理}
procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
begin
  for i := 0 to 4 do begin
    try
    //エクセルファイルへの接続
      if not ExcelAppconnect(TheTmpFile)then Exit;
    //・・・
    //・・・
    finally
      ExcelAppDisconnect;
    end;
  end;
end;

{エクセル接続関数}
function TForm1.ExcelAppconnect(ABookName: String) : boolean;
begin
  try
    result := true;

    ExcelApp.Connect;

    //ブックを開いてWorkbook,WorkSheetに接続
    ExcelApp.Workbooks.Open(ABookName,  {ABookName = 操作対象ファイル}
                      EmptyParam,EmptyParam,EmptyParam,
                      EmptyParam,EmptyParam,EmptyParam,
                      EmptyParam,EmptyParam,EmptyParam,
                      EmptyParam,EmptyParam,EmptyParam,LCID);
//↑↑↑ExcelApp.Workbooks.Openで上記の例外が発生してしまいます。  
  
  
    Workbook.ConnectTo(ExcelApp.ActiveWorkbook as _workbook);

    ExcelApp.Visible[LCID] := false;
//↑↑↑まれにExcelApp.Visible[LCID] := false; 
//でも上記の例外が発生してしまいます。  
    ExcelApp.DisplayAlerts[LCID] := False;
//↑↑↑まれにExcelApp.DisplayAlerts[LCID] := False; 
//でも上記の例外が発生してしまいます。  

  except
    result := false;
    MessageDlg('ワークブックへの接続に失敗しました。', mtError, [mbOK], 0);
    Exit;
  end;
end;

{エクセル接続切断関数}
procedure TForm1.ExcelAppDisconnect;
begin
  try
    Workbook.Disconnect;
    ExcelApp.Quit;
    ExcelApp.Disconnect;
  except
    MessageDlg('ワークブックとの接続切断に失敗しました。', mtError, [mbOK], 0);
    Exit;
  end;
end;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加