More information about testing the Excel version or Excel language you can find on this page : Mac Excel version and Mac Office language settings
You can use conditional compiler constants to test the Operating system or test if you run a 32 or 64 bit version of Office.
The macro below will test the Operating system, you can replace the msgbox line with your code or Macro call.
Sub WINorMAC_1() 'Test the conditional compiler constant #Mac #If Mac Then 'I am a Mac MsgBox "Call your Mac_Macro" #Else 'I am Windows MsgBox "Call Windows_Macro" #End If End Sub
Office 2011 for the Mac is always 32 bit and Office 2016 for the Mac can be 32 or 64 bit, all builds 15.26 and later are exclusively 64-bit. So every Mac Office 2016 install that is up to date is 64 bit.
Below you can find a test macro and three UDF functions that you can use to test the Operating system, test if you run a 32 or 64 bit version of Office and give you the Excel version number.
Sub GetInfo() MsgBox "You are using a Mac: " & IsMac MsgBox "Your Office install is 64 Bit: " & Is64BitOffice MsgBox "Your Excel version is: " & Excelversion End Sub Function IsMac() As Boolean #If Mac Then IsMac = True #End If End Function Function Is64BitOffice() As Boolean #If Win64 Then Is64BitOffice = True #End If End Function Function Excelversion() As Double 'Win Excel versions are always a whole number (15) 'Mac Excel versions show also the number of the update (15.29) Excelversion = Val(Application.Version) End Function
With the three functions above it is easy to test what you want in your VBA projects.
But if you want to avoid compile errors with for example ribbon macro callbacks in Excel 2011(this not compile for example in 2011: control As IRibbonControl) or use VBA functions that are new in 2016 like AppleScriptTask and GrantAccessToMultipleFiles, you can add the ribbon macro callbacks or the new VBA functions in between the two code lines below in your code module.
#If MAC_OFFICE_VERSION >= 15 Then
Put your macro callbacks or code here