Насколько я понимаю, Excel не поддерживает версионность COM-интерфейса. Т.е. чтобы физически была возможность запустить разные версии Excel через COM-интерфейс в реестре должны быть разные CLSID для разных версий. Но реально CLSID одинаковый для
любой версии Excel. Вопрос только в том, что именно он запускает.
Это значит, что чтобы сделать возможность выбора версии Excel через COM-интерфейс надо иметь возможность напрямую править сам реестр. Изменить настройки (привязку) CLSID к конкретной версии Excel.
Не думаю, что в этом есть смысл. Ведь если официально прописано о поддержке определенной версии Excel, то установка другой версии - это риск самого пользователя.
Кроме того, конечно, некоторые свойства и методы COM-интерфейса в разных версиях меняются, но в основном, все остается без изменений. Так что, думаю, не должно быть особых проблем при работе со старшей версией, кроме некоторых специфических ситуаций.
Да, проверить какую же версию Excel подхватил COM-интерфейс можно через свойство version()
X++:
Com excel;
;
excel = new Com("Excel.Application");
info(strFmt("%1",excel.version()));