初めまして、Piknic と申します。
現在、TExcelApplicationを使用して、エクセルファイルに接続し、
いろいろな操作をしているのですが、
" EIntfCastError クラスの例外、'Interfaceはサポートされていません。' "
という例外が発生します。
発生するタイミングは任意なので、原因がつかめません。
どなたか、解決策をご教授お願いできないでしょうか?
[開発環境]
DELPHI 5 EnterPrise
[OS] Windows 2000
[OFFICE] 2000
ちなみに、Delphi5 の Servers の標準は「excel97.pas」だったので、
「excel2000.pas」に変更してあります。
次ページに例外が発生する個所と、その部分のソースを掲載します。
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;
ツイート | ![]() |