掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ExcelのデータをDelphiで読み込むには? (ID:4615)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>頓珍漢でしたらすいません。 これは違いますね.多分,頭の中で考えている動作がお互いに異なって いるためだと思います.以下にテストしてコードをリストします. 多分,ウォレスさんのは2.じゃないかと思います.私が想像したのは 1.の方です.新規だからどちらでも同じだと思ったんです. それと,D6 Personal版でも,ちょっと面倒ですけど,ActiveXの取込み をすると,TExcelApplicationが使えるようになります. では,コード流します(Private以降). private { Private 宣言 } Excel: Variant; WorkBook: Variant; WorkSheet: Variant; public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.dfm} // 感想 // OleObjectはコード補完機能が使えないのが不便 // 逆にExce VABのコードがそのまま利用可能なのは便利 // でもやっぱりTExctApplictionの方が私はいい // 以下のコードはusesにComobjが必要 //==================================================================== // 1. // 新規にブックを作成し表示する // 表示したExelのセルに値をセット //==================================================================== procedure TForm1.Button1Click(Sender: TObject); begin {Excelのオブジェクトを作成} Excel := CreateOleObject('Excel.Application'); {ブックを作成} WorkBook := Excel.Workbooks.Add; {シートオブジェクトを定義} WorkSheet := WorkBook.WorkSheets[1]; {表示} Excel.Visible:=True; {セルA1に文字ABCをセット} WorkSheet.Cells[1,1].Value:='ABC'; end; //==================================================================== // 2. // 既に誰かが表示したエクセルを操作する // でも誰だ.このプログラムを起動する人とは別? //==================================================================== procedure TForm1.Button2Click(Sender: TObject); begin {表示中のExcelのオブジェクトを取得} Excel:=GetActiveOleObject('Excel.Application'); {シートオブジェクトを定義(ここではSheet3)} WorkSheet := Excel.WorkSheets[3]; {そのシートをアクティブにする} WorkSheet.Activate; {表示} Excel.Visible:=True; {セルA1に文字ABCをセット} WorkSheet.Cells[1,1].Value:='ABC'; end; //==================================================================== // 終了処理 // これでいいのかは不明(取敢えずメモリリークはない) //==================================================================== procedure TForm1.FormDestroy(Sender: TObject); begin try WorkBook.close; WorkBook:=unAssigned; WorkSheet:=unAssigned; Excel.Quit; Excel:=unAssigned; except end; end; end.
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.