Question 122

Quelle est la différence entre tous les "VB"? Quel est le plus récent?

Entre toutes les abréviations existant pour désigner des langages plus ou moins proches, il est parfois difficile de s'y retrouver. Nous vous montrerons dans cet article que malgré les deux premières lettres communes, les différences sont énormes entre VBS, VBA, VB, VB.Net et VB2005.

Commençons par Visual Basic (VB). Visual Basic est un langage de programmation événementiel et un environnement de développement intégré. Celui-ci permet de compiler du code en exécutables ou en composant ActiveX. Ces exécutables requièrent différentes dépendances, comme indiqué dans l'article "Les programmes Visual Basic sont-ils autonomes ?". Ceci est dû au fait que les fonctions intégrées directement disponibles telles que Sin, Cos, Abs, Strrev, Mid sont présente dans une dll externe, appelée Runtime VB

Visual Basic.Net (VB.Net) est le langage qui a succédé au langage VB. Il est lui aussi compilé, mais ne repose plus du tout sur le Runtime VB. Les fonctions à disposition proviennent du .Net Framework. VB.Net, ainsi que tous les langages .Net tels que C#, sont compilés en un langage intermédiaire nommé MSIL. Pour rendre le langage VB apte à reprendre au mieux les possibilités de ce MSIL, de nombreuses modifications ont été apportées à la structure et à la syntaxe du langage

Visual Basic 2005 n'est rien d'autre que le langage ayant lui même succédé à VB.Net. Il s'agit, à la date de la révision de cet article, de la dernière version de Visual Basic. A noter que Visual Basic 2005 Express ne désigne pas un langage, mais bien un environnement de développement intégré, basé sur le langage VB2005. Un piège est à signaler concernant le terme "VB.Net" : celui-ci est fréquemment utilisé pour désigner, sans distinction possible, VB2005 ainsi que les versions antérieures !

Visual Basic Scripting Edition (VBS) est un langage interprété ayant une syntaxe proche de celle de VB. Comme beaucoup d'autres langages de script, son point fort n'est pas la performance d'exécution, mais la flexibilité. Voici quelques exemples d'usage de ce langage :

  • Avec les interpréteurs CScript et WScript, celui-ci peut être utilisé pour effectuer des tâches administratives sous Windows
  • Internet explorer peut l'utiliser pour de dynamiser des pages web côté client
  • Le langage Active Server Page peut l'utiliser pour dynamiser des pages web côté serveur.
  • Dans votre application VB, il est possible de l'utiliser pour obtenir une interaction plus complexe avec l'utilisateur, comme l'illustre l'article "Comment évaluer la valeur d'une expression mathématique ?"
  • .

Visual Basic for Applications (VBA) est à la fois un langage interprété, et un environnement de développement intégré. Tout comme VBS, Celui-ci permet à une application de fournir des actions complexes à l'utilisateur. Néanmoins au contraire de VBS, VBA fournit un environnement de développement intégré. VBA possède une syntaxe très proche de celle de VB, mais n'offre pas la possibilité de créer des applications relativement autonomes : l'application hôte de VBA devra toujours être disponible. Voici quelques exemples d'application de VBA, dans la suite Microsoft Office :

  • Utilisé dans le tableur Excel, celui-ci vous permettra d'ajouter des fonctions supplémentaires, utilisable directement dans les feuilles du tableur
  • Dans le traitement de texte Word, vous pourrez implémenter des procédures de mise en forme du texte personnalisées
  • Par VBA, il vous est possible d'ajouter des barres d'outils ou des menus à l'application hôte, afin d'accéder aux fonctionnalités personnalisées que vous aurez réalisées.
VBA est donc généralement indissociable du modèle objet de l'application à laquelle il est attaché et l'on parlera plus volontiers de VBA Excel, VBA Word, etc. Bien qu'il soit techniquement possible d'intégrer VBA dans une application VB, le modèle de licences demande un investissement préalable non négligeable.

Quelques points communs

Bien que de nombreuses différences existent, certains points communs peuvent être déduits. C'est ce que nous allons expliciter dans les paragraphes suivants.

En ce qui concerne les environnements de développements, il est à remarquer que VB, VBA et plus encore VB2005 ont été conçu dans une optique Rapid application development (RAD). Notamment, ils comprennent tous trois des outils de génération automatique de code.

VBS est compatible de manière ascendante avec VBA et VB. VB.Net est compatible de manière ascendante avec VB2005. Cependant, la compatibilité entre VB et VB.Net n'est pas assurée.

Tous les langages cités précédemment supportent l'utilisation des objets COM avec plus ou moins de facilités. VBS, VBA et VB étant des environnements orientés COM, travailler avec des composants COM est un jeu d'enfant. VB.Net et VB2005 demanderont de passer par une couche d'interopérabilité. A l'inverse, il faudra que vos composants .Net offrent une interface d'interopérabilité COM pour pouvoir les utiliser en VB, VBA ou VBS

Pour aller plus loin

Date de publication : 13 février 2003
Dernière modification : 25 février 2007
Rubriques : Généralités
Mots-clés : VBA, VB, VB6, VB.Net, VBS, VB Script, Visual Basic Scripting edition, Visual Basic for Application, version, récente, Visual Basic .Net, Visual Basic 6.0