いつもお世話になっております。
ソロです。
今回、思わぬエラーに悩まされております。
エクセルのエラーなのですが、
ファイルの保存方法によってエラーとなってしまうようです。
下のソースで説明しますと、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;
Delphiのバージョンは何でしょうか。
おそらく、TExcelApplicationが、Office97コンポーネントだからです。
Office2000コンポーネントにすれば動くと思います。
参考URL
http://www.borland.co.jp/delphi/papers/servers/
いや、参考にならなかったみたいです。
Delphi5のアップデート情報に書いてあります。
Delphi5以外はわかりません。
にしのさん、いつもありがとうございます。
参考URLを中心にまだいろいろ調べてみます。
なので、まだ未解決にさせてもらいます。。<(_ _)>
ツイート | ![]() |