VBA
De WikiDeveloppez.
(Différences entre les versions)
Version actuelle (25 août 2009 à 19:02) (voir la source) m |
|||
+ | {{Infobox Bleu | ||
+ | | name = Visual Basic pour Applications | ||
+ | | editeur = Microsoft corp. | ||
+ | | version = 6.5 | ||
+ | | image = File_VBA_logo.png | ||
+ | | caption = VBA | ||
+ | | environnements = Microsoft Windows<br/>Mac OS | ||
+ | | langues = Multilingue | ||
+ | | langagesVisual Basic | ||
+ | }} | ||
+ | |||
[[Catégorie:Langages]] | [[Catégorie:Langages]] | ||
[[Catégorie:EDI]] | [[Catégorie:EDI]] | ||
+ | [[Catégorie:Microsoft Office]] | ||
<rubrique id="54" /> | <rubrique id="54" /> | ||
- | |||
- | |||
- | Le VBA est une version de [[Visual Basic 6|Visual Basic]] présente dans les applications de la suite Office et de certaines applications partenaires. | + | ==Présentation== |
+ | ===Définition=== | ||
+ | VBA vient de '''V'''isual '''B'''asic for '''Applications''' | ||
+ | |||
+ | Le VBA est une version de [[Visual Basic 6|Visual Basic 6 (VB6)]] présente dans les applications de la suite Office et de certaines [[#applicationstierces|applications partenaires]]. | ||
+ | |||
+ | Sa syntaxe est identique à celle de [[Visual Basic 6|Visual Basic]]. A la différence de [[Visual Basic 6|Visual Basic 6]], VBA ne fonctionne pas seul et est obligatoirement utilisé au sein d'une application hôte. Vous trouverez les différences détaillées entre VB6 et VBA sur [[Visual Basic 6#vb6versusvba|cette page]]. | ||
+ | ===Comment ça marche ?=== | ||
+ | VBA est un environnement de développement intégré (EDI) complet destiné à être intégré dans des applications hôtes, afin de procurer des fonctionnalités de programmation à l'utilisateur final.<br/> | ||
+ | <br/> | ||
+ | Il comprend:<br/> | ||
+ | * des outils de développement, | ||
+ | :#un éditeur de code <small>(avec technologie ''IntelliSense'')</small>, | ||
+ | :#un débogueur, | ||
+ | :#un navigateur/explorateur de classes d'objets, | ||
+ | :#un compilateur incrémental, combiné à une fenêtre d'exécution immédiate (très utile !); | ||
+ | * ''Microsoft Forms'' qui fournit | ||
+ | :#des outils intégrés à l'EDI pour la [[#userforms|conception de fenêtres et de boîtes de dialogues]], | ||
+ | :#un ensemble de composants ActiveX graphiques; | ||
+ | * le moteur d'exécution du langage VBA; | ||
+ | * une bibliothèque de fonctions et de classes, souvent appelée '"bibliothèque VBA"'; | ||
+ | ::<small>(remarque: la bibliothèque VBA donne accès aux ''feuilles'' créées avec ''Microsoft Forms''; cf. la collection '''<tt>UserForms</tt>''')</small><br/> | ||
+ | * des mécanismes de protection du code (mot de passe) et de sécurité (signature numérique du projet). | ||
+ | |||
+ | <br/> | ||
+ | L'application doit fournir un '''Modèle d'Objet''' qui permet de la manipuler par programmation.<br/> | ||
+ | <br/> | ||
+ | Par le truchement de ce '''Modèle d'Objet''' spécifique à l'application, il est possible d'agir sur l'application elle-même (exécution de commandes, gestion de l'affichage, manipulation de fenêtres, adaptation de l'IHM...), et aussi sur ses documents (création, modification).<br/> | ||
+ | La racine du '''Modèle d'Objet''' est toujours l'objet/classe '''<tt>Application</tt>'''.<br/> | ||
+ | <br/> | ||
+ | ::<small>(à faire: Automation)</small> | ||
+ | |||
+ | <span id="vbaoutilsnatifs"></span> | ||
+ | ==Outils natifs du VBA== | ||
+ | ===Outils de développement=== | ||
+ | VBA hérite de l'éditeur de code, du débogueur et de l'explorateur d'objet de [[Visual Basic 6|VB6]]. | ||
+ | <span id="userforms"></span> | ||
+ | ===Microsoft Forms=== | ||
+ | Microsoft Forms procure à l'utilisateur des outils pour la conception de fenêtres ou de boîtes de dialogue: on parle de ''feuilles'', ou encore d'objets '''<tt>UserForm</tt>'''.<br/> | ||
+ | Microsoft Forms fournit aussi son propre '''Modèle d'Objet''' nécessaire à la programmation des ''feuilles''.<br/> | ||
+ | ====Conception d'une feuille: objet ''UserForm''==== | ||
+ | Un objet '''<tt>UserForm</tt>''' est créé et modifié directement dans l'EDI.<br/> | ||
+ | Il se comporte comme un conteneur capables d'accueillir: | ||
+ | * des composants graphiques appelés ''contrôles''; | ||
+ | * des informations de paramétrage des contrôles (les valeurs des propriétés); | ||
+ | * un module de code VBA. | ||
- | + | Les contrôles sont ajoutés à partir de la boîte à outils de Microsoft Forms.<br/> | |
+ | Ces contrôles permettront de saisir des données ou d'initier des actions.<br/> | ||
+ | Les actions sont codées dans des procédures écrites en langage VBA. Ces procédures sont enregistrées dans le module de code associé au '''<tt>UserForm</tt>'''. | ||
+ | ====Liste des contrôles natifs d'un UserForm==== | ||
+ | Les contrôles natifs du VBA sont disponibles sans ajout d'une référence quelconque. Ils sont par conséquent utilisables sans autre installation que les produits de la suite Office (ou que l'application tierce). | ||
- | === Liens sur [http://www.developpez.com www.developpez.com] et [http://www.developpez.net www.developpez.net] | + | {| class="wikitable" style="text-align:left; width:80% border="1";" |
+ | |+ <U>'''Contrôles natifs disponibles pour un UserForm'''</U> | ||
+ | |- | ||
+ | ! scope=col | Nom du contrôle | ||
+ | ! scope=col | Description | ||
+ | ! scope=col | Logiciels Office | ||
+ | ! scope=col | Versions | ||
+ | |- | ||
+ | ! scope=row | Etiquette<br/>(<tt>Label</tt>) | ||
+ | |Texte modifiable à la création ou par code | ||
+ | |Tous | ||
+ | |Toutes | ||
+ | |- | ||
+ | ! scope=row | Zone de texte<br/>(<tt>TextBox</tt>) | ||
+ | |Permet la saisie d'une valeur par l'utilisateur. Cette valeur est considérée comme du texte (variable String) | ||
+ | |Tous | ||
+ | |Toutes | ||
+ | |- | ||
+ | ! scope=row | Zone de liste modifiable<br/>(<tt>ComboBox</tt>) | ||
+ | |Liste déroulante permettant la saisie d'une valeur parmi n éléments d'une liste, avec ou sans possibilité de saisir une valeur non présente dans la liste.<br/>(Excel: La liste peut être une plage de cellules) | ||
+ | |Tous | ||
+ | |Toutes | ||
+ | |- | ||
+ | ! scope=row | Zone de liste<br/>(<tt>ListBox</tt>) | ||
+ | |Liste permettant la sélection d'une valeur parmi n éléments d'une liste.<br/>(Excel: La liste peut être une plage de cellules) | ||
+ | |Tous | ||
+ | |Toutes | ||
+ | |- | ||
+ | ! scope=row | Case à cocher<br/>(<tt>CheckBox</tt>) | ||
+ | |Permet de basculer l'état d'une valeur booléenne. | ||
+ | |Tous | ||
+ | |Toutes | ||
+ | |- | ||
+ | ! scope=row | Bouton d'option<br/>(<tt>OptionButton</tt>) | ||
+ | |Permet de sélectionner une option parmi une liste d'options. Ce contrôle est souvent utilisé au sein d'un contrôle '''Cadre'''. | ||
+ | |Tous | ||
+ | |Toutes | ||
+ | |- | ||
+ | ! scope=row | Bouton bascule<br/>(<tt>ToggleButton</tt>) | ||
+ | |Permet de basculer l'état d'une variable booléenne. | ||
+ | |Tous | ||
+ | |Toutes | ||
+ | |- | ||
+ | ! scope=row | Cadre<br/>(<tt>Frame</tt>) | ||
+ | |Cadre de regroupement des boutons d'option. Lorsqu'une option est cochée dans un cadre, toutes les autres options du cadre sont décochées. | ||
+ | |Tous | ||
+ | |Toutes | ||
+ | |- | ||
+ | ! scope=row | Bouton de commande<br/>(<tt>CommandButton</tt>) | ||
+ | |Bouton permettant d'initier une action (lancement d'une procédure) lors du clic et/ou du double clic. | ||
+ | |Tous | ||
+ | |Toutes | ||
+ | |- | ||
+ | ! scope=row | Image<br/>(<tt>Image</tt>) | ||
+ | |Affichage d'une image provenant d'un fichier (formats supportés: BMP, GIF, ICO, JPEG, WMF).<br/>L'image est enregistrée dans l'objet <tt>UserForm</tt>, en tant que valeur de la propriété <tt>Picture</tt> du contrôle <tt>Image</tt>. | ||
+ | |Tous | ||
+ | |Toutes | ||
+ | |- | ||
+ | |} | ||
+ | <br/> | ||
+ | <span id="applicationstierces"></span> | ||
+ | ==VBA et les applications tierces== | ||
+ | En plus des applications de la suite logicielle Microsoft Office, on recense plus de 200 applications qui intègrent VBA.<br/> | ||
+ | ::<small>''(source: [http://msdn.microsoft.com/en-us/isv/bb190544.aspx, Visual Basic for Applications Licensing Partners], Microsoft corporation)''</small><br/> | ||
+ | <br/> | ||
+ | Ces applications sont développées par des entreprises qui établissent un partenariat avec Microsoft, soit pour des développements internes, soit pour intégrer l'environnement VBA dans un autre logiciel commercial.<br/> | ||
+ | <br/> | ||
+ | Depuis juillet 2007, Microsoft n'offre plus de licence de distribution de VBA à de nouveaux partenaires.<br/> | ||
+ | Désormais, le remplaçant de VBA est [[VSTA]]: Microsoft® Visual Studio® Tools for Applications. | ||
+ | ===Domaines d'applications=== | ||
+ | * Business Intelligence, Data Warehousing, | ||
+ | * Analyse et Présentation de Données, Logiciels Collaboratifs, | ||
+ | * Dessin Technique, CAO, Ingénierie, | ||
+ | * Traitement d'images, SIG, | ||
+ | * Gestion de Documents, Gestion des Connaissances, | ||
+ | * Comptabilité, Gestion des Ressources Humaines, Gestion Financière, Gestion de Services de Santé, | ||
+ | * ERP, CRM, Chaîne Logistique, | ||
+ | * Gestion de Production, Productique et Automation, | ||
+ | * Communication, | ||
+ | * Outils de développement Logiciel. | ||
+ | ===Exemples d'applications pouvant intégrer VBA=== | ||
+ | * Ingénierie/CAO: Dassault Systèmes CATIA, SolidWorks; Autodesk AutoCAD; Bentley MicroStation; | ||
+ | * Business Intelligence/Modélisation de Processus: BuisinessObjects; Intelior Aeneis; | ||
+ | * Système d'Information Géographique: ESRI ArcGIS, ArcInfo, ArcMap; | ||
+ | * ERP: Baan Company iBaan; Agresso AGRESSO 5; Scala 5 Global Series; | ||
+ | * Média & Publishing: Corel iGrafx FlowCharter 2005, CorelDRAW Graphics Suite 12, WordPerfect Office 12; | ||
+ | * Télécommunications: Alcatel-Lucent 1000 S12 RAPTOR Application; Neoware TeamTalk; | ||
+ | * Gestion de Production/Productique: Asprova ATS; Siemens Simatic; | ||
+ | * Services Financiers: Thomson Reuters Kobra. | ||
+ | <br/> | ||
+ | ==Liens sur [http://www.developpez.com www.developpez.com] et [http://www.developpez.net www.developpez.net]== | ||
[http://office.developpez.com La Suite Office] | [http://office.developpez.com La Suite Office] | ||