Environ сделает свое дело:
debug.print Environ("ProgramFiles")
debug.print Environ("PROGRAMFILES(X86)")
'If you want to check if current PC is x64
debug.print Environ("PROCESSOR_IDENTIFIER")
Список переменных среды можно найти здесь .
UPDATE :Основываясь на разговоре, который я имел с Кристианом и основываясь на моих комментариях, я рассмотрел это немного подробнее.
У меня есть две машины, на которых я тестировал:
- Машина 1 : Win 7 Ultimate, 64-разрядная, Office 2010, 64-разрядная
- Машина 2 : Win 7 Ultimate, 32-разрядная, Office 2007, 32-разрядная
В ближайшем окне я запустил следующие операторы:
? Environ("ProgramFiles")
? Environ("PROGRAMFILES(X86)")
? Environ("ProgramW6432")
Результаты
Машина 1:
C:\Program Files
C:\Program Files (x86)
C:\Program Files
Машина 2:
C:\Program Files
//Blank//
//Blank//
Итак, исходя из этих ограниченных выводов, вы можете посмотреть, имеет ли значение ProgramW6432 .Если нет, предположим, что 32-битный и использовать ProgramFiles .
IF Environ("ProgramW6432") <> "" THEN
'I'm 64 bit so check both ProgramW6432 and PROGRAMFILES(X86)
ELSE
'I'm 32 bit so check ProgramFiles
END IF
И наоборот, вы можете использовать PROCESSOR_IDENTIFIER, чтобы определить x64 против x86 и сделать то же самое.
Я бы не сказал, что в любом случае надежно, но вы должны выбрать правильный путь..