I. Cours complet▲
II. Critique du VBA Excel▲
Le VBA est un « un roi sans couronne » : c'est une technologie qui a les atouts pour rayonner, ne serait-ce que par l'écrasante domination d'Excel les entreprises, et qui pourtant n'a pas réussi à créer l'engouement, les informaticiens de souche lui ayant même tourné le dos. Dans ce qui suit, je vais essayer d'analyser objectivement cet état de fait.
II-A. Points positifs▲
- La programmation VBA Excel est souvent plus ludique à apprendre que d'autres technologie car on obtient rapidement des résultats visuels. En tout cas bien plus que via un simple terminal, où les entrées/sorties sont rudimentaires...
- Le langage Visual Basic est tout à fait correct (structuration en module, nuance fonction/procédure, système de types, gestion d'erreurs, etc.) et son orientation objet n'a pas à rougir d'autres langages (classes, membres de classes, instanciation, public/private, getter/setter, auto-référence, classe d'énumération, etc.). C'est donc un faux procès que les informaticiens lui font depuis le début.
- Les interfaces graphiques (appelées « UserForm ») en mode WYSIWYG sont un indéniable gain de productivité, quoi qu'on en pense. Il est de toute façon possible de constuire une IHM entièrement par programmation si le cœur vous en dit.
- Un programme VBA ne fonctionne pas nécessairement en vase clos. Il est possible d'importer des bibliothèques externes, d'intéropérer avec d'autres applications Microsoft, et surtout d'accèder au Web afin d'y récupérer toute de sorte de donnée ouvertes (« open Data »). En ce sens, d'autres technologies sont beaucoup plus fermées que VBA.
II-B. Points négatifs▲
- La communauté historique qui utilise le VBA n'est pas informaticienne de formation. On y trouve pelle-mêle des gestionnaires, des comptables, des secrétaires et des scientifiques d'autres domaines. Il en résulte des tutoriels sans aucun recul sur ce qui est fait et des forums pleins de codes absolument horribles (l'enregisteur de macros est surement passé par là).
- L'enregistreur de macro (un ovni dans l'univers du développement) a donné l'illusion à des générations entières qu'on pouvait atteindre son objectif sans même écrire une ligne de code. Sauf que ce dernier rejoue bêtement une séquence d'actions déterminées, sans s'adapter à chaque situation. Seul un véritable algorithme est capable de cela.
- La banalisation des notations par défaut (sous pretexte d'écrire moins), pleins de sous-entendus, fait qu'une même instruction a rapidement plusieurs variantes d'écriture et cela perturbe les débutants. Pire, ces raccourcis syntaxiques sont contradictoires avec les principes de l'orienté objet !
- L'explorateur d'objet (l'équivalent de la JavaDoc de Java par exemple), l'outil ultime pour programmer, n'offre pas le niveau de rigeur que l'on attend de lui. Parfois contre-intuitif (des procédures pensées comme des fonctions, et vice-versa), parfois inconsistant (des méthodes « hybrides » - fonction et procédure à la fois - selon l'usage) et le plus souvent incomplet (des types de paramètres omis, ou trop vague, comme Variant ou Object).
- La confusion classe/objet semble entrenue délibéremment. Cela commence par l'explorateur d'objets lui-même, le fort mal nommé, qui est en réalité un explorateur de classes d'objets.
III. Tutoriels vidéos▲
A venir...