Apprendre le codage de macro VBA Word 2007

L'objectif de ce cours est d'aider les personnes qui n'ont jamais écrit de programme auparavant à en apprendre un. Il n'y a aucune raison pour que les employés de bureau, les femmes au foyer, les ingénieurs professionnels et les livreurs de pizza ne devraient pas pouvoir profiter de leurs propres programmes informatiques personnalisés pour travailler plus rapidement et plus intelligent. Cela ne devrait pas prendre un «programmeur professionnel» (quel qu'il soit) pour faire le travail. Vous savez ce qui doit être fait mieux que quiconque. Tu peux le faire toi-même!

(Et je dis cela comme quelqu'un qui a passé de nombreuses années à écrire des programmes pour d'autres personnes... 'professionnellement'.)

Cela dit, ce n'est pas un cours sur l'utilisation d'un ordinateur.

Ce cours suppose que vous savez utiliser des logiciels courants et en particulier que Microsoft Word 2007 est installé sur votre ordinateur. Vous devez connaître les compétences informatiques de base telles que la façon de créer des dossiers de fichiers (c'est-à-dire des répertoires) et comment déplacer et copier des fichiers. Mais si vous vous êtes toujours demandé ce qu'était réellement un programme informatique, c'est OK. Nous allons vous montrer.

instagram viewer

Microsoft Office n'est pas bon marché. Mais vous pouvez obtenir plus de valeur de ce logiciel coûteux que vous avez déjà installé. C'est une grande raison pour laquelle nous utilisons Visual Basic pour Applications, ou VBA, avec Microsoft Office. Il y a des millions de personnes qui l'ont et une poignée (peut-être personne) qui utilise tout ce qu'elle peut faire.

Avant d'aller plus loin, cependant, je dois expliquer une dernière chose à propos de VBA. En février 2002, Microsoft a fait un pari de 300 milliards de dollars sur une base technologique totalement nouvelle pour l'ensemble de son entreprise. Ils l'ont appelé .NET. Depuis lors, Microsoft a déplacé l'intégralité de sa base technologique vers VB.NET. VBA est le tout dernier outil de programmation qui utilise encore VB6, la technologie éprouvée utilisée avant VB.NET. (Vous verrez l'expression "basé sur COM" pour décrire cette technologie de niveau VB6.)

VSTO et VBA

Microsoft a créé un moyen d'écrire des programmes VB.NET pour Office 2007. Cela s'appelle Visual Studio Tools pour Office (VSTO). Le problème avec VSTO est que vous devez acheter et apprendre à utiliser Visual Studio Professional. Excel lui-même est toujours basé sur COM et les programmes .NET doivent fonctionner avec Excel via une interface (appelée PIA, Primary Interop Assembly).

Donc... jusqu'à ce que Microsoft agisse ensemble et vous donne un moyen d'écrire des programmes qui fonctionneront avec Word et ne vous feront pas rejoindre le service informatique, les macros VBA sont toujours le chemin à parcourir.

Une autre raison pour laquelle nous utilisons VBA est que c'est vraiment un `` entièrement cuit '' (pas à moitié cuit) développement de logiciels environnement qui a été utilisé pendant des années par les programmeurs pour créer certains des systèmes les plus sophistiqués qui existent. Peu importe la hauteur de vos vues de programmation. Visual Basic a le pouvoir de vous y emmener.

Qu'est-ce qu'une macro?

Vous avez peut-être déjà utilisé des applications de bureau qui prennent en charge ce qu'on appelle un langage de macro. Les macros ne sont traditionnellement que des scripts d'actions de clavier regroupés avec un seul nom afin que vous puissiez les exécuter toutes en même temps. Si vous commencez toujours la journée en ouvrant votre document "MyDiary", en entrant la date du jour et en tapant les mots "Dear Diary", - Pourquoi ne pas laisser votre ordinateur le faire pour vous? Pour être cohérent avec les autres logiciels, Microsoft appelle également VBA un langage de macro. Mais ce n'est pas. C'est beaucoup plus.

De nombreuses applications de bureau incluent un outil logiciel qui vous permettra d'enregistrer une macro de "frappe". Dans les applications Microsoft, cet outil est appelé l'enregistreur de macros, mais le résultat n'est pas une macro de frappe traditionnelle. C'est un programme VBA et la différence est qu'il ne rejoue pas simplement les frappes. Un programme VBA vous donne le même résultat final si possible, mais vous pouvez également écrire des systèmes sophistiqués dans VBA qui laissent de simples macros de clavier dans la poussière. Par exemple, vous pouvez utiliser les fonctions Excel dans Word à l'aide de VBA. Et vous pouvez intégrer VBA à d'autres systèmes comme les bases de données, le Web ou d'autres applications logicielles.

Bien que l'enregistreur de macros VBA soit très utile pour créer simplement des macros de clavier simples, les programmeurs ont découvert qu'il est encore plus utile de leur donner un bon départ dans des programmes plus sophistiqués. Voilà ce que nous allons faire.

Début Microsoft Word 2007 avec un document vierge et préparez-vous à écrire un programme.

L'onglet Développeur dans Word

L'une des premières choses que vous devez faire pour écrire un programme Visual Basic dans Word 2007 est trouver Visual Basic! La valeur par défaut dans Word 2007 est de ne pas afficher le ruban utilisé. Pour ajouter le Développeur onglet, cliquez d'abord sur le Bureau (le logo dans le coin supérieur gauche), puis cliquez sur Options Word. Cliquez sur Afficher l'onglet Développeur dans le ruban puis cliquez sur D'accord.

Lorsque vous cliquez sur le Développeur onglet, vous avez un tout nouvel ensemble d'outils utilisés pour écrire des programmes VBA. Nous allons utiliser l'enregistreur de macros VBA pour créer votre premier programme. (Si le ruban avec tous vos outils continue de disparaître, vous pouvez cliquer avec le bouton droit sur le ruban et vous assurer Réduisez le ruban n'est pas cochée.)

Cliquez sur Enregistrer une macro. Nommez votre macro: À propos de VB1 en tapant ce nom dans le Nom de la macro zone de texte. Sélectionnez votre document actuel comme emplacement de stockage de votre macro et cliquez sur OK. Voir l'exemple ci-dessous.

(Remarque: si vous choisissez Tous les documents (Normal.dotm) à partir du menu déroulant, ce programme de test VBA deviendra, en fait, une partie de Word lui-même car il deviendra alors disponible pour chaque document que vous créez dans Word. Si vous souhaitez uniquement utiliser une macro VBA dans un document spécifique, ou si vous souhaitez pouvoir l'envoyer à quelqu'un d'autre, il est préférable d'enregistrer la macro en tant que partie du document. Normal.dotm est la valeur par défaut, vous devez donc la modifier.)

Avec l'enregistreur de macros activé, tapez le texte «Bonjour tout le monde». dans votre document Word. (Le pointeur de la souris se transforme en image miniature d'une cartouche de bande pour montrer que les frappes sont enregistrées.)

(Remarque: Hello World est presque requis pour un "Premier programme" car le tout premier manuel de programmation pour les premiers langage informatique "C" utilisé. Depuis, c'est une tradition.)

Cliquez sur Arrête d'enregistrer. Fermez Word et enregistrez le document sous le nom: À propos de VB1.docm. Vous devez sélectionner un Document compatible avec les macros Word du Sauvegarder comme type menu déroulant.

C'est ça! Vous avez maintenant écrit un programme Word VBA. Voyons à quoi ça ressemble!

Comprendre ce qu'est un programme VBA

Si vous avez fermé Word, ouvrez-le à nouveau et sélectionnez le À propos de VB1.docm fichier que vous avez enregistré dans la leçon précédente. Si tout a été fait correctement, vous devriez voir une bannière en haut de la fenêtre de votre document avec un avertissement de sécurité.

VBA et sécurité

VBA est un vrai langage de programmation. Cela signifie que VBA peut faire à peu près tout ce dont vous avez besoin. Et cela, à son tour, signifie que si vous recevez un document Word avec une macro intégrée d'un "méchant", cette macro peut faire à peu près n'importe quoi aussi. L'avertissement de Microsoft doit donc être pris au sérieux. D'autre part, vous a écrit cette macro et ne fait que taper "Hello World" donc il n'y a aucun risque ici. Cliquez sur le bouton pour activer les macros.

Pour voir ce que l'enregistreur de macros a créé (ainsi que pour effectuer la plupart des autres tâches impliquant VBA), vous devez démarrer Visual Basic Editor. Il y a une icône pour le faire sur le côté gauche du ruban Developer.

Tout d'abord, remarquez la fenêtre de gauche. C'est ce qu'on appelle le Explorateur de projets et il regroupe les objets de haut niveau (nous en parlerons plus en détail) qui font partie de votre projet Visual Basic.

Au démarrage de l’enregistreur de macros, vous aviez le choix entre Ordinaire modèle ou le document actuel comme emplacement pour votre macro. Si vous avez sélectionné Normal, le NewMacros module fera partie de la Ordinaire de l'affichage de l'Explorateur de projets. (Vous étiez censé sélectionner le document actuel. Si vous avez sélectionné Ordinaire, supprimez le document et répétez les instructions précédentes.) Sélectionnez NewMacros en dessous de Modules dans votre projet actuel. S'il n'y a toujours pas de fenêtre de code affichée, cliquez sur Code sous le Vue menu.

Le document Word en tant que conteneur VBA

Chaque programme Visual Basic doit se trouver dans une sorte de fichier «conteneur». Dans le cas des macros VBA Word 2007, ce conteneur est un document Word ('.docm'). Les programmes Word VBA ne peuvent pas fonctionner sans Word et vous ne pouvez pas créer de programmes Visual Basic autonomes («.exe») comme vous pouvez le faire avec Visual Basic 6 ou Visual Basic .NET. Mais cela laisse encore tout un monde de choses que vous pouvez faire.

Votre premier programme est certainement court et doux, mais il servira à présenter les principales fonctionnalités de VBA et de Visual Basic Editor.

La source du programme sera normalement constituée d'une série de sous-programmes. Lorsque vous passez à une programmation plus avancée, vous découvrirez que d'autres choses peuvent faire partie du programme en plus des sous-programmes.

Ce sous-programme particulier est nommé À propos de VB1. L'en-tête du sous-programme doit être associé à un End Sub au fond. La parenthèse peut contenir une liste de paramètres composée de valeurs transmises au sous-programme. Rien ne se passe ici, mais ils doivent être là dans le Sous déclaration de toute façon. Plus tard, lorsque nous exécuterons la macro, nous chercherons le nom À propos de VB1.

Il n'y a qu'une seule instruction de programme réelle dans le sous-programme:

Sélection. TypeText Text: = "Bonjour tout le monde!"

Objets, méthodes et propriétés

Cette déclaration contient les trois grands:

  • un objet
  • une méthode
  • une propriété

La déclaration ajoute en fait le texte «Bonjour tout le monde». au contenu du document actuel.

La tâche suivante consiste à exécuter notre programme plusieurs fois. Tout comme l'achat d'une voiture, c'est une bonne idée de la conduire pendant un certain temps jusqu'à ce qu'elle soit un peu confortable. Nous le faisons ensuite.

Programmes et documents

Nous avons notre système glorieux et compliqué... composé d'un énoncé de programme... mais maintenant nous voulons l'exécuter. Voici de quoi il s'agit.

Il y a un concept à apprendre ici qui est très important et qui déroute souvent les débutants: la différence entre les programme et le document. Ce concept est fondamental.

Les programmes VBA doivent être contenus dans un fichier hôte. Dans Word, l'hôte est le document. Dans notre exemple, c'est À propos de VB1.docm. Le programme est en fait enregistré dans le document.

Par exemple, s'il s'agissait d'Excel, nous parlerions de la programme et le tableur. Dans Access, le programme et le base de données. Même dans une application Windows Visual Basic autonome, nous aurions un programme et un forme.

(Remarque: il y a une tendance dans la programmation à désigner tous les conteneurs de haut niveau comme un "document". C'est particulièrement le cas lorsque XML... une autre technologie émergente... est en train d'être utilisé. Ne vous laissez pas dérouter. Bien que ce soit une légère inexactitude, vous pouvez penser que les "documents" sont à peu près les mêmes que les "fichiers".)

Il y a... ummmmm... environ trois façons principales d'exécuter votre macro VBA.

  1. Vous pouvez l'exécuter à partir du document Word.
    (Remarque: deux sous-catégories consistent à sélectionner des macros dans le menu Outils ou à simplement appuyer sur Alt-F8. Si vous avez affecté la macro à un raccourci de la barre d'outils ou du clavier, c'est une autre façon.))
  2. Vous pouvez l'exécuter à partir de l'éditeur à l'aide de l'icône Exécuter ou du menu Exécuter.
  3. Vous pouvez parcourir le programme en une seule étape en mode débogage.

Vous devriez essayer chacune de ces méthodes juste pour vous familiariser avec l'interface Word / VBA. Lorsque vous aurez terminé, vous aurez un document entier rempli de répétitions de "Hello World!"

L'exécution du programme à partir de Word est assez facile à faire. Sélectionnez simplement la macro après avoir cliqué sur Macro icône sous le Vue languette.

Pour l'exécuter à partir de l'éditeur, ouvrez d'abord l'éditeur Visual Basic, puis cliquez sur l'icône Exécuter ou sélectionnez Exécuter dans le menu. Voici où la différence entre le Document et le Programme peut devenir déroutante pour certains. Si vous avez réduit le document ou que vos fenêtres sont disposées de manière à ce que l'éditeur le couvre, vous pouvez cliquer sur l'icône Exécuter encore et encore et rien ne semble se produire. Mais le programme est en marche! Revenez au document et voyez.

Une seule étape dans le programme est probablement la technique de résolution de problèmes la plus utile. Cela se fait également à partir de l'éditeur Visual Basic. Pour l'essayer, appuyez sur F8 ou sélectionnez Entrer dans du Déboguer menu. La première déclaration du programme, la Sous est mise en évidence. Appuyez sur F8 pour exécuter les instructions de programme une par une jusqu'à la fin du programme. Vous pouvez voir exactement quand le texte est ajouté au document de cette façon.

Il existe de nombreuses techniques de débogage plus raffinées telles que les «points d'arrêt», l'examen des objets de programme dans la «fenêtre immédiate» et l'utilisation de la «fenêtre de surveillance». Mais pour l'instant, sachez simplement qu'il s'agit d'une technique de débogage principale que vous utiliserez en tant que programmeur.

Programmation orientée objet

La prochaine leçon en classe concerne Programmation orientée objet.

"Whaaaattttt!" (Je vous entends gémir) "Je veux juste écrire des programmes. Je ne me suis pas inscrit pour devenir informaticien! "

N'ayez pas peur! Il y a deux raisons pour lesquelles il s'agit d'une grande initiative.

Premièrement, dans l'environnement de programmation d'aujourd'hui, vous ne pouvez tout simplement pas être un programmeur efficace sans comprendre les concepts de programmation orientée objet. Même notre très simple programme "Hello World" d'une seule ligne consistait en un objet, une méthode et une propriété. À mon avis, ne pas comprendre les objets est le plus gros problème que rencontrent les programmeurs débutants. Nous allons donc affronter la bête dès le départ!

Deuxièmement, nous allons rendre cela aussi indolore que possible. Nous n'allons pas vous confondre avec un tas de jargon informatique.

Mais juste après cela, nous allons revenir directement à l'écriture de code de programmation avec une leçon où nous développons une macro VBA que vous pouvez probablement utiliser! Nous perfectionnerons ce programme un peu plus dans la prochaine leçon et finirons par vous montrer comment commencer à utiliser VBA avec plusieurs applications à la fois.

instagram story viewer