Comment écrire des macros pour Excel. Macros dans Excel - Mode d'emploi. Ajout de boutons de macro aux onglets

Thème 2.3. Logiciels de présentation et bases de la programmation bureautique

Thème 2.4. Systèmes de gestion de bases de données et systèmes experts

2.4.11. Base de données de formation avec le formulaire principal "Training_students" - Télécharger

Programmation et macros VBA

2.3. Logiciels de présentation et bases de la programmation bureautique

2.3.7. Bases de la programmation bureautique

Langage de programmation visuel BASIC pour applications : Visual Basic pour Applications (VBA)

VBA est un sous-ensemble du langage de programmation visuel Visual Basic (VB) qui comprend presque tous les outils permettant de créer des applications VB.

VBA diffère du langage de programmation VB dans la mesure où VBA est conçu pour fonctionner directement avec les objets Office et ne peut pas être utilisé pour créer un projet indépendant des applications Office. Ainsi, dans VBA, le langage de programmation est VB, et l'environnement de programmation est implémenté sous la forme d'un éditeur VB, activable depuis n'importe quelle application MS Office.

Par exemple, pour ouvrir l'éditeur VBA depuis PowerPoint, vous devez exécuter la commande Outils / Macro / Éditeur VBA. Vous pouvez revenir de l'éditeur à l'application en sélectionnant la commande Microsoft PowerPoint dans le menu Affichage ou en appuyant sur la combinaison de touches Alt + F11.

À l'aide de l'ensemble de contrôles et de l'éditeur de formulaires intégrés de l'éditeur VBA, l'utilisateur peut créer interface utilisateur pour le projet en cours de développement avec formulaire d'écran. Les contrôles sont des objets et chaque objet possède un ensemble défini d'événements possibles (par exemple, cliquer ou double-cliquer sur une souris, appuyer sur une touche, faire glisser un objet, etc.).

Chaque événement se manifeste dans certaines actions du programme (réponses, réactions). Un formulaire utilisateur permet de créer des fenêtres de dialogue d'application. Le langage de programmation VBA est utilisé pour écrire du code de programme, comme la création de fonctions utilisateur dans Excel.

Le fait que le système de programmation VBA soit conçu pour fonctionner avec des objets Office lui permet d'être utilisé efficacement pour automatiser les activités de développement. divers types documents.

Regardons l'algorithme de création de fonctions utilisateur dans VBA :

1. Ouvrez la fenêtre de l'éditeur de code VBA en exécutant la commande Outils / Macro / Visual Basic Editor ou en appuyant sur Alt+F11.

2. Sélectionnez l'élément de menu de l'éditeur Insérer / Module.

3. Ensuite, effectuez Insertion/Procédure. Dans la boîte de dialogue Ajouter une procédure qui s'ouvre, entrez le nom de la fonction (par exemple, SUM5) et réglez les commutateurs : Type – sur la position Fonction ; Portée (Scope) - au poste Public (Général) et cliquez sur OK.


Riz. 1.

4. Dans la fenêtre de l'éditeur de programmation VBA, un modèle de fonction apparaîtra : titre - Fonction publique SUM5() et fin - Fonction de fin, entre lesquels vous devez placer le code du corps de la fonction.


Riz. 2.

5. Ensuite, nous entrons dans une liste de paramètres de fonction, par exemple, entre parenthèses nous indiquons (x, y, z, i, j), le type de données (pour des calculs précis) et le type de valeur renvoyée par la fonction (nous ne le saisirai pas dans cet exemple). De plus, nous introduisons le corps de la fonction, par exemple SUM5 = x + y + z + i + j. En conséquence, nous obtenons le texte de programme suivant :

Fonction publique SUM5(x, y, z, i, j)
SOMME5 = x + y + z + i + j
Fonction de fin

6. Retour à la fenêtre Applications Excel, dans lequel, par exemple, nous devons additionner cinq valeurs.

7. Exécutez « Insérer/Fonction » et dans la fenêtre de l'assistant de fonction qui s'ouvre, sélectionnez la catégorie « Défini par l'utilisateur », et dans la fenêtre « Sélectionner une fonction », sélectionnez SUM5 et cliquez sur OK.



Riz. 3.



Riz. 4.

Macro

Créer une macro

Créons une macro pour additionner automatiquement deux nombres dans les cellules A1, B1 et plaçons le résultat dans la cellule C1, ainsi que remplissons la cellule C1 de couleur turquoise.

Algorithme de création d'une macro pour la tâche :

1. Sélectionnez Outils/Macro, Démarrer l'enregistrement.

2. Dans le champ Nom de la macro, saisissez un nom pour la macro. Le premier caractère du nom de la macro doit être une lettre. Les espaces ne sont pas autorisés dans le nom de la macro ; Vous pouvez utiliser des traits de soulignement comme séparateurs de mots.

3. Pour exécuter une macro à l'aide d'un raccourci clavier, saisissez une lettre dans le champ Raccourci clavier. Vous pouvez utiliser les combinaisons CTRL+ lettre (pour les lettres minuscules) ou CTRL+SHIFT+ lettre (pour les lettres majuscules), où lettre est n'importe quelle touche alphabétique du clavier. Ne sélectionnez pas de raccourci clavier standard, car le raccourci clavier sélectionné remplace les raccourcis clavier standard. Microsoft Excelà cette époque avec ce livre.

4. Dans le champ "Enregistrer", sélectionnez le classeur dans lequel vous souhaitez enregistrer la macro. Enregistrez la macro dans « Ce classeur ». Pour créer brève description macro, saisissez le texte requis dans le champ Description. La capture d'écran montre un exemple de remplissage de la boîte de dialogue « Enregistrer une macro »


Riz. 5.

5. Cliquez sur OK.

6. Exécutez les commandes macro que vous souhaitez enregistrer.


Riz. 6.

7. Cliquez sur le bouton Arrêter l'enregistrement dans la barre d'outils flottante du système d'exploitation (Arrêter l'enregistrement) ou Outils / Macro / Arrêter la macro.

Lorsqu'une macro a fini d'enregistrer, elle apparaît dans la liste des macros sous son nom.

L'éditeur VBA a enregistré automatiquement une séquence de commandes macro ou un programme basé sur les actions effectuées (Fig. 7.).



Riz. 7.

Pour appeler une macro, vous devez exécuter la commande Outils / Macro / Macros. Après cela, dans la boîte de dialogue avec une liste de macros, vous pouvez la trouver par son nom et cliquer sur le bouton Exécuter.

Attribution d'un bouton de barre d'outils pour exécuter une macro

La macro peut être lancée à l'aide du bouton de la barre d'outils intégrée ; pour ce faire, vous devez faire :

  1. Sélectionnez Paramètres dans le menu Outils.
  2. Dans la boîte de dialogue Paramètres, sélectionnez l'onglet Commandes, sélectionnez l'option Macros dans la liste Catégories, puis sélectionnez « Bouton personnalisé » dans la liste Commandes.
  3. Dans la liste Commandes, utilisez votre souris pour faire glisser le bouton personnalisé sur la barre d'outils.
  4. Cliquez avec le bouton droit sur ce bouton et sélectionnez Attribuer une macro à menu contextuel.
  5. Entrez un nom pour la macro dans le champ Nom de la macro.

Affectation d'une zone d'un objet graphique pour exécuter une macro :

  1. Créez un objet graphique.
  2. Applique le menu contextuel à l'objet graphique sélectionné.
  3. Sélectionnez la commande Attribuer une macro dans le menu contextuel.
  4. Dans la boîte de dialogue Attribuer une macro à un objet qui apparaît, entrez le nom de la macro dans le champ Nom de la macro, puis cliquez sur OK.

L'édition d'une macro s'effectue à l'aide de l'éditeur VBA ; pour cela, vous devez procéder comme suit :

  1. Sélectionnez la commande Outils / Macros / Macros.
  2. Sélectionnez le nom de la macro que vous souhaitez modifier dans la liste Nom.
  3. Cliquez sur le bouton Modifier, une fenêtre Visual Basic s'ouvrira, dans laquelle vous pourrez modifier les commandes de la macro sélectionnée écrite en Visual Basic.


Supprimer une macro :

  1. Dans le menu Outils, sélectionnez Macros, puis Macros.
  2. Dans la liste des macros du classeur actuel, vous devez sélectionner la macro que vous souhaitez supprimer et cliquer sur le bouton Supprimer.

Renommer une macro

Pour renommer une macro, vous devez entrer en mode d'édition de macro et modifier le titre dans le texte du programme. Le nouveau nom remplacera automatiquement l'ancien dans les listes de macros et les touches de raccourci appelleront la macro avec le nouveau nom.

Tout d’abord, un peu de terminologie.

Macro- c'est du code écrit dans le langage intégré d'Excel VBA(Visual Basic pour application). Les macros peuvent être créées manuellement ou enregistrées automatiquement à l'aide d'un enregistreur de macros.

Enregistreur de macros est un outil dans Excel qui enregistre étape par étape tout ce que vous faites dans Excel et le convertit en code VBA. L'enregistreur de macros produit un code très détaillé (comme nous le verrons plus tard) que vous pourrez modifier ultérieurement si nécessaire.

La macro enregistrée peut être exécutée un nombre illimité de fois et Excel répétera toutes les étapes enregistrées. Cela signifie que même si vous ne connaissez rien à VBA, vous pouvez automatiser certaines tâches en enregistrant simplement vos étapes, puis en les réutilisant plus tard.

Voyons maintenant comment enregistrer une macro dans Excel.

Afficher l'onglet Développeur dans le ruban de menu

Avant d'enregistrer une macro, vous devez ajouter un onglet Développeur au ruban de menu Excel. Pour le faire, suivez ces étapes:

En conséquence, l'onglet « Développeur » apparaîtra sur le ruban de menu.

Enregistrer une macro dans Excel

Écrivons maintenant une macro très simple qui sélectionne une cellule et y saisit du texte, comme "Excel".

Voici les étapes pour enregistrer une telle macro :

Toutes nos félicitations! Vous venez d'enregistrer votre première macro dans Excel. Bien que la macro ne fasse rien d’utile, elle nous aidera à comprendre comment fonctionne l’enregistreur de macros dans Excel.

Regardons maintenant le code enregistré par l'enregistreur de macros. Suivez ces étapes pour ouvrir l'éditeur de code :


Vous verrez qu'une fois que vous aurez cliqué sur le bouton Exécuter, le texte « Excel » sera inséré dans la cellule A2 et la cellule A3 sera sélectionnée. Cela se produit en millisecondes. Mais en fait, la macro effectuait les actions enregistrées de manière séquentielle.

Note. Vous pouvez également exécuter une macro à l'aide du raccourci clavier Ctrl + Shift + N (maintenez les touches Ctrl et Shift enfoncées puis appuyez sur la touche N). C'est le même label que nous avons attribué à la macro lorsque nous l'avons enregistrée.

Qu’enregistre une macro ?

Passons maintenant à l'éditeur de code et voyons ce que nous avons obtenu.

Voici les étapes pour ouvrir l’éditeur VB dans Excel :

  1. Dans le groupe Code, cliquez sur le bouton Visual Basic.

Vous pouvez également utiliser la combinaison de touches Alt + F11 et accéder à l'éditeur de code VBA.

  • Barre de menu: Contient des commandes que vous pouvez utiliser lorsque vous travaillez avec l'éditeur VB.
  • Barre d'outils- ressemble à un panneau accès rapide dans Excel. Vous pouvez ajouter des outils supplémentaires que vous utilisez fréquemment.
  • Explorateur de projet- Ici, Excel répertorie tous les classeurs et tous les objets de chaque classeur. Par exemple, si nous avons un classeur avec 3 feuilles de calcul, il apparaîtra dans l'Explorateur de projet. Il existe plusieurs objets supplémentaires ici, tels que des modules, des formulaires utilisateur et des modules de classe.
  • Fenêtre de codes- le code VBA lui-même se trouve dans cette fenêtre. Pour chaque objet répertorié dans l'explorateur de projet, il existe une fenêtre de code, comme des feuilles de calcul, des classeurs, des modules, etc. Dans ce tutoriel, nous verrons que la macro enregistrée se trouve dans la fenêtre de code du module.
  • Fenêtre Propriétés- vous pouvez voir les propriétés de chaque objet dans cette fenêtre. J'utilise souvent cette fenêtre pour étiqueter des objets ou modifier leurs propriétés.
  • Fenêtre immédiate(fenêtre d'aperçu) - Au stade initial, vous n'en aurez pas besoin. C'est utile lorsque vous souhaitez tester des étapes ou pendant le débogage. Il n'est pas affiché par défaut et vous pouvez l'afficher en cliquant sur l'onglet Affichage et en sélectionnant l'option Fenêtre immédiate.

Lorsque nous avons enregistré la macro "EnterText", les événements suivants se sont produits dans l'éditeur VB :

  • Un nouveau module a été ajouté.
  • La macro a été enregistrée avec le nom que nous avons spécifié - "InputText"
  • Une nouvelle procédure a été ajoutée à la fenêtre de code.

Ainsi si vous double-cliquez sur un module (dans notre cas le module 1), une fenêtre de code apparaîtra comme indiqué ci-dessous.

Voici le code enregistré par l'enregistreur de macro :

SubTextEnter() " "TextEnter Macro " " Range("A2"). Sélectionnez ActiveCell.FormulaR1C1 = "Excel" Range ("A3"). Sélectionnez End Sub

Dans VBA, toute ligne qui suit " (l'apostrophe) n'est pas exécutée. Il s'agit d'un commentaire à titre informatif uniquement. Si vous supprimez les cinq premières lignes de ce code, la macro fonctionnera toujours.

Passons maintenant en revue chaque ligne de code et décrivons quoi et pourquoi.

Le code commence par Sous suivi du nom de la macro et de parenthèses vides. Sub est l'abréviation de sous-programme. Chaque sous-programme (également appelé procédure) dans VBA commence par Sous et prend fin Fin du sous-marin.

  • Range("A2").Select - Cette ligne sélectionne la cellule A2.
  • ActiveCell.FormulaR1C1 = "Excel" - Cette ligne saisit le texte "Excel" dans la cellule active. Puisque nous avons sélectionné la cellule A2 comme première étape, elle devient notre cellule active.
  • Range("A3").Select - sélectionnez la cellule A3. Cela se produit lorsque nous appuyons sur la touche Entrée après avoir saisi du texte qui entraîne la sélection de la cellule A3.

J'espère que vous avez une compréhension de base de la façon d'enregistrer une macro dans Excel.

Veuillez noter que le code enregistré via un enregistreur de macros n'est généralement pas un code efficace ou optimisé. L'enregistreur de macros ajoute souvent des étapes supplémentaires inutiles. Mais cela ne signifie pas que vous n'avez pas besoin d'utiliser un enregistreur de macros. Pour ceux qui apprennent VBA, un enregistreur de macros peut être un excellent moyen d’analyser et de comprendre comment tout fonctionne dans VBA.

Enregistrement macro absolu et relatif

Connaissez-vous déjà les liens absolus et relatifs dans Excel ? Si vous utilisez une référence absolue pour enregistrer une macro, le code VBA fera toujours référence aux mêmes cellules que celles que vous avez utilisées. Par exemple, si vous sélectionnez la cellule A2 et entrez le texte « Excel », alors à chaque fois, peu importe où vous vous trouvez dans la feuille de calcul et quelle que soit la cellule sélectionnée, votre code entrera le texte « Excel » dans la cellule A2.

Si vous utilisez l'option de référence relative pour enregistrer une macro, VBA ne se liera pas à une adresse de cellule spécifique. Dans ce cas, le programme se « déplacera » par rapport à la cellule active. Par exemple, disons que vous avez déjà sélectionné la cellule A1 et que vous commencez à enregistrer votre macro en mode lien relatif. Maintenant, vous sélectionnez la cellule A2, entrez Texte Excel et appuyez sur Entrée. Désormais, si vous exécutez cette macro, elle ne reviendra pas à la cellule A2, mais se déplacera par rapport à la cellule active. Par exemple, si la cellule B3 est sélectionnée, elle sera déplacée vers B4, écrira le texte « Excel » puis passera à la cellule K5.

Enregistrons maintenant la macro en mode lien relatif :

La macro en mode lien relatif sera enregistrée.

Maintenant, procédez comme suit.

  1. Sélectionnez n’importe quelle cellule (sauf A1).
  2. Allez dans l'onglet "Développeur".
  3. Dans le groupe Code, cliquez sur le bouton Macros.
  4. Dans la boîte de dialogue Macro, cliquez sur la macro de références relatives enregistrée.
  5. Cliquez sur le bouton "Exécuter".

Comme vous le remarquerez, la macro n'a pas écrit le texte "Excel" dans les cellules A2. Cela est dû au fait que vous avez enregistré la macro en mode référence relative. Ainsi, le curseur se déplace par rapport à la cellule active. Par exemple, si vous faites cela alors que la cellule B3 est sélectionnée, cela ira dans le texte Excel - cellule B4 et finira par sélectionner la cellule B5.

Voici le code enregistré par l'enregistreur de macros :

Notez que le code ne fait aucune référence aux cellules B3 ou B4. La macro utilise Activecell pour référencer la cellule actuelle et le décalage par rapport à cette cellule.

Ignorez la partie Range("A1") du code. C'est l'un de ces cas où l'enregistreur de macros ajoute du code inutile qui ne sert à rien et peut être supprimé. Sans cela, le code fonctionnera correctement.

Que ne pouvez-vous pas faire avec un enregistreur de macros ?

L'enregistreur de macros est idéal pour vous dans Excel et enregistre vos étapes exactes, mais n'est peut-être pas le bon choix pour vous lorsque vous devez faire plus que cela.

  • Vous ne pouvez pas exécuter de code sans sélectionner un objet. Par exemple, si vous souhaitez que la macro aille à la feuille de calcul suivante et mette en surbrillance toutes les cellules remplies de la colonne A sans quitter la feuille de calcul actuelle, l'enregistreur de macros ne pourra pas le faire. Dans de tels cas, vous devez modifier manuellement le code.
  • Vous ne pouvez pas créer une fonction personnalisée à l'aide d'un enregistreur de macros. Avec VBA, vous pouvez créer des fonctions personnalisées qui peuvent être utilisées dans une feuille de calcul comme des fonctions normales.
  • Vous ne pouvez pas créer de boucles à l'aide de l'enregistreur de macros. Mais vous pouvez enregistrer une action et ajouter une boucle manuellement dans l'éditeur de code.
  • Vous ne pouvez pas analyser les conditions : vous pouvez vérifier les conditions dans le code à l'aide d'un enregistreur de macros. Si vous écrivez du code VBA à la main, vous pouvez utiliser les instructions IF Then Else pour évaluer la condition et exécuter le code si vrai (ou un autre code si faux).

Extension de fichiers Excel contenant des macros

Lorsque vous enregistrez une macro ou écrivez manuellement du code VBA dans Excel, vous devez enregistrer le fichier avec une extension de fichier prenant en charge les macros (.xlsm).

Avant Excel 2007, un seul format de fichier suffisait : .xls. Mais depuis 2007, .xlsx a été introduit comme extension de fichier standard. Les fichiers enregistrés au format .xlsx ne peuvent pas contenir de macro. Ainsi, si vous avez un fichier avec l'extension .xlsx et que vous écrivez/enregistrez une macro et que vous l'enregistrez, il vous avertira de l'enregistrer dans un format prenant en charge les macros et vous montrera la boîte de dialogue suivante :

Si vous sélectionnez Non, Excel enregistre le fichier dans un format prenant en charge les macros. Mais si vous cliquez sur Oui, Excel supprimera automatiquement tout le code de votre classeur et enregistrera le fichier en tant que classeur au format .xlsx. Ainsi, si vous avez une macro dans votre classeur, vous devez l'enregistrer au format .xlsm pour enregistrer cette macro.

Qu'est-ce qu'une macro ? Macro est une séquence d'actions enregistrée ou un programme créé en VBA (Visual Basic for Application). Question fréquemment posée comment écrire une macro dans Excel ? Juste.

Ceux. si nous devons effectuer les mêmes actions plusieurs fois, nous pouvons mémoriser ces actions et les exécuter avec un seul bouton. Je ne vous forcerai pas à apprendre VBA ni même à vous suggérer de nombreuses macros standards dans cet article. En réalité, n’importe qui peut créer/écrire une macro dans Excel. À cette fin, il existe la fonctionnalité la plus intéressante et la plus inhabituelle d'Excel : Enregistreur de macros(en enregistrant vos actions sous forme de code). Ceux. vous pouvez enregistrer vos actions, comme en vidéo, et les traduire en code (séquence).

Bref, si vous effectuez les mêmes actions tous les jours, cela vaut la peine de réfléchir à comment automatiser ce processus. Lisez la suite pour savoir comment écrire une macro dans Excel ?

1.Autoriser les macros

Menu (bouton rond en haut à gauche) - Options Excel— Centre de confiance — Paramètres du centre de confiance — Paramètres des macros. Cochez la case "Activer toutes les macros".

Ou faites de même dans l'onglet Développeur

2. Activez le menu Développeur pour travail rapide avec des macros

Menu (bouton rond en haut à gauche) - Options Excel - Général - Afficher l'onglet Développeur.

Pour que la macro créée soit enregistrée dans le classeur, vous devez enregistrer le fichier dans .xlsm ou .xlsb. Cliquez sur Enregistrer sous - Classeur Excel prenant en charge les macros ou Classeur binaire.

Alors, comment écrire une macro dans Excel ?

C'est simple. Passons à Excel. En bas de page, sous les étiquettes des feuilles, se trouve un bouton « Enregistrer la macro ».

Cliquez sur le bouton et la fenêtre « Enregistrer la macro » s'ouvre. Nous nommons la macro comme bon nous semble dans le champ Nom de la macro :. Nous définissons la combinaison de touches que nous utiliserons pour l'appeler plus tard (facultatif).

Cliquez sur OK. L'enregistreur de macros a commencé à enregistrer.

Tous. Maintenant, nous effectuons les actions dont nous devons nous souvenir en tant que macro. Par exemple, nous devons supprimer une ligne et colorer la cellule A1 en jaune.

Lors de ces manipulations, à la place du bouton « Enregistrer la macro » sous les feuilles, un carré s'allumera, un clic sur lequel arrêtera l'exécution de la macro.

Comment lancer ce qui s'est passé ? Cliquez sur le bouton, la fenêtre Sélectionner une macro apparaîtra, sélectionnez la macro souhaitée, puis cliquez sur le bouton Exécuter.

Comment puis-je voir ce qui s'est passé ? Cliquez sur le bouton. Sélectionnez la macro souhaitée et cliquez sur Modifier. La fenêtre Enregistrer une macro (fenêtre VBA) s'ouvrira.

Le code de la macro devrait ressembler à ceci.

Sub Exemple1() " Exemple1 Macro Lignes("2:2").Sélectionnez la sélection.Supprimez Shift:=xlUp Range("A1").Sélectionnez avec sélection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatique.Color = 65535 .TintAndShade = 0 .PatternTintAndShade = 0 Fin avec fin sous

' est un symbole de commentaire, c'est-à-dire cette ligne n'est pas incluse dans le code. Une macro doit avoir un nom (Sub Exemple1()) et une terminaison (End Sub).

Vous pouvez lire comment créer un bouton pour une macro.

Ainsi, vous pouvez enregistrer n'importe laquelle de vos actions afin de pouvoir les répéter autant de fois que vous le souhaitez !

Vous pouvez lire comment enregistrer une macro pour tous les livres sur votre ordinateur.

Pour ce faire, utilisez le fichier Personnel.

Vous pouvez lire comment exécuter une macro par condition

Bonne chance, je suis sûr que vous trouverez cela très utile !

Partagez notre article sur vos réseaux sociaux :

Avec des tables ou d'autres objets Office, des situations surviennent souvent lorsque vous devez effectuer les mêmes actions. Cela prend non seulement du temps supplémentaire, mais est également très ennuyeux. Heureusement, il existe des macros pour résoudre ce problème.

L'environnement logiciel VBA est conçu pour créer des macros, mais vous n'avez pas besoin d'être programmeur ou d'étudier Visual Basic pour Application pour apprendre à les écrire. À cet effet, il existe des outils spécialement développés qui créent du code VBA sous votre commande, sans nécessiter de connaissances supplémentaires de votre part. Cependant, maîtriser cette langue n’est pas si difficile.

Les macros sont créées dans des applications à l'aide d'outils d'enregistrement. Dans ce cas, une certaine combinaison de touches se voit attribuer la séquence d'actions souhaitée. Ouvrez une application Office. Sélectionnez le fragment que vous allez formater.

Sélectionnez l'élément de menu « Outils » -> « Macro » -> « Démarrer l'enregistrement » (dans Office 2007 – « Affichage » -> « Macros » -> « Enregistrer une macro »). Dans la fenêtre « Enregistrer la macro » qui apparaît, définissez le nom de la nouvelle macro ; par défaut c'est « Macro1 », mais il vaut mieux lui donner un nom, surtout s'il y a plusieurs macros. Taille maximum champs de nom – 255 caractères, les points et les espaces ne sont pas autorisés.

Décidez du choix du bouton ou de la combinaison de touches que votre macro utilisera à l'avenir. Essayez de choisir l'option la plus pratique, surtout si elle est destinée à un usage fréquent. Sélectionnez l'élément approprié dans le champ « Attribuer une macro » : « bouton » ou « touches ».

Si vous sélectionnez « bouton », la fenêtre « Paramètres rapides » s'ouvrira. Lorsque vous sélectionnez « touches », il vous suffit de saisir la combinaison sur le clavier. Consultez « Combinaisons actuelles » pour éviter les répétitions. Cliquez sur "Attribuer".

La macro créée dans Word et PowerPoint sera valable pour tous les documents à l'avenir. Pour rendre une macro Excel disponible pour tous les documents, enregistrez-la dans le fichier personal.xls, qui s'exécute automatiquement à l'ouverture de l'application. Exécutez la commande « Fenêtre » -> « Affichage » et sélectionnez la ligne portant le nom du fichier personal.xls dans la fenêtre qui apparaît.

Entrez une description de la macro dans le champ Description. Cliquez sur OK et vous serez de retour dans votre document, mais vous pouvez maintenant voir une icône d'enregistrement sur le curseur de votre souris. Formatez le texte avec la séquence d'actions que vous souhaitez automatiser. Soyez très prudent et ne faites pas d'actions inutiles, car la macro les enregistrera toutes, ce qui affectera son temps d'exécution à l'avenir.

Exécutez la commande « Outils » -> « Macro » -> « Arrêter l'enregistrement ». Vous avez créé un objet VBA sans écrire vous-même une seule ligne de code. Cependant, si vous devez encore apporter des modifications manuellement, saisissez l'objet via la section « Macros », la commande « Modifier » ou en utilisant la combinaison de touches Alt+F8.

Peu de gens savent que la première version du populaire produit Microsoft Excel est apparue en 1985. Depuis lors, il a subi plusieurs modifications et est très demandé par des millions d'utilisateurs à travers le monde. Dans le même temps, de nombreuses personnes ne travaillent qu’avec une petite fraction des capacités de ce tableur et ne réalisent même pas à quel point la possibilité de programmer dans Excel pourrait leur faciliter la vie.

Qu'est-ce que VBA

La programmation dans Excel s'effectue à l'aide du langage de programmation Visual Basic for Application, initialement intégré au tableur le plus célèbre de Microsoft.

Les experts attribuent sa relative facilité d’apprentissage à ses avantages. Comme le montre la pratique, même les utilisateurs qui n'ont pas de compétences professionnelles en programmation peuvent maîtriser les bases de VBA. Les fonctionnalités de VBA incluent l'exécution de scripts dans un environnement d'application bureautique.

L'inconvénient du programme réside dans les problèmes liés à la compatibilité des différentes versions. Ils sont dus au fait que le code du programme VBA accède à Fonctionnalité, qui sont présents dans nouvelle version produit, mais manquant dans l'ancien. En outre, les inconvénients incluent la trop grande ouverture du code aux modifications apportées par un étranger. Néanmoins Microsoft Office, ainsi qu'IBM Lotus Symphony, permettent à l'utilisateur de crypter le code initial et de définir un mot de passe pour l'afficher.

Objets, collections, propriétés et méthodes

Ce sont les concepts qui doivent être compris par ceux qui vont travailler dans l’environnement VBA. Tout d’abord, vous devez comprendre ce qu’est un objet. Dans Excel, ces fonctions sont feuille, classeur, cellule et plage. Ces objets ont une hiérarchie particulière, c'est-à-dire obéissez-vous les uns aux autres.

Le principal est Application, qui correspond au Programme Excel. Viennent ensuite les classeurs, les feuilles de calcul et la plage. Par exemple, pour accéder à la cellule A1 d'une feuille de calcul spécifique, vous devez spécifier un chemin qui prend en compte la hiérarchie.

Quant au concept de « collection », il s’agit d’un groupe d’objets de la même classe, qui dans l’entrée a la forme ChartObjects. Ses éléments individuels sont également des objets.

Le concept suivant concerne les propriétés. Ils constituent une caractéristique nécessaire de tout objet. Par exemple, pour Range, il s'agit d'une valeur ou d'une formule.

Les méthodes sont des commandes qui indiquent ce qui doit être fait. Lors de l'écriture de code en VBA, ils doivent être séparés de l'objet par un point. Par exemple, comme nous le montrerons plus tard, très souvent lors de la programmation dans Excel, la commande Cells(1,1).Select est utilisée. Cela signifie que vous devez sélectionner une cellule avec des coordonnées

Selection.ClearContents est souvent utilisé avec lui. Exécuter cela signifie effacer le contenu de la cellule sélectionnée.

Comment commencer

Ensuite, vous devez vous rendre sur l'application VB, pour laquelle il vous suffit d'utiliser la combinaison de touches « Alt » et « F11 ». Plus loin:

  • dans la barre de menu située en haut de la fenêtre, cliquez sur l'icône à côté de l'icône Excel ;
  • sélectionnez la commande Mudule ;
  • enregistrez en cliquant sur l'icône avec l'image ;
  • ils écrivent, disons, une ébauche du code.

Cela ressemble à ceci :

Sous-programme()

"Notre code

Veuillez noter que la ligne "Notre code" sera surlignée dans une couleur différente (vert). La raison est l'apostrophe placée en début de ligne, qui indique qu'un commentaire suit.

Vous pouvez désormais écrire n'importe quel code et créer un nouvel outil pour vous-même dans VBA-Excel(voir exemples de programmes ci-dessous). Bien entendu, cela sera beaucoup plus simple pour ceux qui connaissent les bases de Visual Basic. Cependant, même ceux qui n’en disposent pas peuvent s’y habituer assez rapidement s’ils le souhaitent.

Macros dans Excel

Ce nom cache les programmes écrits en Visual Basic pour Application. Ainsi, programmer dans Excel consiste à créer des macros avec le code requis. Grâce à cette fonctionnalité, le tableur Microsoft se développe, s'adaptant aux exigences d'un utilisateur spécifique. Après avoir compris comment créer des modules pour écrire des macros, vous pouvez commencer à envisager exemples spécifiques Programmes VBA Excel. Il est préférable de commencer par les codes les plus basiques.

Exemple 1

Tâche : écrire un programme qui copiera la valeur du contenu d'une cellule puis l'écrira dans une autre.

Pour ça:

  • ouvrez l'onglet « Affichage » ;
  • allez sur l'icône « Macros » ;
  • cliquez sur « Enregistrer la macro » ;
  • remplissez le formulaire qui s'ouvre.

Pour plus de simplicité, laissez « Macro1 » dans le champ « Nom de la macro », et insérez par exemple hh dans le champ « Raccourci clavier » (cela signifie que vous pouvez lancer le programme avec la commande rapide « Ctrl+h »). Appuyez sur Entrée.

Maintenant que l'enregistrement de la macro a déjà commencé, le contenu d'une cellule est copié dans une autre. Revenez à l'icône d'origine. Cliquez sur « Enregistrer une macro ». Cette action signifie la fin du programme.

  • revenez à la ligne « Macros » ;
  • sélectionnez « Macro 1 » dans la liste ;
  • cliquez sur « Exécuter » (la même action est lancée en lançant la combinaison de touches « Ctrl+hh »).

En conséquence, l'action effectuée lors de l'enregistrement de la macro se produit.

Il est logique de voir à quoi ressemble le code. Pour cela, retournez sur la ligne « Macros » et cliquez sur « Modifier » ou « Connexion ». Du coup, ils se retrouvent dans l’environnement VBA. En fait, le code de la macro lui-même se trouve entre les lignes Sub Macro1() et End Sub.

Si la copie a été effectuée, par exemple, de la cellule A1 vers la cellule C1, alors l'une des lignes de code ressemblera à Range("C1").Select. Traduit, cela ressemble à « Range(« C1 »).Select », en d’autres termes, cela va dans VBA Excel, dans la cellule C1.

La partie active du code est complétée par la commande ActiveSheet.Paste. Cela signifie écrire le contenu de la cellule sélectionnée (dans ce cas A1) dans la cellule sélectionnée C1.

Exemple 2

Les boucles VBA vous aident à créer diverses macros dans Excel.

Les boucles VBA vous aident à créer diverses macros. Supposons que nous ayons une fonction y=x + x 2 + 3x 3 - cos(x). Vous devez créer une macro pour obtenir son graphique. Cela ne peut être fait qu'à l'aide de boucles VBA.

Les valeurs initiales et finales de l'argument de la fonction sont x1=0 et x2=10. De plus, vous devez saisir une constante - la valeur de l'étape de changement d'argument et la valeur initiale du compteur.

Tous les exemples de macros VBA Excel sont créés en utilisant la même procédure que celle présentée ci-dessus. Dans ce cas particulier, le code ressemble à :

Sous-programme()

pas = 0,1

Faire pendant x1< x2 (цикл будет выполняться пока верно выражение x1 < x2)

y=x1 + x1^2 + 3*x1^3 - Cos(x1)

Cells(i, 1).Value = x1 (la valeur x1 est écrite dans la cellule avec les coordonnées (i,1))

Cells(i, 2).Value = y (la valeur y est écrite dans la cellule avec les coordonnées (i,2))

i = i + 1 (le compteur est en vigueur) ;

x1 = x1 + shag (l'argument change en fonction de la valeur du pas) ;

Fin du sous-marin.

Suite à l'exécution de cette macro dans Excel, nous obtenons deux colonnes, dont la première contient les valeurs de x et la seconde de y.

Ensuite, un graphique est construit à partir d'eux de manière standard pour Excel.

Exemple 3

Pour implémenter des boucles dans VBA Excel 2010, comme dans d'autres versions, en plus de la construction Do While déjà donnée, For est utilisé.

Considérons un programme qui créera une colonne. Dans chacune de ses cellules seront écrits les carrés du numéro de ligne correspondant. L'utilisation de la construction For vous permettra de l'écrire très brièvement, sans utiliser de compteur.

Vous devez d’abord créer une macro comme décrit ci-dessus. Ensuite, nous écrivons le code lui-même. Nous supposons que nous nous intéressons aux valeurs de 10 cellules. Le code ressemble à ceci.

Pour i = 1 à 10 Suivant

La commande est traduite en langage « humain » par « Répéter de 1 à 10 par pas de un ».

Si la tâche consiste à obtenir une colonne avec des carrés, par exemple, de tous les nombres impairs compris entre 1 et 11, alors nous écrivons :

Pour i = 1 à 10 étape 1 Suivant.

Ici, une étape est une étape. Dans ce cas, il est égal à deux. Par défaut, l'absence de ce mot dans le cycle signifie que l'étape est unique.

Les résultats obtenus doivent être sauvegardés dans des cellules numérotées (i,1). Ensuite, chaque fois que la boucle est démarrée, avec i augmentant d'un pas, le numéro de ligne augmentera automatiquement. De cette façon, le code sera optimisé.

Globalement, le code ressemblera à :

Sous-programme()

Pour i = 1 à 10 Étape 1 (vous pouvez simplement écrire Pour i = 1 à 10)

Cellules(i, 1).Value = i ^ 2 (c'est-à-dire que la valeur du carré i est écrite dans la cellule (i,1)

Suivant (joue en un sens le rôle d'un compteur et signifie un autre début de boucle)

Fin du sous-marin.

Si tout est fait correctement, y compris l'enregistrement et l'exécution de la macro (voir les instructions ci-dessus), alors lorsque vous l'appelez, vous obtiendrez à chaque fois une colonne de la taille spécifiée (dans ce cas, composée de 10 cellules).

Exemple 4

DANS Vie courante Très souvent, il est nécessaire de prendre une décision ou une autre en fonction de certaines conditions. Vous ne pouvez pas vous en passer dans VBA Excel. Des exemples de programmes où le déroulement ultérieur de l'exécution de l'algorithme est choisi et non prédéterminé initialement, utilisent le plus souvent la construction If ... Then (pour les cas complexes) If ... Then ... END If.

Considérons un cas précis. Supposons que vous deviez créer une macro pour Excel afin que ce qui suit soit écrit dans la cellule avec les coordonnées (1,1) :

1 si l'argument est positif ;

0 si l'argument est nul ;

-1 si l'argument est négatif.

La création d'une telle macro pour Excel commence de manière standard, grâce à l'utilisation des raccourcis clavier Alt et F11. Ensuite le code suivant est écrit :

Sous-programme()

x= Cells(1, 1).Value (cette commande attribue à x la valeur du contenu de la cellule aux coordonnées (1, 1))

Si x>0 Alors Cellules(1, 1).Valeur = 1

Si x=0 Alors Cellules(1, 1).Valeur = 0

Si x<0 Then Cells(1, 1).Value = -1

Fin du sous-marin.

Il ne reste plus qu'à exécuter la macro et à obtenir la valeur requise pour l'argument dans Excel.

Fonctions VBA

Comme vous l'avez peut-être déjà remarqué, programmer dans le tableur le plus célèbre de Microsoft n'est pas si difficile. Surtout si vous apprenez à utiliser les fonctions VBA. Au total, ce langage de programmation, créé spécifiquement pour écrire des applications dans Excel et Word, possède environ 160 fonctions. Ils peuvent être divisés en plusieurs grands groupes. Ce:

  • Fonctions mathématiques. En les appliquant à l'argument, ils obtiennent la valeur du cosinus, du logarithme naturel, de la partie entière, etc.
  • Fonctions financières. Grâce à leur disponibilité et grâce à la programmation sous Excel, vous pouvez obtenir des outils efficaces pour les calculs comptables et financiers.
  • Fonctions de traitement de tableaux. Ceux-ci incluent Array, IsArray ; LBound ; ULié.
  • Fonctions Excel VBA pour chaîne. Il s'agit d'un groupe assez important. Cela inclut, par exemple, les fonctions Space pour créer une chaîne avec un nombre d'espaces égal à l'argument entier, ou Asc pour convertir des caractères en code ANSI. Tous sont largement utilisés et vous permettent de travailler avec des lignes dans Excel, créant ainsi des applications qui facilitent grandement le travail avec ces tableaux.
  • Fonctions de conversion de type de données. Par exemple, CVar renvoie la valeur de l'argument Expression en le convertissant en type de données Variant.
  • Fonctions pour travailler avec des dates. Ils élargissent considérablement les standards. Ainsi, la fonction WeekdayName renvoie le nom (complet ou partiel) du jour de la semaine par son numéro. Timer est encore plus utile. Il donne le nombre de secondes écoulées entre minuit et un moment précis de la journée.
  • Fonctions pour convertir un argument numérique en différents systèmes numériques. Par exemple, Oct génère des nombres en octal.
  • Fonctions de formatage. Le plus important d'entre eux est le format. Il renvoie une valeur Variant avec une expression formatée selon les instructions spécifiées dans la déclaration de format.
  • etc.

L'étude des propriétés de ces fonctions et de leur application élargira considérablement la portée d'Excel.

Exemple 5

Essayons de passer à la résolution de problèmes plus complexes. Par exemple:

Un document papier rendant compte du niveau réel des coûts de l'entreprise est remis. Requis:

  • développer sa partie modèle à l'aide du tableur Excel ;
  • créez un programme VBA qui demandera les données initiales pour le remplir, effectuera les calculs nécessaires et remplira les cellules du modèle correspondant avec elles.

Considérons l'une des options de solution.

Créer un modèle

Toutes les actions sont réalisées sur une feuille standard sous Excel. Des cellules libres sont réservées à la saisie des données sur le nom de l'entreprise consommatrice, le montant des coûts, leur niveau et leur chiffre d'affaires. Le nombre d'entreprises (sociétés) pour lesquelles le rapport est établi n'est pas fixe, les cellules de saisie des valeurs en fonction des résultats et du nom du spécialiste ne sont pas réservées à l'avance. La feuille de calcul reçoit un nouveau nom. Par exemple, « rapports ».

Variables

Pour écrire un programme permettant de remplir automatiquement un modèle, vous devez sélectionner des notations. Ceux-ci seront utilisés pour les variables :

  • NN - numéro de la ligne actuelle du tableau ;
  • TP et TF - chiffre d'affaires commercial prévu et réel ;
  • SF et SP - montant des coûts réels et prévus ;
  • IP et IF - niveau de coûts prévu et réel.

Notons l'accumulation du total pour cette colonne en utilisant les mêmes lettres, mais avec le « préfixe » Itog. Par exemple, ItogTP - fait référence à la colonne du tableau intitulée « chiffre d'affaires prévu ».

Résoudre un problème en utilisant la programmation VBA

En utilisant les notations introduites, nous obtenons des formules d'écarts. Si vous devez calculer en %, nous avons (F - P) / P * 100, et au total - (F - P).

Il est préférable de saisir les résultats de ces calculs directement dans les cellules appropriées d'une feuille de calcul Excel.

Pour les totaux réels et prévisionnels, ils sont obtenus à l'aide des formules ItogP=ItogP + P et ItogF=ItogF+ F.

Pour les écarts utiliser = (ItogF - ItogP) / ItogP * 100 si le calcul est effectué en pourcentage, et dans le cas d'une valeur totale - (ItogF - ItogP).

Les résultats sont à nouveau immédiatement écrits dans les cellules appropriées, il n'est donc pas nécessaire de les affecter à des variables.

Avant d'exécuter le programme créé, vous devez enregistrer le classeur, par exemple sous le nom "Report1.xls".

Il suffit d'appuyer une seule fois sur le bouton « Créer un tableau de rapport » après avoir saisi les informations d'en-tête. Il y a d'autres règles que vous devriez connaître. En particulier, il faut cliquer sur le bouton « Ajouter une ligne » à chaque fois après avoir saisi les valeurs de chaque type d'activité dans le tableau. Après avoir saisi toutes les données, vous devez cliquer sur le bouton « Terminer », puis passer à la fenêtre Excel.

Vous savez maintenant comment résoudre les problèmes d'Excel à l'aide de macros. La possibilité d'utiliser VBA Excel (voir les exemples de programmes ci-dessus) peut également être nécessaire pour travailler dans l'éditeur de texte le plus populaire du moment, Word. Vous pouvez notamment créer des boutons de menu en écrivant, comme indiqué au tout début de l'article, ou en écrivant du code, grâce auquel de nombreuses opérations sur le texte peuvent être effectuées en appuyant sur les touches de service ou via l'onglet « Affichage » et l'icône « Macros ».




Haut