Visual Basic for Applications

Visual Basic for Applications
Page d'aide sur l'homonymie Pour les articles homonymes, voir VBA.

Visual Basic for Applications (VBA) est une implémentation de Microsoft Visual Basic qui est intégrée dans toutes les applications de Microsoft Office, dans quelques autres applications Microsoft comme Visio et au moins partiellement dans quelques autres applications comme AutoCAD, WordPerfect et MicroStation. Il remplace et étend les capacités des langages macro spécifiques aux plus anciennes applications comme le langage WordBasic intégré à une ancienne version du logiciel Word, et peut être utilisé pour contrôler la quasi-totalité de l'IHM des applications hôtes, ce qui inclut la possibilité de manipuler les fonctionnalités de l'interface utilisateur comme les menus, les barres d'outils et le fait de pouvoir personnaliser les boîtes de dialogue et les formulaires utilisateurs.

Comme son nom l'indique, VBA est très lié à Visual Basic (les syntaxes et concepts des deux langages se ressemblent), mais ne peut normalement qu'exécuter du code provenant d'une application hôte (et non pas d'une application autonome). Il peut cependant être utilisé pour contrôler une application à partir d'une autre (par exemple, créer automatiquement un document Word à partir de données Excel).

Le paragraphe ci-dessus appelle application hôte une application embarquée dans un document, c'est-à-dire un ensemble de macros.

VBA est fonctionnellement riche et extrêmement flexible, mais il possède d'importantes limitations, comme son support limité des fonctions de rappel (callbacks), ainsi qu'une gestion des erreurs archaïque, utilisation de handler d'erreurs en lieu et place d'un mécanisme d'exceptions.

Même si ces limitations rendent ce langage très peu utilisé par les développeurs informaticiens soucieux d'utiliser des outils avant tout performants, sa simplicité et sa facilité d'accès ont séduit certaines professions notamment dans la finance.

Sommaire

Obsolescence

Depuis le premier juillet 2007, Microsoft ne distribue plus de licences VBA à ses nouveaux clients [1] Microsoft essaye de remplacer VBA par Visual Studio Tools for Applications (VSTA), un toolkit de customisation d'application basé sur la plateforme Framework .NET. De Dr Ex's article:

VSTA remplace maintenant VSA [Visual Studio for Applications] comme technologie ISVs utilisée pour fournir des fonctionnalités de customisation dans leurs applications. […] VSA était un client léger, alternative gérée par serveur de VBA compilé sous Visual Studio. L'approche serveur a été vue par l'ISVs comme moins utile qu'un modèle de client riche, donc, en se basant sur leur retour, Microsoft a commencé le développement de VSTA. Des ISVs utilisent VSA aujourd'hui, mais nous trouvons que son applicabilité était limitée. Certaines des technologies développées pour VSA sont reprises dans VSTA. VSTA application customisation tire un meilleur profit des fonctionnalités du client riche que VSA, offrant un environnement hautement optimisé pour la customisation d'application à la fois sur le client et le serveur.

(en)VSTA now replaces VSA [Visual Studio for Applications] as the technology ISVs will use to provide customization capabilities in their applications. […] VSA was a thin-client, server-driven alternative to VBA built on Visual Studio. The server approach was viewed by ISVs as less useful than a rich-client model, so based on their feedback, Microsoft began development of VSTA. There are ISVs successfully using VSA today, but we found that its applicability was limited. Some of the technology developed for VSA is incorporated within VSTA. VSTA application customization takes better advantage of rich client functionality than VSA, offering a highly optimized environment for application customization on both the client and the server.

Office 2007 continue à utiliser l'ancien moteur VBA; cependant, Visual Studio Tool pour Office (VSTO) est disponible. La prise en charge de VBA dans Microsoft Office pour Mac sera abandonnée avec la distribution de la version 12, en 2008[1]. Voir aussi VB.NET. La première version de VSTA a été fournie en avril 2006 et a été intégrée dans différents ISV, y compris InfoPath 2007 et ABB Robotics. La prochaine version de VSTA (basée sur Visual Studio 2008 connu sous le nom de "Orcas") sera distribuée vers février 2008. La seconde version de VSTA est très différente de la première, avec des fonctionnalités comme la programmation dynamique et la compatibilité WPF, WCF, WF, LINQ, et .NET 3.5.

Toutefois, en raison de la dépendance de certaines entreprises à VBA, VBA sera encore disponible dans Office 2007 et 2010 (Office 14)[2].

Interopérabilité

Une prise en charge minimale de VBA est également disponible dans OpenOffice.org, à partir de la version 3.0[3].

Applications

Dans Excel

L'enregistreur de macro sous Microsoft Excel (Outils / Macro / Nouvelle Macro) permet de générer facilement du code VBA dans une procédure.

Toute la séquence d'action effectuée entre le début et la fin de l'enregistrement est enregistré dans une procédure VBA, qui pourra être réexécutée à l'identique. Il est possible de modifier ce code ou de programmer directement dans la VBE (Visual Basic Editor : Outils / Macro / Visual Basic Editor). C'est la meilleure méthode pour apprendre à se servir de VBA si on ne connait rien. Tout d'abord on enregistre une séquence en appuyant sur le bouton rouge d'enregistrement, et ensuite on peut l'exécuter pas à pas (touche F8) dans l'outil VBA afin de savoir les actions effectués par chaque ligne de code.

Les principales collections d'objets du tableur Excel sont WorkBook (classeur), Sheets (feuille de calcul) et Range (cellules). Elles sont utilisables selon une hiérarchie descendante :

  • Workbooks("Année2006").Sheets("Mars").Range("B2") désigne la cellule B2 de la feuille Mars du classeur Année2006
  • Sheets("Mars").Range("B2") du classeur actif (ouvert et affiché)
  • Range("B2") de la feuille active

Une fois un objet désigné :

  • une méthode peut lui être appliqué (NomObjet.NomMéthode) : Range("B2").Select sélectionne la cellule B2...
  • ses propriétés (NomObjet.Propriété) peuvent être consultées ou modifiées (affection NomObjet.Propriété=valeur) ; des propriétés courantes sont Visible (à utiliser avec True et False pour afficher ou masquer), Value (valeur d'une cellule), Count (nombre de cellules d'une page, de feuilles de classeur...).

Les références aux cellules peuvent être :

  • absolues : Range("B2") désigne la cellule B2 de la feuille active
  • relatives à la cellule d'origine : ActiveCell.Offset (2,-1) désigne la cellule située 2 lignes plus bas (- pour plus haut) et une colonne à gauche (+ pour à droite) de la cellule active.

Microsoft Excel permet de créer des fonctions personnalisées programmées en code VBA et placées dans un module. Elles sont ensuite accessibles dans la bibliothèque de fonction (Insertion / Fonction / Personnalisée) :

Function NomFonction (Argument1, Argument2 As TypeDonnées, Optional Argument3=valeur_defaut) ...(actions programmées) NomFonction = valeur renvoyée End Function

Ces fonctions peuvent recevoir des arguments en entrée, dont le type peut être spécifié (Argument2 ci-dessus) ou qui peuvent être optionnel, avec une valeur par défaut (Argument3 ci-dessus).

Dans Word

Le VBA est grandement utilisé pour MS Word, à partir d'excel afin de générer une page word.

Dans Access

Le VBA est grandement utilisé dans MS Access.

Dans AutoCAD (propriété d'Autodesk, Inc.)

Dans CATIA v5 (propriété de Dassault Systèmes)

Dans MicroStation (propriété de bentley Systems International)

Téléchargement

Liens externes

Sur les autres projets Wikimedia :

Références


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Visual Basic for Applications de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать курсовую

Regardez d'autres dictionnaires:

  • Visual Basic for Applications — (VBA) Paradigm(s) Multi paradigm Appeared in 1993 Developer Microsoft …   Wikipedia

  • Visual basic for applications — Pour les articles homonymes, voir VBA. Visual Basic for Applications (VBA) est une implémentation de Microsoft Visual Basic qui est intégrée dans toutes les applications de Microsoft Office, dans quelques autres applications Microsoft comme Visio …   Wikipédia en Français

  • Visual Basic for Applications — (VBA) ist eine zu den Microsoft Office Programmen gehörende Skriptsprache. Sie wurde aus dem von Microsoft entwickelten BASIC Dialekt Visual Basic (VB) abgeleitet und wurde zur Steuerung von Abläufen innerhalb der Microsoft Office Programme… …   Deutsch Wikipedia

  • Visual Basic for Applications —   [Abk. VBA], ursprünglich speziell für die Verwendung innerhalb von Office Programmen entwickelte Makrosprache, die 1994 von Microsoft herausgebracht wurde und die sich von Quick Basic ableitet. Ziel war es, alle Microsoft Office Programme mit… …   Universal-Lexikon

  • Visual Basic for Applications — Эта статья о языке программирования, об антивирусе см.: VBA32. Visual Basic for Applications (VBA, Visual Basic для приложений)  немного упрощённая реализация языка программирования Visual Basic, встроенная в линейку продуктов Microsoft… …   Википедия

  • Visual Basic for Applications — Microsoft VBA (Visual Basic for Applications) es el lenguaje de macros de Microsoft Visual Basic que se utiliza para programar aplicaciones Windows y que se incluye en varias aplicaciones Microsoft. VBA permite a usuarios y programadores ampliar… …   Wikipedia Español

  • Visual Basic For Applications - VBA — A computer programming language developed by Microsoft which allows the development of user defined functions and the automation of certain processes and calculations. Visual Basic For Applications is a standard feature of Microsoft Office… …   Investment dictionary

  • Visual Basic for Applications —    Abbreviated VBA. A version of Microsoft Visual Basic included with Microsoft Windows 98 applications such as Excel; it is used to write everything from simple macros to complex custom applications …   Dictionary of networking

  • Visual Basic .Net — Basisdaten Paradigmen: prozedural, vollständig objektorientiert Erscheinungsjahr: 2002 Entwickle …   Deutsch Wikipedia

  • Visual Basic 6.0 — Visual Basic .NET Basisdaten Paradigmen: prozedural, vollständig objektorientiert Erscheinungsjahr: 2002 Entwickle …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”