IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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" />
 +
==Présentation==
==Présentation==
===Définition===
===Définition===
-
VBA vient de '''V'''isual '''B'''asic for '''Application'''
+
VBA vient de '''V'''isual '''B'''asic for '''Applications'''
-
Le VBA est une version de [[Visual Basic 6|Visual Basic]] présente dans les applications de la suite Office et de certaines [[#applicationstierces|applications partenaires]].
+
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 du [[Visual Basic 6|Visual Basic]]. A la différence du [[Visual Basic 6|Visual Basic]], 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]].
+
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 ?===
===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/>
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/>
:#un éditeur de code <small>(avec technologie ''IntelliSense'')</small>,
:#un éditeur de code <small>(avec technologie ''IntelliSense'')</small>,
:#un débogueur,
:#un débogueur,
-
:#un navigateur/explorateur de classes d'objets;
+
:#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
* ''Microsoft Forms'' qui fournit
:#des outils intégrés à l'EDI pour la [[#userforms|conception de fenêtres et de boîtes de dialogues]],
:#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;
:#un ensemble de composants ActiveX graphiques;
* le moteur d'exécution du langage VBA;
* le moteur d'exécution du langage VBA;
-
* une bibliothèque de fonctions et de classes souvent appelée '"bibliothèque 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 boîtes de dialogues créées avec ''Microsoft Forms'', cf. la collection '''<tt>UserForms</tt>''')</small><br/>
+
::<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).
* des mécanismes de protection du code (mot de passe) et de sécurité (signature numérique du projet).
La racine du '''Modèle d'Objet''' est toujours l'objet/classe '''<tt>Application</tt>'''.<br/>
La racine du '''Modèle d'Objet''' est toujours l'objet/classe '''<tt>Application</tt>'''.<br/>
<br/>
<br/>
-
<small>(à venir: intégration avec COM)</small>
+
::<small>(à faire: Automation)</small>
<span id="vbaoutilsnatifs"></span>
<span id="vbaoutilsnatifs"></span>
==Outils natifs du VBA==
==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>
<span id="userforms"></span>
===Microsoft Forms===
===Microsoft Forms===
-
Microsoft Forms procure à l'utilisateur des outils de conception de ''feuilles'': fenêtres ou boîtes de dialogue.<br/>
+
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/>
-
Il fournit aussi son propre '''Modèle d'Objet''' nécessaire à leur programmation.<br/>
+
Microsoft Forms fournit aussi son propre '''Modèle d'Objet''' nécessaire à la programmation des ''feuilles''.<br/>
-
===Conception d'une feuille: ''UserForm''===
+
====Conception d'une feuille: objet ''UserForm''====
-
Le '''userform''' met à disposition de l'utilisateur une boite de dialogue sur laquelle on placera des contrôles. Ces contrôles permettront de saisir des données ou d'initier des actions.
+
Un objet '''<tt>UserForm</tt>''' est créé et modifié directement dans l'EDI.<br/>
-
====Liste des contrôles natifs d'un userform====
+
Il se comporte comme un conteneur capables d'accueillir:
-
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.
+
* 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).
{| class="wikitable" style="text-align:left; width:80% border="1";"
{| class="wikitable" style="text-align:left; width:80% border="1";"
-
|+ Contrôles natifs disponibles pour un userform
+
|+ <U>'''Contrôles natifs disponibles pour un UserForm'''</U>
|-
|-
! scope=col | Nom du contrôle
! scope=col | Nom du contrôle
! scope=col | Versions
! scope=col | Versions
|-
|-
-
! scope=row | Intitulé
+
! scope=row | Etiquette<br/>(<tt>Label</tt>)
|Texte modifiable à la création ou par code
|Texte modifiable à la création ou par code
|Tous
|Tous
|Toutes
|Toutes
|-
|-
-
! scope=row | Zone de texte
+
! 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)
|Permet la saisie d'une valeur par l'utilisateur. Cette valeur est considérée comme du texte (variable String)
|Tous
|Tous
|Toutes
|Toutes
|-
|-
-
! scope=row | Zone de liste modifiable
+
! 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. (Excel: La liste peut être une plage de cellules)
+
|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
|Tous
|Toutes
|Toutes
|-
|-
-
! scope=row | Zone de liste
+
! scope=row | Zone de liste<br/>(<tt>ListBox</tt>)
-
|Liste permettant la sélection d'une valeur parmi n éléments d'une liste. (Excel: La liste peut être une plage de cellules)
+
|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
|Tous
|Toutes
|Toutes
|-
|-
-
! scope=row | Case à cocher
+
! scope=row | Case à cocher<br/>(<tt>CheckBox</tt>)
-
|Permet de basculer l'état d'une valeur binaire
+
|Permet de basculer l'état d'une valeur booléenne.
|Tous
|Tous
|Toutes
|Toutes
|-
|-
-
! scope=row | Bouton d'option
+
! 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'''.
|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
|Tous
|Toutes
|Toutes
|-
|-
-
! scope=row | Bouton bascule
+
! scope=row | Bouton bascule<br/>(<tt>ToggleButton</tt>)
-
|Permet de basculer l'état d'une variable binaire.
+
|Permet de basculer l'état d'une variable booléenne.
|Tous
|Tous
|Toutes
|Toutes
|-
|-
-
! scope=row | Cadre
+
! 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.
|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
|Tous
|Toutes
|Toutes
|-
|-
-
! scope=row | Bouton de commande
+
! 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.
|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
|Tous
|Toutes
|Toutes
|-
|-
|}
|}
 +
<br/>
<span id="applicationstierces"></span>
<span id="applicationstierces"></span>
==VBA et les applications tierces==
==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/>
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/>
+
::<small>''(source: [http://msdn.microsoft.com/en-us/isv/bb190544.aspx, Visual Basic for Applications Licensing Partners], Microsoft corporation)''</small><br/>
<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/>
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/>
* Outils de développement Logiciel.
* Outils de développement Logiciel.
===Exemples d'applications pouvant intégrer VBA===
===Exemples d'applications pouvant intégrer VBA===
-
* Ingénierie/CAO: Dassault Systèmes CATIA; Autodesk AutoCAD; Bentley MicroStation;  
+
* Ingénierie/CAO: Dassault Systèmes CATIA, SolidWorks; Autodesk AutoCAD; Bentley MicroStation;  
* Business Intelligence/Modélisation de Processus: BuisinessObjects; Intelior Aeneis;
* Business Intelligence/Modélisation de Processus: BuisinessObjects; Intelior Aeneis;
-
* Système d'Information Géographique: ESRI ArcInfo, ArcMap;
+
* Système d'Information Géographique: ESRI ArcGIS, ArcInfo, ArcMap;
* ERP: Baan Company iBaan; Agresso AGRESSO 5; Scala 5 Global Series;
* 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;
* Média & Publishing: Corel iGrafx FlowCharter 2005, CorelDRAW Graphics Suite 12, WordPerfect Office 12;
* Gestion de Production/Productique: Asprova ATS; Siemens Simatic;
* Gestion de Production/Productique: Asprova ATS; Siemens Simatic;
* Services Financiers: Thomson Reuters Kobra.
* Services Financiers: Thomson Reuters Kobra.
-
 
+
<br/>
==Liens sur [http://www.developpez.com www.developpez.com] et [http://www.developpez.net www.developpez.net]==
==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]

Version actuelle

Récupérée de « https://wiki.developpez.com/VBA »
Contacter le responsable de la rubrique Accueil