Charger un ordinateur de certaines tâches : écriture de votre première procédure

Mise à jour : novembre 2007

Dans cette leçon, vous allez apprendre à créer une procédure, un bloc de code autonome pouvant être exécuté à partir d'autres blocs de code. Vous apprendrez ensuite à créer des paramètres pour vos procédures.

Une procédure correspond simplement à un bloc de code qui demande au programme d'exécuter une action. Sans vous en rendre compte, vous avez déjà utilisé des procédures dans les leçons précédentes. Par exemple, la fonction MsgBox intègre une procédure qui affiche une boîte de dialogue.

Si Visual Basic intègre de nombreuses procédures pour exécuter des actions communes, il y a toujours des cas où vous souhaitez que votre programme exécute une action qu'une procédure intégrée ne peut pas gérer. Par exemple, la fonction MsgBox ne permet pas d'afficher un boîte de dialogue dotée d'une image. Pour effectuer cette tâche, vous devez écrire votre propre procédure.

Qu'est-ce qu'une procédure ?

Une procédure est un bloc de code autonome qui peut être exécuté à partir d'autres blocs de code. En général, chaque procédure contient le code nécessaire pour accomplir une tâche. Par exemple, vous pouvez disposer d'une procédure appelée PlaySound qui contient le code nécessaire à la lecture d'un fichier son. Même si vous pouvez écrire le même code pour lire un son à chaque fois que votre programme doit en émettre un, il est plus rationnel de créer une procédure unique que vous pouvez appeler depuis n'importe quel emplacement dans votre programme.

Une procédure s'exécute en l'appelant dans un code. Par exemple, pour exécuter la procédure PlaySound, ajoutez simplement une ligne de code portant le même nom que votre procédure, comme indiqué ci-contre.

PlaySound()

Et c'est tout ! Lorsque le programme atteint cette ligne, il accède à la procédure PlaySound et exécute le code qu'il trouve à cet emplacement. Le programme revient ensuite à la ligne qui suit celle de l'appel à PlaySound.

Vous pouvez appeler autant de procédure que vous le souhaitez. Les procédures s'exécutent dans l'ordre d'appel. Par exemple, si vous disposez également d'une procédure appelée DisplayResults, pour l'exécuter après la procédure PlaySounds, appelez ces procédures comme illustré ci-contre.

PlaySounds()

DisplayResults()

Fonctions et sous-routines

Il existe deux types de procédures : les fonctions et les sous-routines. Une fonction retourne une valeur à la procédure qui l'a appelée, tandis qu'une sous-routine se contente d'exécuter un code. Les sous-routines sont appelées lorsqu'une ligne de code qui contient leurs noms est ajoutée au programme, comme dans l'exemple suivant.

DisplayResults

Les fonctions sont différentes, car non seulement elles exécutent le code, mais elles retournent également une valeur. Par exemple, imaginez une fonction appelée GetDayOfWeek qui retourne un Integer qui indique le jour de la semaine. Vous pouvez appeler cette fonction en déclarant d'abord une variable pour stocker la valeur de retour, puis en assignant la valeur retournée à la variable pour l'utiliser ultérieurement, comme illustré ci-contre.

Dim Today As Integer

Today = GetDayOfWeek

Dans cet exemple, la valeur retournée par la fonction est copiée dans la variable nommée Today, puis enregistrée à des fins d'utilisation ultérieure.

Écriture de procédures

Vous écrivez des procédures en écrivant en premier lieu une déclaration de procédure. Une déclaration de procédure a plusieurs fonctions. Elle déclare si la procédure est une fonction ou une sous-routine, nomme la procédure et détaille tous les paramètres éventuels de la procédure. Les paramètres seront détaillés ultérieurement dans cette leçon. L'exemple suivant est un exemple de déclaration de procédure simple.

Sub MyFirstSub()
End Sub

Le mot clé Sub explique au programme que cette procédure est une sous-routine et ne retournera aucune valeur. Le nom de la sous-routine (MyFirstSub) vient ensuite. Les parenthèses vides indiquent l'absence de paramètres dans cette procédure. Enfin, le mot clé End Sub indique la fin de la sous-routine. Tout le code qui sera exécuté par cette sous-routine se place entre ces deux lignes.

Déclarer des fonctions est similaire, à ceci près que vous devez spécifier le type de la valeur retournée (par exemple, Integer ou String). Par exemple, une fonction qui a retourné un Integer peut ressembler à ce qui suit.

Function MyFirstFunction() As Integer
End Function

Les mots clés As Integer indiquent que cette fonction retourne une valeur de type Integer . Pour retourner une valeur à partir d'une fonction, utilisez le mot clé Return, comme illustré dans l'exemple suivant.

Function GetTheNumberOne() As Integer
    Return 1
End Function

Cette procédure retourne le nombre 1.

Essayez !

Pour créer des procédures

  1. Dans le menu Fichier, cliquez sur Nouveau projet.

  2. Dans la boîte de dialogue Nouveau projet, dans le volet Modèles, cliquez sur Application Windows.

  3. Dans la zone Nom, tapez MyFirstProcedure, puis cliquez sur OK.

    Un nouveau projet Windows Forms s'ouvre.

  4. Double-cliquez sur le formulaire pour ouvrir l'éditeur de code.

  5. Dans l'éditeur de code, repérez la ligne End Class. Il s'agit de la fin de la section de code qui constitue le formulaire. Juste avant cette ligne, ajoutez la procédure suivante :

    Function GetTime() As String
      Return CStr(Now)
    End Function
    

    Cette fonction utilise la procédure intégrée Now pour recevoir l'heure actuelle, puis utilise la fonction CStr pour convertir la valeur retournée par Now en une String explicite. Enfin, cette valeur String est retournée en tant que résultat de la fonction.

  6. Au-dessus de la fonction ajoutée à l'étape précédente, ajoutez le Sub suivant.

    Sub DisplayTime()
      MsgBox(GetTime)
    End Sub
    

    Cette sous-routine appelle la fonction GetTime et affiche le résultat qu'elle retourne dans un message.

  7. Enfin, ajoutez une ligne au gestionnaire d'événements Form1_Load qui appelle la sous-routine DisplayTime, comme illustré ci-contre.

    DisplayTime()
    
  8. Appuyez sur F5 pour exécuter le programme.

    Lorsque le programme démarre, la procédure événementielle Form1_Load s'exécute. Cette procédure appelle la sous-routine DisplayTime ; aussi, l'exécution du programme passe directement à la sous-procédure DisplayTime. Cette sous-routine appelle à son tour la fonction GetTime ; aussi l'exécution du programme passe directement à la fonction GetTime. Cette fonction retourne un élément String qui représente l'heure à la sous-procédure DisplayTime, qui affiche alors cette chaîne dans un message. Une fois l'exécution de la sous-routine terminée, le programme reprend normalement et affiche le formulaire.

Paramètres des fonctions et des sous-routines

Vous devrez parfois fournir des informations supplémentaires à vos procédures. Par exemple, vous pouvez souhaiter jouer un son parmi plusieurs dans la procédure PlaySound. Vous pouvez fournir des informations sur le son à jouer à l'aide des paramètres.

Les paramètres ressemblent beaucoup à des variables. Ils disposent d'un type et d'un nom, et ils stockent des informations, comme les variables. Ils s'utilisent comme des variables dans une procédure. Les deux principales différences entre les paramètres et les variables sont les suivantes :

  • Les paramètres sont déclarés dans la déclaration de procédure, et non individuellement sur des lignes de code distinctes.

  • Les paramètres ne peuvent être utilisés que dans la procédure dans laquelle ils sont déclarés.

Les paramètres sont déclarés dans la déclaration de procédure, entre les parenthèses qui suivent le nom de procédure. Le mot clé As est utilisé pour déclarer le type, et chaque paramètre est généralement précédé par le mot clé ByVal. Ce mot clé est ajouté automatiquement par Visual Basic si vous ne l'ajoutez pas. Son fonctionnement est assez avancé et dépasse le cadre de cette leçon.

Un exemple de sous-routine avec ses paramètres est proposé ci-contre.

Sub PlaySound(ByVal SoundFile As String, ByVal Volume As Integer)
  My.Computer.Audio.Play(SoundFile, Volume)
End Sub

Appelez ensuite la sous-routine avec les valeurs destinées aux paramètres, comme illustré ci-contre.

PlaySound("Startup.wav", 1)

Vous pouvez également déclarer des paramètres pour les fonctions de la même manière que pour les sous-routines.

Essayez !

Pour créer une fonction possédant des paramètres

  1. Dans le menu Fichier, cliquez sur Nouveau projet.

  2. Dans la boîte de dialogue Nouveau projet, dans le volet Modèles, cliquez sur Application Windows.

  3. Dans la zone Nom, tapez parameters, puis cliquez sur OK.

    Un nouveau projet Windows Forms s'ouvre.

  4. À partir de la Boîte à outils, faites glisser deux contrôles Textbox dans le formulaire.

  5. À partir de la Boîte à outils, faites glisser un contrôle Button jusqu'au formulaire.

  6. Double-cliquez sur Button pour ouvrir l'éditeur de code.

  7. Immédiatement après la ligne End Sub du gestionnaire d'événements Button1_Click, ajoutez la procédure suivante :

    Function AddTwoNumbers(ByVal N1 As Integer, ByVal N2 As Integer) _
      As Integer
      Return N1 + N2
    End Function
    
  8. Dans la procédure Button1_Click, ajoutez le code suivant :

    Dim aNumber As Integer = CInt(Textbox1.Text)
    Dim bNumber As Integer = CInt(Textbox2.Text)
    MsgBox(AddTwoNumbers(aNumber, bNumber))
    

    Ce code déclare deux entiers et convertit le texte contenu dans les deux zones de texte en valeurs entières. Il passe alors ces valeurs à la fonction AddTwoNumbers et affiche la valeur retournée dans un message.

  9. Appuyez sur F5 pour exécuter le programme.

  10. Tapez une valeur numérique dans chaque zone de texte, puis cliquez sur le bouton. Les deux nombres sont ajoutés et le résultat s'affiche dans un message.

Étapes suivantes

Dans cette leçon, vous avez appris la différence entre des fonctions et des sous-routines, ainsi que la manière de créer chacune de ces deux procédures. Vous avez également appris comment appeler des procédures et comment créer des procédures possédant des paramètres.

Dans la leçon suivante, vous apprendrez comment utiliser l'instruction For...Next pour répéter des actions.

Leçon suivante : Configuration d'un programme pour la répétition d'actions : exécution d'une boucle avec la boucle For...Next

Voir aussi

Tâches

Comparaisons : utilisation d'expressions pour comparer des valeurs

Concepts

Procédures dans Visual Basic