Vous êtes sur la page 1sur 25

Roger ROSEC

Copyrigth Fasoft 2001-2003

CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

VBA et son environnement


Dans ce chapitre
1.1 - Programmer AutoCAD
1.1.1 Le VBA
1.1.2 - Comparaison VBA et Visual Basic
1.1.3 - Comparaison VBA et AutoLISP
1.2 Installation de VBA
1.2.1 Installer une barre d'icnes VBA
1.3 - Ouvrir l'environnement VBA
1.3.1 - Le gestionnaire VBA
1.3.2 - L'diteur Visual Basic
1.3.2.1 - La fentre de Projet
1.3.2.2 La fentre Proprits
1.3.2.3 Les Modules de code
1.3.2.4 Les Feuilles (ou UserForms)
1.3.2.5 La bote outils des Contrles
1.4 Obtenir de laide
1.4.1 L'aide VBA gnrale de Microsoft
1.4.2 L'aide spcifique VBA pour AutoCAD

VBA POUR AUTOCAD

1.1 - Programmer AutoCAD


AutoCAD possde deux langages principaux de programmation Une fois que vous avez dcid
de programmer AutoCAD, la premire tape consiste slectionner le langage de
programmation utiliser.

1.1.1 - Le VBA
Visual Basic pour Applications (VBA) est un langage de programmation et un environnement
inclus avec beaucoup d'applications Microsoft telles que Word, Excel et Access, mais aussi
dans d'autres programmes indpendants de Microsoft. C'est ainsi que depuis la version 14, il est
galement disponible avec AutoCAD. VBA est idal lorsque vous devez travailler avec des
applications diffrentes ensemble, pour transmettre des donnes de l'une l'autre. ActiveX
permet d'accder aux objets qui sont disponibles dans d'autres applications. Cependant, vous
pouvez aussi utiliser VBA pour programmer AutoCAD tout seul.
VBA fournit une faon simple de personnaliser AutoCAD, automatiser des tches et programmer
des applications.

1.1.2 - VBA et VB
VBA est comparable, en grande partie au Visual Basic dont il est une manation. Au premier
abord, VBA ressemble beaucoup Visual Basic, commencer par l'environnement de
dveloppement intgr (EDI). Il y a nanmoins des diffrences notables
La principale consiste dans le fait que Visual Basic n'est reli aucune application spcifique. Il
est conu pour crer des applications autonomes. Le code de Visual Basic est compil dans un
fichier excutable qui fonctionne seul, sans aucun lien avec une autre application.
VBA, lui, doit tre connect son application hte et un document dans lequel le code a t
cr.
Par exemple, un projet VBA cr pour fonctionner avec AutoCAD, son application hte, ne
pourra fonctionner directement dans Word ou Excel mais des connexions entre applications qui
le supportent pourront y tre facilement tablies.
Dans ce livre vous trouverez aussi des exemples d'applications cres avec Visual Basic qui
interfrent sur AutoCAD;

CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

1.1.3 - VBA et AutoLISP


VBA possde les avantages suivants :
* Il est plus rapide qu'AutoLISP, mme quand AutoLISP est compil.
*

VBA est commun beaucoup d'autres applications. Si vous avez utilis VBA auparavant,
vous pourrez facilement transfrer vos connaissances pour utiliser VBA dans AutoCAD.
Il aussi plus facile de trouver d'autres programmeurs qui connaissent VBA plutt
qu'AutoLISP.

VBA est gnralement plus facile apprendre qu'AutoLISP cause de sa syntaxe


nettement plus simple et de son langage objet plus facilement comprhensible.

VBA est plus graphique. L'ergonomie des applications est beaucoup plus aise
programmer.

De l'autre ct, AutoLISP a l'avantage d'une compatibilit descendante avec les versions
prcdentes d'AutoCAD.
Il n'est pas possible de traduire un programme AutoLISP en VBA et inversement, les concepts
tant beaucoup trop diffrents.
Nanmoins, chaque fois que cela sera possible, nous indiquerons les correspondances entre ces
deux modes de programmation.

Note :
Les commandes dAutoCAD correspondent la version franaise. Nanmoins nous essaierons
dindiquer la correspondance anglaise la premire fois quil en ait fait mention, entre parenthses
en style courrier.

VBA POUR AUTOCAD

1.2 Installation de VBA


Vous devez possder au moins la version 14 dAutoCAD. Mais pour VBA, la mise jour 14.01
est indispensable. Si vous avez la version 14, votre revendeur vous fournira cette mise jour
gratuitement.
Depuis AutoCAD 2000, l'installation est maintenant automatique, le menu droulant est en
franais.
Vrifiez quand mme si le VBA a t install sur votre machine. Pour cela, droulez le menu
Outils et voyez si vous avez une ligne d'option indiquant Macro VBA (ou Macro pour les
versions anglaises).

Figure 1-1

Le menu droulant de VBA qui apparat quand il a t install.

CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

Sinon, vous devrez l'installer.


Pour cela, reprenez votre cdrom AutoCAD. Lancez le programme d'installation en doublecliquant sur Setup.exe. Vous verrez apparatre l'cran de la figure 1.2 qui vous demandera de
choisir une option.

Figure 1-2 L'cran des options d'installation d'AutoCAD.

Choisissez loption Ajouter qui vous permettra d'installer de nouveaux composants votre
configuration actuelle.
Sur l'cran suivant slectionnez loption Support VBA.
Vous devez disposer de 8 Mo d'espace libre (dans la version R2000). Comme indiqu, si vous
travaillez en rseau ou sous Windows XP, vous devez possder tous les droits pour crire dans le
rpertoire d'installation ainsi que dans la base de registres de Windows.

VBA POUR AUTOCAD

10

Figure 1-3

Choix des nouveaux composants installer.

1.2.1 Une barre d'icnes VBA


Si vous dsirez une barre d'icnes VBA toute faite, vous en trouverez une prte l'emploi dans le
rpertoire Fichiers/Chap01/Menu.
Pour simplifier, placez le fichier vbaa.mns et les 5 fichiers d'icnes .bmp dans le rpertoire
Support d'AutoCAD par un Copier/Coller. (Plus loin, nous apprendrons regrouper tous ces
fichiers .bmp dans un seul fichier .dll.)
La premire fois, chargez le menu VBAA par le menu Outils Personnalisation des menus, (ou
Personnaliser puis Menus selon la version dAutoCAD).
Cliquez sur Parcourir, choisissez VBAA.mns dans le rpertoire Support puis cliquez sur le
bouton Charger quand vous tes de retour dans la fentre Personnalisation des menus. La barre
de menus VBA doit apparatre. Fermez la fentre Personnalisation des menus.

CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

11

Figure 1-4 La barre d'icnes VBAA.


Les fois suivantes la barre sera charge automatiquement.
Nota : Pour AutoCAD 2004 et +, il sagit du rpertoire Support qui se trouve dans votre espace
rserv, c'est--dire : c:\Documents and Settings\Toto\Application Data\Autodesk\AutoCAD
2004\R16.0\Enu\Support\. Remplacez Toto par votre nom dutilisateur.

1.3 - Ouvrir l'environnement VBA


AutoCAD offre un environnement facilitant la programmation et l'utilisation du VBA. Pour
commencer travailler avec VBA, vous devez ouvrir l'environnement VBA. VBA possde sa
propre interface.

1.3.1 - Le gestionnaire VBA


Les programmes VBA sont sauvegards dans les projets. Un projet contient tous les lments
dont on a besoin pour excuter le programme. Vous pouvez utiliser le Gestionnaire VBA pour
visualiser vos projets VBA. Le Gestionnaire VBA vous permet aussi de charger, dcharger,
enregistrer, crer, incorporer et extraire des projets VBA. Pour ouvrir le Gestionnaire VBA,
utilisez une des manires suivantes :

Choisissez Outils Macro VBA Gestionnaire VBA

Cliquez sur l'icne

Tapez gestvba (ou vbaman en version US) sur la ligne de commande.

de la barre d'outils VBA.

VBA POUR AUTOCAD

12

Figure 1-5 Le gestionnaire VBA.


Le Gestionnaire VBA nous sera trs utile pour grer les programmes VBA voire mme
indispensable pour les renommer ou les dcharger de la mmoire.

1.3.2 - L'diteur Visual Basic


Pour ouvrir VBA dans AutoCAD, vous avez le choix entre :

Taper vbaide _ sur la ligne de commande d'AutoCAD (toutes versions).

Choisir Outils Macro VBA Editeur Visual Basic.

Cliquer sur l'icne

Cliquer sur le bouton Editeur Visual Basic dans la fentre du Gestionnaire VBA

de la barre d'outils VBA

AutoCAD affiche alors la fentre d'environnement VBA appel IDE (ou EDI), pour
Environnement de Dveloppement Intgr.

CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

Figure 1-6 L'Environnement de Dveloppement Intgr de VBA, version 2000 fr

Figure 1-6b

L'Environnement de VBA, version 2004 US sous XP

13

14

VBA POUR AUTOCAD

Une des caractristiques de Visual Basic est de possder de multiples fentres. VBA n'y droge
pas. Pour le moment, deux fentres apparaissent sur la gauche de l'cran. Il se peut que les
fentres apparaissent sur la droite de l'cran. VBA permet l'utilisateur de choisir l'endroit
appropri pour les fentres qui peuvent se dplacer loisir.
Vous avez galement des menus droulants et la barre d'outils Standard qui vous seront utiles
pour crire, dboguer et lancer vos programmes. D'autres barres d'outils sont disponibles. Nous
les tudierons au fur et mesure de nos besoins.
Selon votre version dAutoCAD et votre systme dexploitation, votre diteur saffichera soit en
franais, soit en anglais.
1.3.2.1 - La fentre Explorateur de Projet (project explorer)
La fentre Explorateur de projet montre tous les projets qui sont ouverts. Chaque projet
peut contenir plusieurs classeurs et cette fentre y affiche tous les composants. Au lancement de
l'diteur, vous n'avez qu'un seul projet que VBA nomme d'office Global1 dans lequel vous
trouvez dj un classeur nomm AutoCAD Objets.

Figure 1-7 Exemples (versions 2000 et 2004) de fentre de l'Explorateur de


projet qui comporte plusieurs classeurs, ici tous ouverts.
Vous utiliserez cette fentre pour vous dplacer facilement d'un lment l'autre.

CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

15

1.3.2.2 La fentre Proprits (properties)


La fentre Proprits permet de dfinir et d'diter les proprits des modules, feuilles et
contrles insrs dans votre projet. Cette fentre va lister toutes les proprits de l'objet ou de la
feuille slectionne ainsi que leurs valeurs correspondantes.

Figure 1-8
catgorie.

Exemple de fentre Proprits, avec ici les proprits tries par

Grce aux deux formes d'affichage des proprits (Alphabtique et Par catgorie) il est facile de
dfinir les caractristiques des objets insrs dans la feuille. Vous pouvez slectionner
directement les objets dans la liste droulante affiche dans la partie haute de la bote.

VBA POUR AUTOCAD

16

Figure 1-9 Les diffrents lments de la fentre Proprits ; liste trie par ordre
alphabtique.
1.3.2.3 Les Modules de code
Certains lments du projet VBA sont contenus dans des modules. Un module est un
morceau indpendant de code de programmation. Le projet VBA peut contenir un ou plusieurs
modules. Il peut galement n'en contenir aucun.
Pour ouvrir un module, choisissez Insertion Module

Figure 1-10 Une premire manire pour ouvrir un nouveau module.


ou cliquez sur la flche droulante droite du second bouton sur la barre d'outils Standard de
VBA, puis choisissez Module.

CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

17

Figure 1-11 Une autre manire pour ouvrir un nouveau module.


VBA ouvre alors une fentre de l'diteur de texte de code ; vous pouvez ainsi commencer
entrer le code. Vous pouvez constater que dans la fentre du Projet, VBA ajoute un nouveau
module la liste des modules. Par dfaut, le premier module est appel Module1. La figure 1-12
affiche l'interface VBA qui apparat alors, y compris l'diteur de texte servant crire ou
modifier le code.

Figure 1-12 Un premier module est maintenant insr dans le projet.

VBA POUR AUTOCAD

18

Astuce
Vous pouvez redimensionner l'diteur de texte du module comme toute autre
fentre. Il est plus facile de travailler avec une grande fentre lorsque vous
crivez du code dans l'diteur de texte. Cliquez sur le bouton de maximalisation
de la fentre (en haut, droite, bouton central) pour agrandir l'diteur de texte
sa dimension maximale.
1.3.2.4 Les Feuilles (ou UserForms)
Sous VBA on appelle Feuille les fentres ou botes de dialogue dans le projet. Pour VBA, le
mot cl qui dsigne une feuille est UserForm. Les feuilles servent recevoir les contrles qui y
sont dessins et affichs.
Pour ouvrir une nouvelle feuille, choisissez Insertion UserForm

Figure 1-13 Insertion d'une feuille en passant par le menu droulant Insertion.
ou cliquez sur la flche droulante droite du second bouton sur la barre d'outils Standard de
VBA, puis choisissez UserForm. Deux nouvelles fentres surgissent alors et la fentre
Proprits se remplit.
Quand vous insrez une nouvelle feuille :

Chaque fentre de feuille comporte des boutons Agrandissement, Rduction et


Fermeture.

La feuille affiche une grille destine faciliter l'insertion des contrles. Vous pouvez
dsactiver la grille de feuille ou dfinir l'espacement de ses lignes dans l'onglet Gnral
de la bote de dialogue Options du menu Outils, (Show Grid dans longlet
General de la bote Options du menu Tools).

CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

19

Figure 1-14 A linsertion d'une feuille, une nouvelle feuille apparat ainsi que la
bote outils Contrles.
1.3.2.5 La bote outils des Contrles
On appelle contrles (controls) les lments que l'on peut slectionner dans la bote
outils et disposer sur une feuille. Les contrles peuvent tre dimensionns et rangs comme on
veut. Vous pouvez aligner automatiquement les contrles sur la grille en slectionnant l'option
correspondante dans l'onglet Gnral de la bote de dialogue Options.
Il y a 15 contrles standard qui sont fournis par Autodesk. On peut en ajouter autant que vous en
voulez. Nous verrons plus loin comment en crer.

VBA POUR AUTOCAD

20

Figure 1-15 La bote outils Contrles peut prendre diffrentes formes. Il suffit
de tirer sur le cadre extrieur.
A ce stade, vous pouvez constater que la fentre de l'Explorateur de projet s'est enrichie :

Figure 1-16 La fentre Projet a volu.


Deux nouveaux classeurs ont ts ajouts votre projet :

Un classeur Feuilles qui contient la feuille UserForm1.

Un classeur Modules qui contient le module de code Module1

Si vous avez ajout d'autres feuilles ou modules, vous devez les y retrouver.

CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

21

AutoCAD tourne toujours en arrire-plan. Vous pouvez y revenir en cliquant n'importe


quel moment sur son bouton sur la barre des Tches de Windows ou en cliquant sur Affichage
AutoCAD sur la barre d'outils Standard de VBA.

1.4 Obtenir de laide


VBA offre plusieurs formes daide dont certaines en anglais mme dans une version franaise
dAutoCAD. On peut distinguer deux catgories :

L'aide VBA gnrale de Microsoft. Selon la version, cette partie est compltement en
franais ( l'exception des exemples qui n'ont pas t entirement franciss).

L'aide VBA et ActiveX spcifique pour AutoCAD. La plus grande partie est
malheureusement en anglais.

1.4.1 L'aide VBA gnrale de Microsoft


Laide de Microsoft Visual Basic pour Applications fournit des informations sur l'environnement
VBA en gnral, applicable tous les programmes sachant utiliser VBA : Word, Excel ...
Aide de Microsoft Visual Basic sur la barre d'outils VBA, ou sur la
Cliquez sur le bouton
barre de menu choisissez Aide Microsoft Visual Basic.

Figure 1-17 Pour obtenir l'aide VBA gnrale de Microsoft


Vous obtiendrez une documentation concernant les bases, les fonctions et instructions du Visual
Basic qui sont appliques dans le VBA pour AutoCAD. Cette partie vous sera utile au dbut, si
vous ne connaissez pas Visual Basic.
Vous trouverez galement dans cette partie laide pour les autres applications VBA que vous
pouvez avoir. Vous en aurez besoin quand vous devrez crire du code VBA qui intgre plus
d'une application.

VBA POUR AUTOCAD

22

Figure 1-18 L'aide Visual Basic fournie ici est adapte VBA.

1.4.2 L'aide spcifique VBA pour AutoCAD


LExplorateur d'objets vous fournit une liste d'objets ainsi que leurs proprits et mthodes.
Ouvrez cet explorateur en cliquant Explorateur d'objets sur la barre d'outils ou en choisissant
Affichage Explorateur d'objets, (View Project Explorer). Les objets sont
organiss en bibliothques. Tous les objets avec lesquels vous travaillez dans AutoCAD sont
lists dans la bibliothque AutoCAD.
Pour voir la liste d'objets AutoCAD, cliquez le liste droulante <Toutes bibliothques> et
choisissez AutoCAD. Vous pouvez voir le rsultat dans la figure 1-19.

CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

23

Figure 1-19 L'Explorateur d'objets fournit la liste des objets ainsi que leurs
proprits et mthodes.
Pour obtenir de laide, en anglais, sur un objet, slectionnez-le dans lExplorateur d'objets et
cliquez sur le bouton
Aide de l'explorateur. Procdez de la mme manire pour une mthode
ou une proprit, comme montr dans la figure 1-20.

VBA POUR AUTOCAD

24

Figure 1-20 La page d'Aide pour la proprit Freeze.


Vous pouvez aussi ouvrir cette fentre AutoCAD ActiveX and VBA Reference en cliquant avec le
bouton de droite dans les volets Classes ou Membres et en choisissant Aide. VBA ouvre alors la
page d'aide pour l'objet, la mthode ou la proprit slectionne. De l, un index vous permettra
dobtenir un complment d'informations.
Quand vous ouvrez une page d'aide, la plupart du temps vous pouvez cliquer sur Example pour
afficher un exemple. Ces exemples sont une bonne manire d'apprendre le VBA. Vous pouvez
copier un petit morceau de code VBA, le coller dans votre propre routine et ensuite le modifier
souhaits.
Pour une aide plus gnrale, AutoCAD offre deux mthodes :
*

ActiveX and VBA Reference, une liste alphabtique, en anglais, d'objets, mthodes,
proprits et vnements.

CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

25

Le Guide de programmation ActiveX et VBA qui explique, en franais selon les versions,
les concepts et les techniques dActiveX Automation.

Pour accder ces guides de rfrence, cliquez avec le bouton de droite dans l'un ou l'autre volet
et choisissez Aide. VBA ouvre laide sur l'objet, la proprit ou la mthode slectionne. Ensuite
choisissez Sommaire de l'aide pour accder aux nombreux sujets d'aide.
Une fois que vous avez commenc programmer, vous pouvez obtenir de laide sur toute
expression, que ce soit en Visual Basic ou en VBA spcifique AutoCAD, en y plaant le
curseur et en appuyant sur F1. Par exemple, si vous tapez AddLine et appuyez sur F1, vous
obtiendrez laide AutoCAD sur la manire de crer une ligne en VBA et si vous tapez Dim puis
F1, c'est l'aide Microsoft concernant cette instruction qui sera affiche.

1.5 Rsum
Dans ce chapitre, nous avons compar VBA Visual Basic et AutoLISP. Nous avons vu
comment installer VBA, si ce n'tait dj fait.
Plus loin, nous avons eu un premier aperu de l'Environnement de Dveloppement Intgr de
VBA et nous avons insr un premier module et une nouvelle feuille. Nous avons vu comment
obtenir de l'aide gnrale concernant le Visual Basic ou de l'aide plus spcifique VBA pour
AutoCAD.
Dans le chapitre suivant, nous passerons l'action en crivant notre premier programme.
.