開いているExcelのバージョンの違いによって処理を変えるマクロ

マクロ / VBA , , ,

おおよそ3年ほどで新しいバージョンが出ているExcelです。新しいバージョンになれば色んな機能や関数が増えてどんどん便利になっています。

しかしその新しい関数を古いバージョンで開くと正常に動かなかったりします。

それはVBAにも言えることで、動かない可能性が出てきます。しかしながら人に提供する場合は、そのユーザーがどのバージョンを使っていて、いつ更新するかまでは管理できません。

ですので、コードの中で開いているバージョンを確認し、処理を分岐させてしまいます。

Applicationオブジェクト

Application.Version

これでExcelのバージョンが取得できます。

ExcelのバージョンVersionプロパティの戻り値
Excel201616.0
Excel201315.0
Excel201014.0
Excel200712.0
Excel200311.0
Excel200210.0
Excel20009.0
Excel978.0
Excel957.0
Excel5.05.0

寄稿時の最新バージョン2016なのでここまでですが、それより新しいのが出ていればWikiにも載っていますのでご参照ください。

https://ja.wikipedia.org/wiki/Microsoft_Excel#%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E5%B1%A5%E6%AD%B4

たまたまExcel2016と16.0が同じようになっていますが、2016だから16、という訳じゃないので^^;

サンプル

IFで指定のバージョンかどうか。

If Application.Version = "16.0" Then
    MsgBox ("2016")
Else
    MsgBox ("2016以外")
End If

戻り値は文字列型ですので16とせずに”16.0″とします。

各バージョン毎に処理を変えたいのであればこうですかね。

Select Case Application.Version
    Case "11.0"
        MsgBox ("Excel2003です")
    Case "12.0"
        MsgBox ("Excel2007です")
    Case "14.0"
        MsgBox ("Excel2010です")
    Case "15.0"
        MsgBox ("Excel2013です")
    Case "16.0"
        MsgBox ("Excel2016です")
End Select

コメントをどうぞ

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  • ▼お小遣い稼ぎしませんか?▼ 日々の生活にhappyをプラスする|ハピタス

    クレジットカード・FX口座を作るだけで簡単に3万円GETです。一切支出はありません。

ユーザー定義関数 セル選択 変換 COLUMN 条件付き書式 印刷 無料 テンプレート バーコード NA() SUM 図形 HLOOKUP 目標 検索 グラフ 日付 フロー図 VLOOKUP TODAY 置換 コピペ DATE COUNTIF 作業効率UP SUMIF XLSTART STDEV ワイルドカード 偏差値
  • 関西在住の30代サラリーマン。事務職で毎日Excelと戯れています。
    システム導入なんて資金が無い!Excelでなんとかやりたい零細中小の社長さん・事務員さんの力になればと思います。
    詳しいプロフィール


PAGE TOP ↑