Les syntaxes de base par "Les fiches VBA" sont une série de petits tutoriels ra
Les syntaxes de base par "Les fiches VBA" sont une série de petits tutoriels rapides regroupant les informations utiles sur un sujet donné. Elles concernent le langage VBA dans son ensemble et ne sont pas spécifiques à un logiciel donné. Vous y trouverez donc des informations valables pour Access, Excel, Word, Outlook, PowerPoint, ... Bonne lecture ! Les syntaxes de base par - 2 - Copyright ® 2010 Maxence HUBICHE. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD. http://mhubiche.developpez.com/vba/fiches/syntaxes/bases/ I - Qu'abordons-nous ici ?........................................................................................................................................... 3 II - Les syntaxes fondamentales................................................................................................................................. 4 II-A - Les parenthèses............................................................................................................................................4 II-A-1 - La règle à pratiquer..............................................................................................................................4 II-A-2 - Les explications....................................................................................................................................4 II-A-3 - Cas particuliers.....................................................................................................................................5 II-A-3-a - Le passage par Valeur.................................................................................................................5 II-A-3-b - Le mot-clé "Call".......................................................................................................................... 6 II-B - Le symbole égal (=)......................................................................................................................................6 II-B-1 - La règle.................................................................................................................................................6 II-B-2 - Les explications....................................................................................................................................6 II-C - Les propriétés............................................................................................................................................... 7 II-C-1 - La règle................................................................................................................................................ 7 II-C-2 - Les explications....................................................................................................................................8 II-D - Les méthodes............................................................................................................................................... 9 II-D-1 - La règle................................................................................................................................................ 9 II-D-2 - Les explications....................................................................................................................................9 II-E - Les instructions et fonctions....................................................................................................................... 11 II-E-1 - La règle...............................................................................................................................................11 II-E-2 - Les explications..................................................................................................................................11 III - Remerciements................................................................................................................................................... 12 Les syntaxes de base par - 3 - Copyright ® 2010 Maxence HUBICHE. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD. http://mhubiche.developpez.com/vba/fiches/syntaxes/bases/ I - Qu'abordons-nous ici ? L'objet spécifique de cette fiche est de recenser, et d'expliquer, les syntaxes de base du langage VBA. Ce qu'il est d'ores et déjà intéressant de noter, c'est que le VBA (Visual Basic for Application) est un langage 'Basic', donc simple ! Le nombre de syntaxes fondamentales du langage est donc limité (5) et leur bonne connaissance sera susceptible de vous éviter bien des soucis dues aux erreurs de syntaxes. Les syntaxes de base par - 4 - Copyright ® 2010 Maxence HUBICHE. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD. http://mhubiche.developpez.com/vba/fiches/syntaxes/bases/ II - Les syntaxes fondamentales II-A - Les parenthèses II-A-1 - La règle à pratiquer Dans le langage VBA, on n'utilise les parenthèses QUE lorsqu'on espère obtenir un résultat (valeur ou objet) qu'on souhaite réutiliser ultérieurement II-A-2 - Les explications Cette règle de syntaxe, si elle est respectée, permettra de mieux comprendre le code. Par exemple, pour commencer simplement, nous pourrions aborder la simple syntaxe de la fonction MsgBox. En voici la syntaxe : MsgBox(prompt[, buttons] [, title] [, helpfile, context]) On notera les points suivants : • La syntaxe mentionne la présence de parenthèses • La page d'aide indique qu'il s'agit d'une fonction Pourtant, l'application stricte de la syntaxe ne fonctionne pas ! Vous pouvez essayer en écrivant le texte suivant : Sub CaMarchePas() MsgBox ("Ceci est un essai",vbOKOnly+vbQuestion,"Syntaxe") End Sub La validation met la ligne en rouge, et, pour peu que vous ayez coché la case d'arrêt sur toutes les erreurs (dans les options), un beau message d'erreur apparaît. Par contre, si vous n'aviez pas mis les parenthèses, le même code fonctionnerait parfaitement, et pourrait être exécuté ! Sub CaMarche() MsgBox "Ceci est un essai", vbOKOnly + vbQuestion, "Syntaxe" End Sub Cherchons à comprendre pourquoi... Dans le premier cas, nous avons fait usage des parenthèses. Nous indiquions par cela, à l'interpréteur VBA, que nous souhaitions récupérer le résultat de la fonction MsgBox (qui, je le rappelle, est prévue, en tant que FONCTION, pour renvoyer un résultat). Mais nous avons oublié un détail d'importance ! Qu'allons nous faire de ce résultat ? Nulle part n'est indiqué l'endroit où nous allons le mettre, ce résultat. Si nous avions un tant soit peut modifié la ligne, comme ceci, par exemple : Sub CaPeutMarcher() n= MsgBox("Ceci est un essai",vbOKOnly+vbQuestion,"Syntaxe") End Sub Les syntaxes de base par - 5 - Copyright ® 2010 Maxence HUBICHE. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD. http://mhubiche.developpez.com/vba/fiches/syntaxes/bases/ alors là, oui, la syntaxe aurait marché, parce que nous indiquions que nous voulions récupérer le résultat dans la variable n. D'ailleurs, si vous exécutez cette procédure en mode débogage (F8) vous pourrez vérifier que n récupère bien une valeur numérique en fonction du bouton sur lequel vous aurez cliqué. Voilà pourquoi la syntaxe CaMarche fonctionne : Nous ne demandons pas la récupération d'un résultat à l'interpréteur VBA, et, par là même, nous n'avons pas besoin de le stocker nulle part. II-A-3 - Cas particuliers II-A-3-a - Le passage par Valeur Certains objecteront que ma règle n'est pas vraie, car, le code suivant fonctionne : Sub CaAussiCaMarche() MsgBox ("Ceci est un essai") End Sub On notera la mauvaise foi de ceux qui avancent ce propos, car ils n'ont mis qu'un seul argument, alors que dans les exemples que j'ai cité, il y en avait 3. déjà, rien que cela devrait nous mettre en éveil. Pourquoi, lorsqu'il n'y a qu'un seul argument, l'usage des parenthèses n'est pas contre-indiqué ? Livrons-nous à un petit test... saisissez le code suivant dans un module Sub proc_Un() '### Procédure initiale Dim a As Long 'déclare la variable a comme nombre entier long a = 2 'affecte 2 à la variable a proc_Deux a 'passe a à la procédure proc_Deux MsgBox a 'Affiche a End Sub Sub proc_Deux(arg) '### Procédure appelées arg = arg * 2 'multiplie l'argument par 2 et modifie sa valeur End Sub D'après vous, que vous renverra la fonction MsgBox ? Bien répondu ! vous verrez apparaître un beau "4" Modifions maintenant un tout petit peu la procédure. C'est très léger... ajoutons des parenthèses autour du a, lors de l'appel de la proc_Deux, comme suit : Sub proc_Un() '### Procédure initiale Dim a As Long 'déclare la variable a comme nombre entier long a = 2 'affecte 2 à la variable a proc_Deux (a) 'passe a à la procédure proc_Deux MsgBox a 'Affiche a End Sub Sub proc_Deux(arg) '### Procédure appelées arg = arg * 2 'multiplie l'argument par 2 et modifie sa valeur End Sub Et maintenant ? Que voyez-vous ? Un beau "2" ! Pourquoi ? Les syntaxes de base par - 6 - Copyright ® 2010 Maxence HUBICHE. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD. http://mhubiche.developpez.com/vba/fiches/syntaxes/bases/ Parce qu'en utilisant des parenthèses autour d'un seul argument, sans demander de retourner le résultat, l'interpréteur a compris que vous passiez l'argument par VALEUR et non par REFERENCES (mais ceci fera l'objet d'une autre fiche) Ceci nous indique donc qu'il est préférable de ne garder que la règle décrite au démarrage : n'utiliser les parenthèses que lorsqu'on souhaite obtenir un résultat qu'on exploitera ultérieurement II-A-3-b - Le mot-clé "Call" Le mot clé Call est un mot clé facultatif, comme vous le verrez dans la cinquième syntaxe de base du présent document. Cependant, parfois, certains programmeurs utilisent ce mot clé pour appeler, transférer le contrôle, à une autre procédure. Cette procédure peut être une procédure Sub ou une procédure Function. Mais, dans tous les cas, elle ne peut renvoyer de résultat. Du coup, on se demande quel est vraiment son usage pour les fonctions... Et puisqu'une instruction (sub) est une fonction (function) qui ne renvoie pas de résultat, on peut se demander quel en est son usage également pour les instructions. Quoi qu'il en soit, la syntaxe de Call est simple : Call NomDeLaProcedure [ (ListeDesArguments) ] On notera ici que les arguments - entre parenthèses, toujours - sont facultatifs. Par contre, ici, on mettra systématiquement les parenthèses, car nous sommes en présence d'une instruction qui appelle une autre instruction, et non pas une valeur ou un objet. Il est donc indispensable de "délimiter" la procédure, et cette délimitation se fera par l'usage des prenthèses. En voici un exemple : Sub proc_Un() Dim a As Long 'déclare la variable a comme nombre entier long a = 2 'affecte 2 à la variable a Call proc_Deux(a) 'transfère le contrôle à la procédure proc_Deux, uploads/s1/ fiches-vba-syntaxes.pdf
Documents similaires
-
31
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 27, 2022
- Catégorie Administration
- Langue French
- Taille du fichier 0.1984MB