2017-02-15 9 views
0
私は現在、Excelのオートメーションライブラリは、ユーザーのコンピュータ上に存在するかどうかを確認するには、次のコードを使用しています

でExcelのバージョンを検出:1ユーザーのみが2003エクセル持っていたまで、これが正常に動作しているデルファイ

CoInitialize(nil); 
    ExcelExists := true; 
    try 
    TestExcel := CreateOleObject('Excel.Application'); 
    except 
    ExcelExists := false; 
    end; 
    if ExcelExists then begin 
    TestExcel.Workbooks.Close; 
    TestExcel.Quit; 
    TestExcel := Unassigned; 
    end; 

上記のコードはExcelを持っていると言っていますが、私のExcelの自動化は彼のためには機能しませんし、Excel 2003より前のバージョンではうまく機能しません。

インストールされているExcelのバージョンが2007以降であることを確認するにはどうすればよいですか?デビッドの答えに基づいて


、私は、もしExcelExists文の後にこれを入れてしまった、仕事をしているようだ:

S := TestExcel.Application.Version; 
if (copy(S, 3, 1) <> '.') or (S < '12') then 
    ExcelExists := false; 

バージョン12のOffice 2007

+0

バージョンプロパティを使用しても問題ありません。バージョン12はExcel 2007です.v12では、主に国際化や言語などのオートメーション関連のものがいくつか変更されています。しかし、私はなぜExcel 2003が動作しないのだろうと思っています。 1995年以来、私たちはExcelとのオートメーションを使用しました。そして、あなたの事例のように、ワークブックを閉じて終了するようなすべての基本的なことが同じように機能します。 –

答えて

4

Versionを読むましたExcel Applicationオブジェクトのプロパティ。これをコードがサポートする最小値と比較してください。