【2016以降】Excelのバージョンを調べたい【VBA】

VBA
スポンサーリンク

社内では様々なバージョンのExcelが存在しています。Excelのバージョンを調べてそれぞれ処理を変えたいです。簡単にできるかと思いきや手間がかかりましたので、記録に残します。

スポンサーリンク

Excel2016以降のバージョンを知りたい

Excelバージョン2016以降は2019, 2021, 365があります。この4つのバージョンをVBAで調べようと思い最初に使用したのがこのVBA関数です。

Application.Version

結果がこちら

Excelバージョン結果
36516
202116
201916
201616

全部一緒かーーーい!!!これではどのバージョンを使用しているのかわかりません。この後レジストリの中など確認したのですが、よけい混乱してわからなくなってしまいました。

Excel関数でバージョンを確認する

VBAで判定は難しそうだったので、Excel関数の方でできないか考えました。Excelバージョンによって使用できる関数が違いますのでその違いを利用してバージョンを取得します。

Excel 2019 判定用関数

まずお好きなセル(今回はA1からA4)にExcel関数を書きます。A1には

=IFS(TRUE,0,FALSE,1)

IFS関数を書きます。この関数はExcel2019から使用できる関数です。この関数が動かないなら2016以前と判定できます。

Excel 2021 判定用関数

A2セルには以下のように記載します。

=XLOOKUP(A100,B100:B110,C100:C110)

XLOOKUP関数を使用します。引数の値は適当です。この関数は2021から動作します。この関数が動くなら2021以降となります。

Excel 365 判定関数

A3セルには以下のように記載します。

=TEXTSPLIT(A4,",")

A4セルには

aa,aa

といれておきます。TEXTSPLIT関数は365でのみ動作します。ですのでこの関数が動いていれば365となります。ちなみに結果はスピルされるので以下の画像のようになります。スピル覚えないといけませんね。

関数まとめ

関数はIFS、XLOOKUP、TEXTSPLITに限らずそれぞれのバージョンで動く関数であればなんでも大丈夫です。

Excelバージョンこのバージョン以降動作する関数
365TEXTSPLIT
2021XLOOKUP
2019IFS
2016

関数が動かないExcelで開くとどうなるか?

では2016でこのExcelを開くとどんな結果が返ってくるでしょうか?画面表示は上記エクセル画面と変わりありませんが、計算式に異変が生じていました。

{=_xlfn.IFS(TRUE,0,FALSE,1)}

{=_xlfn.XLOOKUP(A100,B100:B110,C100:C110)}

{=_xlfn.TEXTSPLIT(A4,",")}

計算式に「_xlfn.」という謎の接頭辞が表示されます。古いバージョンのエクセルで動かすことができない新しい関数がある場合、この接頭辞がつくようです。

そこでこの仕組みを利用することを思いつきました。

VBAでこのバージョンの違いを調べる時にこの「_xlfn」を利用したいと思います。対象のセルにこの「_xlfn」が存在していればその関数を動かすことができないということのなので、それを判定フラグに利用します。以下はソースです。

ExcelVersion = "365"

'365 or 2021以下
ExcelVersion = IIf(InStr(Range("A3").Formula, "_xlfn.") > 0, 2021, ExcelVersion)
'2021 or 2019以下
ExcelVersion = IIf(InStr(Range("A2").Formula, "_xlfn.") > 0, 2019, ExcelVersion)
'2019 or 2016以下
ExcelVersion = IIf(InStr(Range("A1").Formula, "_xlfn.") > 0, 2016, ExcelVersion)

MsgBox "あなたのExcelのバージョンは" & ExcelVersion & "です。"

まとめ

・VBAではExcelのバージョンがわからない。
Excel関数を使用できるかできないかでバージョンの違いを調べることができる。

2016、2019のサポートは2025年10月までです。2021は2026年10月までです。この3つを使用しているExcelは最終的に365にアップグレードしないといけないのかなぁと思っていましたらなんと2024が発表されました!サポート期間は5年です。

2024 年版 Microsoft Office LTSC のプレビューが近日公開されます - Windows Blog for Japan
※ 本ブログは、米国時間 2024/3/15 に公開された “Upcoming preview of Microsoft Office LTSC 2024” の抄訳です。 Microsoft 365 は、世界中のお客様がつながった世界でより...

2024のApplication.Versionも16なんでしょうか…

コメント

タイトルとURLをコピーしました