Introduction

 

Pourquoi ce livre ?

 

J’utilise le traitement de texte Word depuis sa deuxième version sous DOS, ce qui signifie qu’entre les versions en mode texte et les versions sous Windows, il m’est passé entre les doigts une dizaine de versions différentes. J’ai toujours été fasciné par la puissance de cet outil avec lequel je travaille quasi quotidiennement. J’ai aussi très vite découvert que la puissance intrinsèque de Word pouvait être décuplée par l’utilisation d’un mini-langage, baptisé à l’époque, macro-commandes. Il n’était pas rare de constater que quelques macro-commandes d’une quinzaine de lignes pouvaient économiser des heures de travail pénible. L’écriture de ces petits bouts de programme nécessitait parfois du temps mais on avait toujours la sensation, une fois la macro-commande finalisée, d’avoir travaillé plus intelligemment que si l’on avait dû réaliser la tâche à accomplir manuellement. Plus récemment, j’ai aidé plusieurs collègues thésards qui, à l’approche de leur soutenance, avaient quelques difficultés à concevoir leur index ; encore une fois, quelques petits programmes simples ont permis de choisir correctement les mots à indexer. En fait, la plupart des utilisateurs de Word sont tellement absorbés par leur travail d’écriture qu’ils négligent totalement de lire la documentation du produit et, par là même, passent à côté des fonctions les plus puissantes de ce traitement de texte.

Le même constat s’applique bien évidemment à Excel et je me souviens avoir enseigné, il y a plus de dix ans, les macro-commandes de Multiplan  qui est le lointain ancêtre du tableur graphique vedette de Microsoft. Les utilisateurs de Multiplan étaient à la fois étonnés et ravis de constater qu’ils pouvaient économiser un temps précieux en apprenant un langage de programmation simple à utiliser.

En rédigeant ce livre, je veux démontrer à tous les utilisateurs d’Office 2000 qu’ils se privent inutilement de la richesse fonctionnelle de leur traitement de texte, de leur tableur ou de leur base de données en ignorant la programmation. En vous apprenant à programmer Word, Excel et Access, je souhaite premièrement vous montrer que cette activité n’est pas réservée aux professionnels de l’informatique et, deuxièmement, vous faire gagner du temps dans l’exécution des tâches répétitives et fastidieuses.

 

A qui s’adresse ce livre ?

 

Cet ouvrage est un livre d’initiation et il ne nécessite aucune connaissance préalable en programmation ; il vise donc un public de débutants. Il s’adresse d’abord aux utilisateurs de Word, d’Excel et d’Access qui souhaitent aborder l’apprentissage de la programmation afin d’améliorer leur productivité. Les personnes utilisant Office et possédant déjà une expérience de programmeur peuvent également profiter de ce livre en faisant l’économie de la lecture des chapitres consacrés aux rudiments de la programmation. Cet ouvrage n’est pas un ouvrage de référence en ce sens où il ne prétend absolument pas à l’exhaustivité ; de nombreuses informations sont sciemment passées sous silence afin de clarifier le propos et de ne pas semer la confusion dans l’esprit du lecteur par un apport trop important de connaissances nouvelles (à titre d’information, l’ouvrage intitulé Microsoft Word 2000 Language Reference comporte près de 1500 pages...).

La démarche pédagogique mise en oeuvre dans ce livre est similaire à la méthode de programmation  qui procède par raffinements successifs ; cette méthode reprend en fait un principe cartésien qui stipule qu’il faut commencer « par les objets les plus simples et les plus aisés à connaître, pour monter peu à peu comme par degrés jusqu’à la connaissance des plus composés ». Le dernier chapitre de cet ouvrage proposera, à ceux qui le souhaitent, des pistes pour qu’ils puissent approfondir les sujets abordés dans ces pages ou bien explorer d’autres horizons plus complexes de la programmation sous Office.

 

Pourquoi apprendre à programmer ?

 

La question mérite en effet d’être posée car de nombreux utilisateurs pensent que bien connaître les commandes de base d’un logiciel suffit amplement, et qu’il n’y a donc pas lieu d’apprendre à programmer. Il y a pourtant trois raisons essentielles qui permettent de répondre à cette question :

·         la première est que la programmation va vous permettre de gagner un temps précieux, surtout si vous accomplissez des tâches répétitives. En effet, l’automatisation des tâches va augmenter votre productivité. Outre le gain de temps, vous allez également vous affranchir des tâches pénibles et pouvoir ainsi vous consacrer aux tâches les plus nobles : l’amélioration est donc quantitative et qualitative.

·         la deuxième raison est qu’en programmant, vous allez pouvoir bénéficier d’un logiciel sur mesure car vous allez pouvoir créer tout ce qui vous manque. Les possibilités de paramétrage des logiciels de la suite Office sont déjà importantes mais en programmant, vous allez pouvoir contrôler exactement les traitements de votre système d’information.

·         la dernière raison est d’ordre intellectuel. Apprendre à programmer, c’est devenir acteur du processus informatique. Quand on programme, on est moins passif devant la machine et on acquiert une meilleure connaissance du fonctionnement matériel et logiciel de l’ordinateur.

Entre l’utilisateur qui ignore la programmation et l’informaticien professionnel, il y a un niveau intermédiaire et l’objectif de ce livre est de vous y amener.

 

Que vais-je pouvoir faire pratiquement si j’apprends à programmer ?

 

Apprendre à programmer ouvre des horizons quasiment infinis et il est bien difficile d’être exhaustif si on veut inventorier toutes les applications pratiques. Nous nous contenterons ici de quelques exemples. En maîtrisant les rudiments de la programmation, vous allez déjà pouvoir inventer des commandes et des fonctions qui n’existent pas dans le logiciel (comme une fonction de conversion d’euro en dollar par exemple).

Vous allez pouvoir également contrôler la validité des informations qui sont saisies dans Word, Excel ou Access. Dans tous ces logiciels, il est extrêmement facile de saisir des données mais dès que l’on veut exercer un contrôle minimal sur les informations qui sont saisies, il faut avoir recours à la programmation. Et si on réfléchit bien, on s’aperçoit qu’il est inutile de traiter des données par de savants calculs si on n’a pas pris la précaution de s’assurer de la validité de ces informations.

De la même manière, si vous développez des modèles qui doivent être utilisés par d’autres, la programmation vous aidera à définir des écrans d’aide spécifiques ou bien des formulaires de saisie personnalisés qui faciliteront la tâche de ceux qui doivent entrer les informations.

Enfin, et c’est ce qui est sans doute le plus simple, vous automatiserez tous les traitements répétitifs. C’est d’ailleurs souvent dans l’automatisation des tâches banales que la programmation se révèle d’une efficacité maximale, et l’apprenti programmeur est toujours étonné du gain de productivité fantastique que peuvent lui procurer quelques lignes de code.

 

Pourquoi apprendre la programmation de trois logiciels en même temps ?

 

Dans les versions précédentes d’Office, chaque logiciel de la suite avait son propre langage et les langages de programmation étaient donc incompatibles entre eux ; ainsi, par exemple, Word Basic n’était pas compatible avec Access Basic. Avec l’avènement d’Office 2000, Microsoft a réalisé un effort considérable d’harmonisation et désormais, VBA  (Visual Basic pour Applications) est l’unique langage de programmation de la suite. Ce qui signifie que quand j’apprends à programmer Word, je sais programmer à la fois Excel et Access. L’unicité de ce langage est un progrès énorme et c’est pour cette raison qu’il serait dommage de se limiter à l’apprentissage de la programmation d’un seul logiciel quand il est si facile de passer d’un logiciel à l’autre. En fait, nous nous limitons dans le cadre de cet ouvrage à la programmation de Word, d’Excel et d’Access parce que ce sont les logiciels les plus utilisés de la suite Office mais nous aurions pu également étudier la programmation de PowerPoint , FrontPage , Visio  ou bien encore Outlook  puisque ces quatre logiciels peuvent également se programmer à l’aide de VBA.

L’apprentissage de VBA représente donc un très bon investissement car, si nous n’utilisez, par exemple, que Word et Excel, vous pourrez très facilement apprendre la programmation Access étant donné que le langage est rigoureusement le même. Le fait qu’Office 2000 propose un même langage pour toutes ses applications est réellement un avantage déterminant et nous pensons qu’il va inciter plus d’un utilisateur à se lancer dans l’aventure de l’apprentissage de la programmation VBA.

Comment apprendre à programmer Office ?

 

Au risque de rappeler une évidence, pour apprendre à programmer Office, il faut déjà apprendre Office. Cette vérité première mérite d’être répétée tant on a vu d’utilisateurs se lancer dans l’apprentissage de la programmation sans maîtriser les fonctionnalités élémentaires de Word (comme par exemple, les styles, les modèles ou bien encore les tableaux), d’Excel (écriture d’une formule, adresse relative ou absolue, etc.) ou d’Access (création de tables, de requêtes ou de formulaires). Si vous pensez que vos connaissances d’Office sont imparfaites, il faudra donc les approfondir et nous vous conseillons pour ce faire la lecture de Microsoft Word 2000 au quotidien, Microsoft Excel 2000 au quotidien et Microsoft Access 2000 au quotidien, parus chez MS-Press.

Une fois que ces connaissances sont acquises, il faut apprendre le langage de programmation VBA et le modèle d’objets de Word, d’Excel et d’Access. Nous emploierons ici souvent l’analogie avec l’apprentissage des langues vivantes et l’ambition de ce livre est donc de vous enseigner la syntaxe (le langage VBA) et le vocabulaire (le modèle d’objets) de chacun des logiciels de la suite afin que vous puissiez écrire vous-même rapidement des programmes.

Il existe cependant une difficulté importante quand on veut apprendre une langue étrangère : par où commencer ? La tâche semble immense (elle l’est réellement) et la logique voudrait qu’avant de s’exprimer on commence par maîtriser la grammaire et le lexique. Mais cette approche pédagogique est bien peu efficace et chacun d’entre nous se rend bien compte qu’on apprend une langue en la pratiquant, la théorie ne pouvant venir que dans un deuxième temps. Nous allons donc apprendre à programmer en programmant et nous étudierons la théorie seulement quand nous en aurons réellement besoin.

 

Que faire si je ne connais pas l’un de ces trois logiciels ?

 

Il n’est pas rare de rencontrer des personnes qui emploient Word et Excel mais qui ignorent Access ; ou bien encore qui utilisent Word et Access mais qui ne connaissent pas bien Excel. Comme cela a été dit plus haut, pour apprendre à programmer un logiciel, il faut déjà en connaître ses fonctions de base. Cela étant, la lecture de ce livre pourra néanmoins être profitable si vous ne maîtrisez pas un de ces logiciels, que ce soit Word, Excel ou Access. En effet, VBA étant commun à ces trois logiciels, vous arriverez, par exemple, à transposer sans trop de peine dans Excel les exemples ayant trait à Word.

De plus, les informations qui vous sont données sont, la plupart du temps, génériques, et vous n’aurez donc aucun mal à les adapter au logiciel de votre choix.

 

L’importance des exemples de code

 

Il est impossible de concevoir un ouvrage traitant de la programmation sans de nombreux exemples de code car, si l’on apprend à programmer en programmant, on étudie également la programmation en examinant le code de programmes écrits par d’autres. Imprimer le code de tous les exemples au sein de cet ouvrage ne serait guère raisonnable car cela prendrait une prendrait une place considérable ; il est d’autre part prouvé que la recopie d’un listing imprimé engendre de nombreuses erreurs de retranscriptions. C’est pour cette raison que nous n’imprimerons dans ce livre que de courts exemples ou bien des extraits de programmes plus longs. Cependant, il faudra absolument que vous vous procuriez la totalité des exemples de code de cet ouvrage qui sont disponibles sur Internet.

Quelle version d’Office faut-il utiliser avec ce livre ?

 

Tous les exemples de ce livre ont été testés avec Office 2000 et il vaut donc mieux utiliser en théorie cette version pour apprendre à programmer à l’aide de cet ouvrage. Cela étant, les utilisateurs d’Office 97 pourront exécuter la majeure partie des programmes proposés ou bien facilement les adapter.

 

Dominique MANIEZ, le 8 août 2000

 

PS

La logique commerciale voudrait que l’on ne parlât pas d’Office mais de Microsoft Office ; cependant, cette dénomination est un peu trop longue et elle alourdirait inutilement le texte de cet ouvrage. Enfin, ma très longue pratique des logiciels qui forment cette suite m’autorise à utiliser cette ellipse un peu à la manière dont les aficionados de Tintin parlent de L’affaire... Quoi qu’il en soit, le Word, l’Excel et l’Access dont je vais vous apprendre la programmation sont bien le traitement de texte, le tableur et la base de données réalisés par Microsoft.

J’ai aussi écrit ce livre parce que la première fois que j’ai voulu apprendre l’informatique, on m’a demandé poliment de bien vouloir commencer par étudier les mathématiques pendant deux ans. Bien évidemment, je n’ai jamais obtempéré et j’ai quand même appris l’informatique.

Je remercie enfin toutes les personnes qui m’ont donné des conseils même s’il me fut parfois très difficile de les suivre...

Dernier détail : en dépit de certains usages, je persiste à écrire le terme icone  sans accent circonflexe et à lui donner un genre masculin. Pour ma défense, le Grand Robert de la Langue française signale qu’icone est masculin ou féminin et qu’il s’agit d’un « signe qui renvoie à ce qu'il dénote (l'objet) en vertu de ses caractères propres et qui a donc avec l'objet des caractères (abstraits, relationnels) communs. »


Conventions typographiques

 

Les caractères que vous devez saisir sont indiqués en gras.

Les noms des touches sur lesquelles vous devez appuyer sont indiqués en petites majuscules.

Le code des programmes apparaît comme ceci :

    Selection.MoveUp Unit:=wdLine, Count:=1

Les éléments d’interface des applications Office (commandes, boutons, onglets, etc.) apparaissent comme ceci :

Outils | Macro | Nouvelle macro

La barre verticale séparant les commandes indique un menu à plusieurs niveaux.

 

Le code des exemples

 

Vous trouverez la totalité du code des exemples de cet ouvrage (ainsi que des programmes supplémentaires) à l’adresse suivante :

 

http://www.cosi.fr