Une première fonction en Visual Basic
Introduction
Comme dans la plupart des langages de programmation, une fonction en Visual Basic est composée de quatre parties. La première partie concerne la déclaration de la fonction et de ses paramètres. La seconde partie concerne la déclaration des variables utilisées dans l’algorithme de la fonction. La troisième partie est l’algorithme de calcul de la fonction. En fin de fonction il y a le renvoi de la ou des valeurs calculées et la fermeture de la fonction.
Pour illustrer notre propos, vous allez construire une fonction simple mais qui vous sera utile pour la suite, il s’agit d’une fonction pour tester si une année est bissextile ou non.
L’éditeur Visual Basic
Les fonctions et les macros se réalisent en utilisant l’éditeur Visual Basic pour application.
-
S’il n’est pas visible, vous devez ajouter l’onglet Développeur sur le ruban. Pour ce faire, allez dans l’onglet Fichier, choisissez Options, puis personnaliser le ruban. Cliquez alors sur Développeur qui se trouve dans les onglets principaux. L’éditeur visual Basic se lance à partir de l’onglet Développeur. Il peut également être lancé par la combinaison de touches AltF11 (touches Alt et F11 utilisées simultanément).
-
Les fonctions et macros s’écrivent sur un document appelé module. Pour ajouter un module à votre fichier, il faut dans l’éditeur Visual Basic, choisir le menu Insertion puis Module.
Vous pouvez maintenant commencer à travailler.
Déclaration de la fonction
Dans un module avant même de commencer la fonction, vous allez préciser une option importante :
Option Explicit
Cette option va vous obliger à déclarer toutes les variables que vous utiliserez. Elle vous évitera bien des erreurs, principalement de frappe. Elle est valable pour l’ensemble des fonctions et macros de ce module.
Vous allez maintenant déclarer votre fonction.
Function ESTAnneeBissextile(iAnnee As Integer) As Boolean
Le premier mot, Function, est obligatoire. Il indique à Visual Basic que vous commencez la déclaration d’une fonction. Il est suivi du nom de la fonction, ici ESTAnneeBissextile. Entre les parenthèses vous indiquez les paramètres utilisés par la fonction, séparés par des virgules. Ici, vous avez besoin que d’un seul paramètre, l’année pour répondre à la question "Est-ce une année bissextile ?".
Un nom de fonction ou un nom de paramètre est libre, mais il est préférable de respecter certaines conventions. Il doit rappeler le contenu du paramètre ou le rôle de la fonction, il doit utiliser des majuscules et des minuscules et pour les paramètres il faut rappeler leur type.
Dans cet exemple, le nom du paramètre iAnnee, rappelle qu’il contiendra l’année, il commence par la lettre...
Déclaration des variables
La deuxième partie d’une fonction concerne la déclaration des variables utilisées pour les calculs. Dans cette fonction vous utiliserez une variable bReponse de type booléen, que vous initialiserez à faux.
Dim bReponse As Boolean
bReponse = False
Le mot clef Dim indique à Visual Basic que vous allez déclarer une ou des variables séparées par une virgule, il est suivi du nom de la variable du mot clef As puis du type de la variable.
Algorithme
Vous allez maintenant passer à l’algorithme de la fonction. Une visite du site Wikipedia à l’adresse suivante, http://fr.wikipedia.org/wiki/Bissextile, vous apprend qu’une année bissextile est divisible par 4, mais que les années divisibles par 100 ne sont pas bissextiles, sauf si elles sont divisibles par 400.
L’opérateur Mod
L’opérateur Mod permet de connaître le reste d’une division.
Par exemple, pour affecter le reste de la division de 2000 par 4 (soit 0) à une variable, il faut écrire :
Nom de la variable=2000 Mod 4
L’instruction clef If
Le mot clef If permet de tester une condition. Si la condition est vraie alors un certain groupe de commandes est réalisé, sinon on en réalise un autre.
Sa syntaxe la plus courante est la suivante :
If condition Then
{Commandes à réaliser quand la condition est vraie}
Else
{Commandes à réaliser quand la condition est fausse}
End if
S’il n’y a pas de code à exécuter lorsque la condition est fausse, alors la syntaxe est :
If condition Then
{Commandes à réaliser quand la condition est vraie}
End if
Il est possible d’imbriquer plusieurs If. Dans ce cas il faut être attentif à bien fermer l’ensemble des...
Fermeture de la fonction
La dernière partie de la fonction permet de renvoyer la valeur calculée et de fermer la fonction.
ESTAnneeBissextile = bReponse
End Function
La fonction prend la valeur de la variable bReponse. La formule End Function indique à Visual Basic que nous avons fini la définition de notre fonction.
Au final, le code est le suivant :
Function ESTAnneeBissextile(iAnnee As Integer) As Boolean
'//////////////////////////////////////////////////////////
' Cette fonction détermine si une année est bissextile.
' Elle retourne True (vrai ou -1) si l'année comporte 366 jours,
' False (faux ou 0) sinon.
'
' Le mode de détermination des années bissextile est expliqué sur:
' http://fr.wikipedia.org/wiki/Bissextile
'//////////////////////////////////////////////////////////
Dim bReponse As Boolean 'Valeur renvoyée
bReponse = False
If iAnnee Mod 4 = 0 Then
'//////////////////////////////////////////////////////////
'Les années divisibles par 4 sont bissextiles ...
Tester votre première fonction
Sur l’onglet Formules, dans Options de calcul, assurez-vous d’être en calcul Automatique.
Pour tester cette fonction, placez-vous sur une feuille de calcul et tapez dans la cellule A1, une année par exemple, 2015. Dans la cellule A2, appelons votre fonction :
La fonction renvoie la valeur "FAUX" :
Si en A1 vous rentrez la valeur 2016, la fonction renvoie maintenant la valeur "VRAI".