はじめまして、イキナリぶしつけな質問で申し訳ありません。
いまDelphi5でExcelのシートからデータを読み込み、条件フラグにより内容を変えながら計算して、元データと結果をDelphiに表示させようとしています。
何とかExcelの起動は何とかなったのですが、セルの読み込みがバリアントエラーではじかれてしまいます。
どなたか読み込み方法を教えていただけないでしょうか?
プログラムは下記の要領です。
var
ExcelApp :Olevariant;
ExcelBook:Olevariant;
ExcelSheet:Olevariant;
iRow:Integer;
iCol:Integer;
begin
ExcelApp := CreateOleObject('Excel.Application');
ExcelBook := ExcelApp.WorkBooks.Open(c:\****\test.xls,False);.
ExcelSheet := ExcelBook.WorkSheets['テスト用'].Activate;
for iRow := 1 to 50 do begin cTemp := '';
for iCol := 1 to Cols do begin
//セルのデータを得る
cTemp := ExcelSheet.Cells[iRow,iCol].value; <-ここで、エラー
処理続く
end;
各行のデータを元に計算
end;
end;
はじめまして。
Office操作は興味がありますので、機会あるごとに実験しています。
一応、下記でいけました。ビギナーにつき、正確な事はわかりませんが、
.Activate とういのがダメな原因のようです。
・usesにComObjを追加、Memo1を追加しています。
var
ExcelApp: Olevariant;
ExcelBook: Olevariant;
ExcelSheet: Olevariant;
iRow: Integer;
iCol: Integer;
Ctmp: Variant;
begin
ExcelApp := CreateOleObject('Excel.Application');
ExcelBook := ExcelApp.WorkBooks.Open('c:\tmp\test.xls', False);
ExcelSheet := ExcelBook.WorkSheets['テスト用']; //.Activate; <=ココです。
Memo1.Clear;
for iRow := 1 to 5 do
begin
Ctmp := '';
for iCol := 1 to 5 do
begin
Ctmp := ExcelSheet.Cells[iRow, iCol].value;
Memo1.Lines.Add(InttoStr(Ctmp));
end;
end;
end;
有難うございました。
読み込めました!!
まさか、Activateが原因とは思いもしませんでした。
本当に有難うございました。
私もいろいろとExcel関連については調べているのですが、
下記のページの[ダウンロード]からExcel操作に関するファイルがダウンロードできます。
ちなみにクラスになっていて参考になります。
http://www.geocities.jp/lupin_home/
ツイート | ![]() |