{Sturgeon’s Law} “Sure, 90% of all software is crap. That’s because 90% of everything is crap.” [Mary Shaw, Carnegie-Mellon University]
Abstract
Microsoft has decided in its eternal wisdom not to increase Application.Version beyond 16 from Excel 2016 on.
My function ApplicationVersion fixes this and returns a human readable version string.
Appendix – ApplicationVersion Code
Please read my Disclaimer.
Option Explicit
Function ApplicationVersion(Optional bShowBuild365 As Boolean = True) As String
'Returns MS Excel's version - with a little kludge
'Source (EN): http://www.sulprobil.de/applicationversion_en/
'Source (DE): http://www.berndplumhoff.de/applicationversion_de/
'(C) (P) by Bernd Plumhoff 23-Feb-2024 PB V0.6
Dim n As Integer
With Application
n = Val(.Version)
Select Case n
Case 16
ApplicationVersion = "Excel 2016"
On Error Resume Next 'We know what we are doing
'Excel 365 introduced ValueToText
n = Val(.ValueToText(19))
If n = 19 Then
If bShowBuild365 Then
'When all of them are 365 you might want to know the build.
ApplicationVersion = "Excel 365 (Build " & .Build & ")"
Else
ApplicationVersion = "Excel 365"
End If
Else
'Excel 2021 introduced RandArray
n = .RandArray(1, 1, 18, 18, True)(1)
If n = 18 Then
ApplicationVersion = "Excel 2021"
Else
'Excel 2019 introduced TextJoin
n = Val(.TextJoin(" ", True, "17"))
If n = 17 Then ApplicationVersion = "Excel 2019"
End If
End If
On Error GoTo 0
Case 15
ApplicationVersion = "Excel 2013"
Case 14
ApplicationVersion = "Excel 2010"
Case 12
ApplicationVersion = "Excel 2007"
Case 11
ApplicationVersion = "Excel 2003"
Case 10
ApplicationVersion = "Excel 2002"
Case 9
ApplicationVersion = "Excel 2000"
Case 8
ApplicationVersion = "Excel 97"
Case 7
ApplicationVersion = "Excel 7/95"
Case 5
ApplicationVersion = "Excel 5"
Case Else
ApplicationVersion = "[Error]"
End Select
End With
End Function
Download
Please read my Disclaimer.
ApplicationVersion.xlsm [17 KB Excel file, open and use at your own risk]