Détails
Comment renvoyer un résultat à partir d'une fonction VBA ?
Comment retourner un résultat à partir d'une fonction ?
Par exemple :
Public Function test() As Integer
return 1
End Function
Cela donne une erreur de compilation.
Comment faire pour que cette fonction renvoie un nombre entier ?
254
3
Pour les types de retour non-objets, vous devez affecter la valeur au nom de votre fonction, comme ceci :
Exemple d'utilisation :
Si la fonction renvoie un type d'objet, vous devez utiliser le mot-clé
Set
comme ceci :Exemple d'utilisation :
Notez que l'attribution d'une valeur de retour au nom de la fonction ne met pas fin à l'exécution de votre fonction. Si vous voulez quitter la fonction, vous devez dire explicitement
Exit Function
. Par exemple :Documentation : http://msdn.microsoft.com/en-us/library/office/gg264233%28v=office.14%29.aspx
Les fonctions VBA traitent le nom de la fonction elle-même comme une sorte de variable. Ainsi, au lieu d'utiliser une instruction "return", vous pouvez simplement dire :
Notez cependant que cela ne permet pas de sortir de la fonction. Tout code suivant cette instruction sera également exécuté. Ainsi, vous pouvez avoir de nombreuses instructions d'affectation qui assignent différentes valeurs à
test
, et quelle que soit la valeur lorsque vous atteignez la fin de la fonction, ce sera la valeur retournée.Mettre la valeur de retour au nom de la fonction n'est toujours pas exactement la même chose que l'instruction
return
de Java (ou autre), car en Java,return
quitte la fonction, comme ceci :En VB, l'équivalent exact prend deux lignes si vous ne définissez pas la valeur de retour à la fin de votre fonction. Donc, en VB, le corollaire exact ressemblerait à ceci :
Puisque c'est le cas, il est également bon de savoir que vous pouvez utiliser la variable de retour comme toute autre variable de la méthode. Comme ceci :