Watch, Follow, &
Connect with Us

For forums, blogs and more please visit our
Developer Tools Community.


Welcome, Guest
Guest Settings
Help

Thread: Delphi10でWORD、EXCELのデータにアクセスできますか?



Permlink Replies: 8 - Last Post: Jul 6, 2016 10:16 PM Last Post By: Hideyuki Oya
Hideyuki Oya

Posts: 87
Registered: 6/6/07
Delphi10でWORD、EXCELのデータにアクセスできますか?
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jun 8, 2016 2:20 AM
Delphi10 Professionalを使っています。
WORDやEXCELのデータにはアクセスできないのでしょうか?
以前のバージョンではできたようなのですが。
何か方法はありませんか?
Hideyuki Oya

Posts: 87
Registered: 6/6/07
Re: Delphi10でWORD、EXCELのデータにアクセスできますか?
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jun 8, 2016 3:51 PM   in response to: Hideyuki Oya in response to: Hideyuki Oya
なんとかなりそうです。
OLEContainerというコンポーネントが見つかったのでプロパティのなかに何かないか探していましたが、
このコンポーネントを置いた後、ダブルクリックしたら、WORDやEXCELを選択できるようになっていました。
後は、以前のバージョンのweb記事を参考にしてみます。


Hideyuki Oya wrote:
Delphi10 Professionalを使っています。
WORDやEXCELのデータにはアクセスできないのでしょうか?
以前のバージョンではできたようなのですが。
何か方法はありませんか?
Hideyuki Oya

Posts: 87
Registered: 6/6/07
Re: Delphi10でWORD、EXCELのデータにアクセスできますか?
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 6, 2016 5:24 PM   in response to: Hideyuki Oya in response to: Hideyuki Oya
わかりませんでした。
この後どうすればいいのでしょうか?
やりたいことはExcel内のデータを抜き出して、別のシートに書き込むだけでいいんですけど。
(もちろん別の処理もありますけど、その部分は何とかできるようになりました)

Hideyuki Oya wrote:
なんとかなりそうです。
OLEContainerというコンポーネントが見つかったのでプロパティのなかに何かないか探していましたが、
このコンポーネントを置いた後、ダブルクリックしたら、WORDやEXCELを選択できるようになっていました。
後は、以前のバージョンのweb記事を参考にしてみます。


Hideyuki Oya wrote:
Delphi10 Professionalを使っています。
WORDやEXCELのデータにはアクセスできないのでしょうか?
以前のバージョンではできたようなのですが。
何か方法はありませんか?
igy kk

Posts: 147
Registered: 9/11/03
Re: Delphi10でWORD、EXCELのデータにアクセスできますか?
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 6, 2016 5:52 PM   in response to: Hideyuki Oya in response to: Hideyuki Oya
OLEオートメーション を使って、WORDやEXCELのデータにアクセスしてみるのは、いかがですか?
Hideyuki Oya

Posts: 87
Registered: 6/6/07
Re: Delphi10でWORD、EXCELのデータにアクセスできますか?
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 6, 2016 6:49 PM   in response to: igy kk in response to: igy kk
igy kk wrote:
OLEオートメーション を使って、WORDやEXCELのデータにアクセスしてみるのは、いかがですか?

回答ありがとうございます。
OLEオートメーションで検索して、次のサイトを参考にプログラムを入力してみたのですが、エラー(赤い波線)が表示されます。
何か抜けていますか?(uses節などに) (ComObjは追加しています)
http://www.migaro.co.jp/contents/products/delphi400/tips/report/5.html
//*******************************************************************
procedure TForm1.Button1Click(Sender: TObject);
var
MsExcel : Variant;
MsApplication: Variant;
WBook : Variant;
WSheet : Variant;
i : integer;

begin
Table1.Open;//ここにエラー

//Excel起動
MsExcel := CreateOleObject('Excel.Application');
MsApplication := MsExcel.Application;
MsApplication.Visible := True;
WBook := MsApplication.WorkBooks.Add ;
WSheet :=WBook.ActiveSheet;
//Excelにタイトル出力
// WSheet.Cells[1,3].Value := '得意先マスター一覧表';//以下最後のところ(Value)にエラー
WSheet.Cells[1,3].Value := '得意先マスター一覧表';
WSheet.Cells[1,3].Font.Size := 15;
WSheet.Cells[2,1].Value := '得意先コード';
WSheet.Cells[2,2].Value := '得意先名';
WSheet.Cells[2,3].Value := '住所';
WSheet.Cells[2,1].Font.Bold := 'True';
WSheet.Cells[2,2].Font.Bold := 'True';
WSheet.Cells[2,3].Font.Bold := 'True';
//Excelにデータ出力
with Table1 do
begin
i := 0;
First;
while not eof do
begin
WSheet.Cells[i+3,1].Value := FieldByName('CUSTNO').AsInteger;
WSheet.Cells[i+3,2].Value := FieldByName('COMPANY').AsString;
WSheet.Cells[i+3,3].Value := FieldByName('ADDR1').AsString;
Next;//以下はOK
i := i + 1;
end;
Active := False;
end;
//保存の確認を行う
WBook.Saved := False;
//Excel終了
MsApplication.WorkBooks.Close;
MsExcel.Quit;


end;

igy kk

Posts: 147
Registered: 9/11/03
Re: Delphi10でWORD、EXCELのデータにアクセスできますか?
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 6, 2016 7:08 PM   in response to: Hideyuki Oya in response to: Hideyuki Oya
Hideyuki Oya wrote:
OLEオートメーションで検索して、次のサイトを参考にプログラムを入力してみたのですが、エラー(赤い波線)が表示されます。

コンパイル時に何かエラーは表示しましたか?
あるいは、コンパイルして実行した場合、何かエラーは表示しましたか?
Hideyuki Oya

Posts: 87
Registered: 6/6/07
Re: Delphi10でWORD、EXCELのデータにアクセスできますか?
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 6, 2016 7:31 PM   in response to: igy kk in response to: igy kk
igy kk wrote:
Hideyuki Oya wrote:
OLEオートメーションで検索して、次のサイトを参考にプログラムを入力してみたのですが、エラー(赤い波線)が表示されます。

コンパイル時に何かエラーは表示しましたか?
あるいは、コンパイルして実行した場合、何かエラーは表示しましたか?

回答ありがとうございます。
実行すると、次のようなエラーメッセージが出ます。

[dcc32 エラー] TestUnit1.pas(45): E2003 未定義の識別子 : 'Table1'
[dcc32 エラー] TestUnit1.pas(67): E2003 未定義の識別子 : 'First'
[dcc32 エラー] TestUnit1.pas(70): E2003 未定義の識別子 : 'FieldByName'
[dcc32 エラー] TestUnit1.pas(70): E2066 演算子またはセミコロン (';') が必要です
[dcc32 エラー] TestUnit1.pas(71): E2066 演算子またはセミコロン (';') が必要です
[dcc32 エラー] TestUnit1.pas(72): E2066 演算子またはセミコロン (';') が必要です
[dcc32 エラー] TestUnit1.pas(76): E2129 読み取り専用プロパティに書き込むことはできません
[dcc32 致命的エラー] TestProject1.dpr(5): F2063 'TestUnit1.pas' ユニットはコンパイルできませんでした
igy kk

Posts: 147
Registered: 9/11/03
Re: Delphi10でWORD、EXCELのデータにアクセスできますか?
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 6, 2016 7:40 PM   in response to: Hideyuki Oya in response to: Hideyuki Oya
Hideyuki Oya wrote:
実行すると、次のようなエラーメッセージが出ます。

[dcc32 エラー] TestUnit1.pas(45): E2003 未定義の識別子 : 'Table1'
[dcc32 エラー] TestUnit1.pas(67): E2003 未定義の識別子 : 'First'
[dcc32 エラー] TestUnit1.pas(70): E2003 未定義の識別子 : 'FieldByName'
[dcc32 エラー] TestUnit1.pas(70): E2066 演算子またはセミコロン (';') が必要です
[dcc32 エラー] TestUnit1.pas(71): E2066 演算子またはセミコロン (';') が必要です
[dcc32 エラー] TestUnit1.pas(72): E2066 演算子またはセミコロン (';') が必要です
[dcc32 エラー] TestUnit1.pas(76): E2129 読み取り専用プロパティに書き込むことはできません
[dcc32 致命的エラー] TestProject1.dpr(5): F2063 'TestUnit1.pas' ユニットはコンパイルできませんでした

そのエラーメッセージの内容から、問題のある箇所を、修正してみるのは、いかがですか?
Hideyuki Oya

Posts: 87
Registered: 6/6/07
Re: Delphi10でWORD、EXCELのデータにアクセスできますか?
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 6, 2016 10:16 PM   in response to: igy kk in response to: igy kk
回答ありがとうございます。
うまくいきました。
エラーメッセージの出ているところだけコメントにして、エラー(赤い波線)にかまわず実行したら動作しました。
Excelにもデータがセットされています。

そのエラーメッセージの内容から、問題のある箇所を、修正してみるのは、いかがですか?
Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02