開発中の.NETコードから、自分のマシンにインストールされているExcelのバージョンを検出できるようにする必要があります。私は現在Application.Versionを使っていますが、サービスパックに関する情報は私には伝えません。私は、好ましくは、このような何かから離れて操縦するでしょうインストールされているExcelバージョン(およびサービスパック)の検出
: http://www.mvps.org/access/api/api0065.htm
マネージコード歓迎!
開発中の.NETコードから、自分のマシンにインストールされているExcelのバージョンを検出できるようにする必要があります。私は現在Application.Versionを使っていますが、サービスパックに関する情報は私には伝えません。私は、好ましくは、このような何かから離れて操縦するでしょうインストールされているExcelバージョン(およびサービスパック)の検出
: http://www.mvps.org/access/api/api0065.htm
マネージコード歓迎!
Public Shared Function GetExcelVersion() As Integer
Dim excel As Object = Nothing
Dim ver As Integer = 0
Dim build As Integer
Try
excel = CreateObject("Excel.Application")
ver = excel.Version
build = excel.Build
Catch ex As Exception
'Continue to finally sttmt
Finally
Try
Marshal.ReleaseComObject(excel)
Catch
End Try
GC.Collect()
End Try
Return ver
End Function
戻り値0以上であれば、それは新しいことを知っています。
残念ながら、このアプローチは唯一の信頼できるアプローチです。 Microsoft suggests using a similar technique(これは手動でチェックするためのものですが、コンセプトは同じです)。
これを管理コードで実行したい場合は、リンクからコードを移植し、新しいサービスパックがリリースされたときに簡単に拡張できるクラスを作成することをおすすめします。
堅牢ではありませんが、そのアプローチが私が知る唯一の方法です。
完全一致を確認する必要はありません。個々の値の比較を使用して、使用しているバージョンがSP1以上であるかどうかを確認できます。あなたが見つかりませんEXCEL場合は、バージョン番号が「11.0.6355.0」(あなたは比較を実装する必要があります)
あなたはexeファイルへのパスをレジストリ内のアプリのパスをチェックして、そのバージョンを得ることができます: 私は同じコードから特定のExcelのバージョンを開くしたい場合http://www.codeproject.com/KB/office/getting_office_version.aspx
非常にいいです!私はそれを使用するつもりです! –
何を参照してください? –
どういう意味ですか? – Shimmy
あなたは私が欲しかった情報を私に与えました+1。しかし、私はexcel.Versionが文字列であることを指摘しなければなりません。たとえば「11.0」または「15.0」などです。 –