OLEエラーの取得方法


ソロ  2002-11-20 01:36:26  No: 2165

いつもお世話になっております。
ソロです。
今回、思わぬエラーに悩まされております。

エクセルのエラーなのですが、
ファイルの保存方法によってエラーとなってしまうようです。
下のソースで説明しますと、Excel2000で保存したものを
開こうとするとエラーとなり、
97で保存したものを開こうとしてもエラーになりません。

1、プログラムで制御する
2、OLEエラーを取得して注意を促す

の2つを考えていますが、
どちらもやり方が分からない状態です。。
ご存知の方いらっしゃいましたら教えていただけないでしょうか。

  try
    //Excelブックを開いてシートを指定する
    ExcelApplication1.Visible := False;
    ExcelApplication1.WorkBooks.Open(''+BookName+'');
    ExcelWorkBook1 := ExcelApplication1.activeworkbook;    ←おそらくここで落ちている
    ExcelSheet1 := ExcelApplication1.Worksheets.item [SheetName];
    ExcelSheet1.activate;

    //なんらかの処理

    ExcelApplication1.DisplayAlerts := False;
    ExcelSheet1:= unAssigned;
    //名前を付けて保存
    ExcelWorkBook1.SaveAs(''+BookName+'');
    ExcelWorkBook1:= unAssigned;
    ExcelApplication1.ActiveWorkbook.Close(''+BookName+'');
    ExcelApplication1.Quit;
    ExcelApplication1 := unAssigned;

  except
    //エラー処理
    on OleExcept: EOleException do
    begin
      MessageDlg('ファイルの保存形式を確認してください',mtInformation,[mbOK],0);
    exit;
    end; 
  end;


にしの  2002-11-20 02:20:49  No: 2166

Delphiのバージョンは何でしょうか。
おそらく、TExcelApplicationが、Office97コンポーネントだからです。
Office2000コンポーネントにすれば動くと思います。

参考URL
http://www.borland.co.jp/delphi/papers/servers/


にしの  2002-11-20 02:22:07  No: 2167

いや、参考にならなかったみたいです。
Delphi5のアップデート情報に書いてあります。

Delphi5以外はわかりません。


ソロ  2002-11-20 02:28:41  No: 2168

にしのさん、いつもありがとうございます。

参考URLを中心にまだいろいろ調べてみます。
なので、まだ未解決にさせてもらいます。。<(_ _)>


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








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