Pouvez-vous utiliser d'autres langages à la place de VB pour les macros Excel ?
Réponses
Trop de publicités?Oui, il est possible d'écrire des macros Excel en Python via pyxyle
Par ailleurs, vous pouvez même modifier les macros existantes en Python :
https://stackoverflow.com/questions/9913603/is-it-possible-create-edit-an-excel-macro-from-Python
Il est important de noter que, puisque exactement tous Les capacités d'automatisation d'Excel disponibles pour VBA sont en fait servies par le programme COM vous pouvez utiliser l'interface tout langage supportant les objets Windows COM (ActiveX) . Il se traduit grosso modo par presque tous les langages de programmation modernes de la planète. J'ai personnellement utilisé avec succès Excel à partir de Wolfram Research Mathematica et de C++ pur. Si vous ne disposez pas d'une bibliothèque spécialisée pour gérer la hiérarchie des objets Excel (comme celle qui, je suppose, existe pour Python), il se peut que l'utilisation ne soit pas aussi agréable qu'avec le langage natif VB.
Visual Basic 6 (et Visual Basic pour les applications) étaient conçu en tenant compte de la conformité avec l'architecture COM. Cela signifie que la plupart des types de données définis pour COM sont natifs pour Excel et qu'ils n'ont pas besoin d'être transformés à chaque appel. Je soupçonne donc que la manipulation d'Excel à partir de VBA est la plus efficace.
Vous pouvez utiliser C# pour créer des commandes et des fonctions Excel avec mon ESharper compléter. Le code peut être édité et exécuté directement dans une session Excel en direct.
AutoHotKey (.ahk scripts) fonctionne également avec Excel, bien que je ne sois pas certain de l'étendue du support COM. Vous pouvez vérifier auprès de leurs @Helpers par l'intermédiaire de leur site Web. Discord
Voici un exemple cas d'utilisation de indirecte L'utilisation synergique qui n'implique pas d'interface directe mais qui est techniquement qualifiée d'intrants de macro-ingénierie (si nous ne sommes pas pointilleux sur la spécificité du langage vernaculaire).
- Réponses précédentes
- Plus de réponses