Можете ли вы использовать другие языки вместо макросов VB для Excel?
4 ответа
Да, в Python можно написать макрос Excel:
http://www.pyxll.com/docs/macros.html
Кстати, вы даже можете редактировать существующие макросы в Python:
https://stackoverflow.com/questions/9913603/is-it-possible-create-edit-an-excel-macro-from-python
Другой вариант - C # с использованием .NET. Проверьте эту ссылку:
Я не использовал это много, но это может стоить попробовать.
Важно отметить, что, поскольку фактически все возможности автоматизации Excel, доступные для VBA, фактически обслуживаются через интерфейс COM , вы можете использовать любой язык, который поддерживает объекты Windows COM (ActiveX). Это примерно переводится практически на все современные языки программирования на планете. Я лично успешно использовал Excel от Wolfram Research Mathematica и чистый C++. Если у вас нет специализированной библиотеки для работы с иерархией объектов Excel (например, та, которая, как я предполагаю, существует для Python), это может быть не так хорошо, как использовать с родным VB.
Visual Basic 6 (и Visual Basic для приложений) были разработаны с учетом соответствия архитектуре COM. Это означает, что большинство типов данных, определенных для COM, являются родными для Excel, и их не нужно преобразовывать при каждом вызове. Поэтому я подозреваю, что обработка Excel из VBA является наиболее эффективной.
Вы можете использовать C # для создания команд и функций Excel с моей надстройкой ESharper . Код может быть отредактирован и выполнен непосредственно в сеансе Excel.