- ベストアンサー
Excelバージョンに対応するリリースNOを知りたい。
こんにちは。 INFO("release")にてExcelバージョンを判断してVBAを分岐処理させたく思っています。 Excel2000 ⇒ 9.0 Excel2002 ⇒ ??? Excel2003 ⇒ 11.0 Excel2000とExcel2003は手元にあるので分かりますが、リリースのNoを知りたく思っています。 多分、Excel2002は10.0かと想像されますが、その他に9.1とか9.2とかあるのでしょうか。 ご存知の方宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 --------------------------------- Excel97 ⇒ 8.0 ←枝番は、"8.0 X,8.0 D"のように文字列で返されます Excel2000 ⇒ 9.0 Excel2002 ⇒ 10.0 Excel2003 ⇒ 11.0 Excel2007 ⇒ 12.0 --------------------------------- 分岐処理は、 If Val(Application.Version) >8 Then とします。枝番がある可能性があるのですが、文字列で返されますので、Val 関数で数値に変えます。なお、Val関数のメモリリークを言う人がいるかもしれませんが、それは、VB5 以下の話です。VBAの現行バージョンでは問題ないはずです。 本来は、If ではなくて、ダイレクティブ #Ifで分岐するのですが、私も実際やってみたら、見事にコケてしまい、コードを全面的に変更しました。マイグレーションのある程度の知識はあったつもりですが、実践が伴っていませんでした。
その他の回答 (2)
- KenKen_SP
- ベストアンサー率62% (785/1258)
発売時期の相違や修正プログラム適用の有無などで、Excel の バージョン(正確にはマイナーバージョン、リビジョン)が異なり ます。 詳細(マイナーバージョン)を調べたい場合は、Application.Build で調べることができます。Long 型の値を返します。 他には Application.CalculationVersion があります。こちらは、 Excel の「計算エンジンのバージョン」を Long 型で返します。 基本的にバージョン比較は、Application.Version の値を Val 関数 で数値化することで十分な場合がほとんどです。 # Application.Version は String 型(文字列)で返します。 # Excel97 については若干異なります。下記 URL を参照して下さい。 http://support.microsoft.com/kb/232652/en-us
お礼
有難う御座います。 参考にさせて頂きます。
- imogasi
- ベストアンサー率27% (4737/17069)
Sub test01() MsgBox Application.Version End Sub で示されるものではないですか。
お礼
ご回答有り難う御座います。 対応する番号を知りたかったのですが、 参考にさせて頂きます。
お礼
有難う御座います。 大変に参考になりました。