お世話になります。
エクセルのデータをメモに読込(表示)に関して投稿されていた内容を
ベースに作成していましたが、コンパイルはうまく行くのですが実行す
ると「ソースファイル:ComObj.pasが見つかりません」とメッセージが表示さ
れてしまいます。
usesにComObjを追加しておりますが何が原因でしょうか?
コードは下記の通りです。
procedure TForm1.Button3Click(Sender: TObject);
var
Excel: Variant;
WorkBook: Variant;
WorkSheet: Variant;
iRow: Integer;
iCol: Integer;
Ctmp: Variant;
begin
Memo1.Clear;
Excel := CreateOleObject('Excel.Application');
Excel.Visible:=True;
WorkBook := Excel.WorkBooks.Open(FileName :='C:\TEST.xls', readOnly :=False);
WorkSheet := WorkBook.WorkSheets('woo');//[1];
for iRow := 1 to 5 do
begin
//Ctmp :='';
for iCol := 1 to 5 do
begin
Ctmp := WorkSheet.Cells[iRow, iCol].value;
Memo1.Lines.Add(InttoStr(Ctmp));
end;
end;
end;
分かる方いらっしゃいましたらご指導ください。宜しくお願いします。
すみません。補足させていただきます。
>//Ctmp :='';
は本来 Ctmp :=''; になってました。
結果は同じでしたが。
こちらの環境はDelphi7ですが、C:\Program Files\Borland\Delphi7\Source\Rtl\Common\にcomobj.pasが存在します。
Comobj.pas自体がないのでは?
検索パスの設定を変更すると見つけられなくなります。
検索パスは、環境オプションか、プロジェクトオプションにあったと思います。
>「ソースファイル:ComObj.pasが見つかりません」とメッセージが表示さ
れてしまいます。
使用しているのがDelphi6Personalなら、この原因はhttps://www.petitmonte.com/bbs/answers?question_id=787
に書いてあるとおり。
ソースでは
WorkSheet := WorkBook.WorkSheets('woo');//[1];
を
WorkSheet := WorkBook.WorkSheets['woo'];
とすれば、問題なく実行されます。
平蔵さん、にしのさん、kazuさんおはようございます。
こちらの環境はDelphi6のPersonalでしたのでcomobj.pasを検索したところ
存在していませんでした。
ご指摘通りソースを
>WorkSheet := WorkBook.WorkSheets['woo'];
にした所希望通り動きました。
ちょっと疑問なのですがProfessional 以上だったらソースを変えなくても
動いたのでしょうか?それともソース自体がおかしかったのでしょうか?
VBAしかやった事なかったのでDelphiは難しいです。けど、やりがいあり
ますね。
みなさん、どうもありがとうございました。感謝申し上げます。
ツイート | ![]() |