2016-10-02 3 views
1

Microsoft только что обновила Excel 2016 до 64-бит на OSX (yay!). Но теперь они нарушили надстройку поддержки OSX. Первая проблема:Mac 64-битные константы компилятора

В: Как условно компилировать/включать код в Excel 2016 для OSX? На окнах у них есть отдельные флаги для 32-битных и 64-битных, так что вы можете сделать что-то вроде:

#If Win64 Then 
Private Declare PtrSafe Function get_global_param_string_private Lib "CoolProp_xls_x64.dll" Alias "get_global_param_string" (ByVal param As String, ByVal Output As String, ByVal n As Integer) As Long 
#Else 
Private Declare Function get_global_param_string_private Lib "CoolProp_xls_std.dll" Alias "[email protected]" (ByVal param As String, ByVal Output As String, ByVal n As Integer) As Long 
#End If 

но согласно https://msdn.microsoft.com/en-us/library/office/gg264614.aspx, нет отдельного VBA константа различать разрядности на OSX? Какие константы компилятора они добавили?

ответ

3

Используйте условия, как это:

#If Win64 Then 

#ElseIf Win32 Then 

#ElseIf Mac Then 
    #If MAC_OFFICE_VERSION >= 15 Then 
     #If VBA7 Then ' 64-bit Excel 2016 for Mac 

     #Else ' 32-bit Excel 2016 for Mac 

     #End If 
    #Else ' 32-bit Excel 2011 for Mac 

    #End If 
#End If 
+0

Nice !!! Любая идея по моему другому очень-близкому вопросу: http://stackoverflow.com/questions/39813612/excel-2016-conditional-compilation-with-32-bit-flags? – ibell

+0

См. Также https://github.com/OfficeDev/VBA-content/blob/master/VBA/Office-Mac-VBA/MacOfficeVersion.md – ibell

Смежные вопросы