| Les arguments d'une fonction ou d'une procédure peuvent être passés de deux façons différentes : par valeur ou par référence.
Si un argument est précédé de Byval, il est passé par valeur, et s'il est précédé de ByRef, ou de ni l'un ni l'autre, il est passé par référence. Passage par valeur (ByVal) Consiste à passer la valeur de l'argument à la procédure, et non son adresse.
La procédure utilise alors une copie de la variable. La valeur de la variable ne peut pas être modifiée par la procédure. Passage par référence (ByRef) Ici c'est l'adresse de la variable qui est passée à la procédure. La variable peut donc être modifiée par la procédure. Private Sub Echange(ByVal a As Integer, ByVal b As Integer)
Dim temp As Integer
temp = a
a = b
b = temp
End Sub
Private Sub Echange2(a As Integer, b As Integer)
Dim temp As Integer
temp = a
a = b
b = temp
End Sub
Private Sub Test()
x = 5
y = 3
Echange x, y
MsgBox x & " " & y
Echange2 x, y
MsgBox x & " " & y
End Sub |
| Le saut de ligne est représenté par la constante vbCrLf. Exemple pour afficher un message sur 2 lignes avec MsgBox : MsgBox "Opération terminée." & vbCrLf & "Cliquez sur OK." |
| Pour convertir une expression en date, vous pouvez utiliser la fonction CDate(expression). Si l'expression à
convertir n'est pas une date correcte d'après le format indiqué dans les paramètres régionaux de Windows, CDate essaie d'utiliser
un autre format. Si la fonction ne reussit pas à faire la conversion, elle génère une erreur de type "Type Mismatch".
Dans l'exemple ci-dessous, une date est demandée à l'utilisateur. Sa réponse est alors convertie en date. Dim Rep As String, DateDeNaissance As Date
Do
Rep = InputBox("Quelle est votre date de naissance ?")
Loop While (Not IsDate(Rep))
DateDeNaissance = CDate(Rep) |
| Pour qu'une fonction, procédure, ou variable soit accessible à partir d'un autre module que celui où elle est déclarée,
sa déclaration doit débuter par le mot clé Public. Voici les déclarations d'une variable de type long et d'une procédure publiques
dans la form nommée Form1 : Public Variable As Long
Public Sub Afficher()
End Sub Et voici comment les appeler depuis un autre module : Form1.Variable = 3
Form1.Afficher |
| Un paramètre est optionnel s'il est précédé du mot clé Optional. Les paramètres placés après doivent être également
optionnels. Vous pouvez également spécifier une valeur par défaut : Private Sub Affiche(Optional x As Long=10)
End Sub Pour les paramètres de type Variant et sans valeur par défaut, vous avez le moyen de savoir si une valeur a été
spécifiée lors de l'appel en utilisant IsMissing : Private Sub Affiche(Optional x As Variant)
If IsMissing(x) Then
Else
End If
End Sub |
| L'exemple suivant affiche les éléments d'un tableau : Private Sub AfficheElements(t() As Long)
Dim i As Long
For i = LBound(t) To UBound(t)
MsgBox t(i)
Next
End Sub
Private Sub Form_Load()
Dim t(1 To 3) As Long
t(1) = 1
t(2) = 4
t(3) = 5
AfficheElements t()
End Sub |
| La fonction suivante renvoie un booléen : Vrai si le nombre reçu en paramètre est pair, et faux sinon. Private Function EstPaire(x As Long) As Boolean
EstPaire = (x Mod 2 = 0)
End Function |
| Instr(p,ch1,ch2) recherche la chaîne ch2 dans ch1 à partir de la position p. Si ch2 est trouvée, la valeur renvoyée est la
position de son premier caractère dans ch1, sinon la fonction renvoie 0. pos = InStr(4, "Nous sommes au mois de Juillet.", "Juillet")
pos = InStr(27, "Nous sommes au mois de Juillet.", "Juillet") |
| Elle vous est renvoyée par la fonction Command() sous la forme d'une chaîne de caractères. Pour transformer cette chaîne en un tableau dont chaque élèment correspond à un argument, utilisez la fonction Split() : Dim args() As String
args = Split(Command(), " ") |
| Vous pouvez utiliser la fonction DateAdd (intervalle, nombre, date) intervalle : chaîne de caractères indiquant l'intervalle de temps que vous voulez ajouter ("m" : mois, "d" : jour, "yyyy" : année, etc...)
nombre : nombre d'intervalles que vous voulez ajouter valeur renvoyée : une date contenant le résultat (la date passée en argument n'est pas modifiée) Quelques exemples : today = Now()
DateAdd("m", 3, today)
DateAdd("d", 2, today)
DateAdd("ww", 1, today)
DateAdd("h", 1, today) |
Ce document issu de http://www.developpez.com est soumis à la licence GNU FDL traduit en français ici.
Permission vous est donnée de distribuer, modifier des copies de cette page tant que cette note apparaît clairement.
|