Excel97-2003の2重チェック

解決


田中  2011-06-27 19:20:41  No: 40687

Delphi2010で
Excel97-2003の2重チェックをするには
どうしたらよろしいのでしょうか?


Mr.XRAY  2011-06-28 01:00:13  No: 40688

こんにちは.Mr.XRAYと申します.
ワードやエクセルの操作関係のプログラムを作ることがあります.
勉強不足だと思いますが,いままで,

>Excel97-2003の2重チェック

という表現を聞いたことがありません.
質問とは関係ないと思いますが,もし差し支えなければ,どのようなチェックのこと
か,後学のために,教えていただけないでしょうか.
「そんなことも知らないのか!」と言うのであれば,無視してください.


田中  2011-06-28 01:35:01  No: 40689

すいません。質問がおかしかったです。
2重チェックではなく、2重起動チェックです。
test.xlsが既に起動されている状態で、
Delphiからこのtest.xlsを現状読込めてしまうのですが、
これを読込めなくするためにはどうしたらよろしいですか?


Mr.XRAY  2011-06-28 02:07:09  No: 40690

Mr.XRAYです.
ありがとうございます.

>2重チェックではなく、2重起動チェックです。

これもよく理解できませんが(失礼!!)

エクセルのブックは,例えばエクスプローラ等から起動する場合,
複数のエクセルがインストールされていれば,
エクセルのバージョンを選択して起動できます(プログラムの選択等でも).

Delphi等,プログラムで操作するエクセルのバージョンは,どのようにエクセルのブックを扱うかにもよります.
少なくても,エセルのオブジェクトを生成してエクセルを起動する場合は,
カレントバージョンと言われるエクセルを操作することになります.

>これを読込めなくするためにはどうしたらよろしいですか?

エクセルのブックを表示しないようにするのでしょうか?
エクセルそのものを起動しないようにするのでしょうか?
読み込めないように,ということなので,前者?


Mr.XRAY  2011-06-28 02:10:46  No: 40691

>エクセルのバージョンを選択して起動できます(プログラムの選択等でも).

プログラムの選択でなければ,例えば拡張子の関連付けでしょうか.


Mr.XRAY  2011-06-28 02:19:20  No: 40692

>>2重チェックではなく、2重起動チェックです。

>これもよく理解できませんが(失礼!!)

エクセル97が起動していて,更に別にエクセル2003が起動しても,
決して二重起動ではありません.
なぜならば,それぞれ別のプログラムですから.


au  2011-06-28 02:23:39  No: 40693

エクセルがファイルを開く時は、読込専用で開いたので無ければ後からファイルを開く時に書き込みモードでファイルを開こうとした時にエラーになります。

なんで、
TFileStream.Create('test.xls', fmOpenReadWrite)
が成功するかどうかでチェックしたらいいんじゃないでしょうか?


Mr.XRAY  2011-06-28 07:15:08  No: 40694

こんにちは,Mr.XRAYです.

バージョンとの違いとか,ブックを読み込ませないとか,希望する動作が理解できませんが,
もし,単に「エクセルが既に起動しているかをチェック」というのであれば,

[エクセルが起動中かを調査]
http://mrxray.on.coocan.jp/Delphi/plExcelEx/T_IsActiveExcel.htm

で可能です.


田中  2011-06-28 17:59:09  No: 40695

説明が悪くてごめんなさい。
具体的に言うと

Excel := CreateOleObject('Excel.Application');
WorkBook :=Excel.WorkBooks.Open(FileName := 'test.xls', readOnly := False);

他のプロセスで、test.xlsが起動されているかをチェックしたいのです。

何度もすいません。


Mr.XRAY  2011-06-29 00:03:30  No: 40696

こんにちは,Mr.XRAYです.

>他のプロセスで、test.xlsが起動されているかをチェックしたいのです。

でしたら,auさんの方法でいいと思います.
う〜ん,最初の 「Excel97-2003の2重チェックをするには」が頭に残って,考えすぎてしまいました.

>Delphiからこのtest.xlsを現状読込めてしまうのですが、 

で気づくべきでしたね.
読解力がまだまだ不足です,勉強し直してきます.
auさんに脱帽,って,理解できなかったのは私だけか?


田中  2011-07-07 01:40:40  No: 40697

ありがとうございます。
うまくいきました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加