VBA AutoCAD

Visual Basic for Application

Si vous êtes arrivés sur ce site, c'est que vous cherchez à programmer dans AutoCAD, je vous souhaite la bienvenue.

Avant de continuer j'espère que vous êtes dans un environnement Windows, si ce n'est pas le cas vous êtes donc sur MAC puisque AutoCAD ne tourne pas sur LINUX.
Dans ce cas, vous allez quitter ces pages très déçu, car le VBA n'est pas compatible et donc pas supporté par cet OS.

Il n'est pas dans mes intentions de créer une polémique sur le fait d'utiliser VBA ou pas.
En effet, dans la communauté des "programmeurs" sur AutoCAD il y a ceux qui utilisent AutoLisp et Visual Lisp d'un côté et les VBAistes de l'autre, Il y a aussi les adeptes de Dotnet qui gravitent en orbite dans cet univers, mais j'en parlerai plus tard. Le VBA a ses adeptes et il n'est pas question de hiérarchie.

À la lecture des questions sur les divers forums on se rend vite compte que le VBA ne représente pas la majorité, certes ces questions sont moins nombreuses, mais il y en a quand même, donc ce site qui a pour raison d'exister "la programmation d'AutoCAD" peut intégrer une section VBA sans rougir.

Au long de sa vie, le VBA pour AutoCAD (apparu avec la version 14, je dis bien 14 pas 2014) a connu des hauts et des bas. Le point bas a été atteint lors de l'annonce par Microsoft de l'abandon de ce langage, c'était lors du passage général aux systèmes 64 bits et ils voyaient plus loin déjà avec Visual Studio, de ce fait le point d'arrêt semblait imminent.
Devant la levée de boucliers des VBAistes ils ont fait machine arrière et même si chaque année on parle de la fin de ce langage on le retrouve l'année suivante depuis plusieurs versions.
De nos jours (mai 2021) on trouve toujours des questions et des gens y répondent, ce qui semble un signe de vie même s'il faut admettre que l'espèce est en voie d'extinction annoncée, ou plutôt de renouvellement, l'avenir étant Visual Studio, mais qui suis-je pour parler d'avenir ?
Le moribond a la peau dure dans les faits.

Deux avantages de VBA sautent aux yeux et emportent la décision de le choisir chez ceux qui choisissent un langage de programmation pour AutoCAD :

1 -> L'interconnexion assez aisée avec Excel (et autres applications Windows, mais surtout Excel)
2 -> La création de boîtes de dialogues (il est vrai que le DCL est archaïque et difficile d'accès)

Assurément on peut faire beaucoup plus, mais je pense que ces raisons emporte la décision de ceux qui ont du mal avec AutoLisp et Visual Lisp, cela reste un avis personnel.

Dans les pages qui suivent il va être question du langage VBA.
Dans VBA pour AutoCAD il y a bien sûr VBA mais aussi AutoCAD, ce qui signifie qu'il y a grande partie d'apprentissage du VBA (le langage) à prendre en main, puis une application spécifique de ce langage à l'environnement AutoCAD.
Ce langage est en usage pour toutes les applications Windows, Excel en majorité, mais les autres, Word, Access, OutLook peuvent aussi être programmées via VBA.

VBA fournit une façon assez simple de personnaliser AutoCAD, automatiser des tâches et programmer des applications.

VBA étant commun à d'autres applications, si vous avez utilisé VBA auparavant dans ces dernières, vous serez en domaine connu et utiliserez vos connaissances pour coder en VBA dans AutoCAD, si ce n'est pas le cas, pas de souci, je vais tenter d'expliciter.

J'attire votre attention sur une particularité de vocabulaire :
Les programmes en VBA restent dans le langage commun des "MACROS", à ne pas confondre avec les macros AutoCAD écrites en langage DIESEL ou le fait d'enregistrer certains enchaînements d'actions par l'enregistreur de macros du menu AutoCAD.
Le même mot a plusieurs sens, admettons-le.
L'important est de noter que les programmes (macros) créés puis enregistrés sont stockés dans des fichiers prenant l'extension DVB.

Puisque je parle de macros, les habitués d'Excel connaissent l'enregistreur de macros qui est une aide logicielle à la création d'un squelette de macro. Pour ceux qui ne connaissant pas, il s'agit d'une fonction qui "fabrique" du code VBA en fonction des actions enchainées qu'on fait dans un classeur, une fois ce code enregistré on peut le retravailler ce qui évite d'avoir à partir de rien.
Ça n'existe pas dans AutoCAD, il faudra partir d'une feuille blanche à chaque fois, maintenant qu'on le sait on peut continuer...

TÉLÉCHARGEMENT OBLIGATOIRE

À l'inverse d'AutoLisp qui est complètement intégré à AutoCAD, version pleine, sans nécessiter d'action supplémentaire.
Pour se servir de VBA il va falloir télécharger un module spécifique, parlons-en tout de suite.

Le lien en bas de ce paragraphe va vous diriger vers la page officielle AutoDesk proposant le téléchargement du module adapté à votre version.
Je vous laisse choisir la version AutoCAD et le système d'exploitation 32 ou 64 bits dont vous vous servez et de suivre les indications simples pour l'installer.

C'est sur cette PAGE que ça se passe ...

Avertissement

J'attire votre attention sur le fait que si vous installez ce module sur votre version d'AutoCAD, vous serez en mesure de programmer en VBA, c'est OK.
MAIS
Si vous souhaitez aussi partager vos programmes il faudra que le module soit installé aussi sur la machine du futur utilisateur.
Ce qui exclut, de fait, les versions LITE et sur MAC et les échanges aisés de solutions sur les forums.
(tout le monde n'a pas installé le module VBA)


Je vous laisse donc installer ce module et je vais boire un café pendant ce temps.
Tout est correctement expliqué par AutoDesk, on se retrouvera donc sur cette page une fois le module en place sur votre machine et mon café dégusté et ma tasse lavée et rangée ...


Création premier mai 2021