Guide d`adaptation de Maple à VBA
Transcription
Guide d`adaptation de Maple à VBA
Guide d’adaptation de Maple à VBA Général : On utilise le : uniquement si plusieurs instructions sur la même ligne (jamais de ;) Affectation avec = et non pas avec := Les mots clé VBA commence par une majuscule L’équivalent des listes en VBA sont les tableaux. Leur nature et utilisation sont très différentes des listes Maple (voir 2e partie du programme) Les types Maple VBA integer / posint Byte ou Integer ou Long Single ou Double Array Variant numeric / float list anything Interaction avec l’utilisateur Maple VBA print("bravo") : n:= readstat("Votre nombre ?") : MsgBox "bravo" n = InputBox("Votre nombre ?") Branchements et boucles Maple VBA if x>0 then / else / fi elif x> -5 then v := `if`(x>0, “bien”, “mal”): for 1 from 1 to 10 by 2 do while x>0 do / od break / If x>0 Then / Else / End If Else If x> -5 Then v := Iif(x>0, “bien”, “mal”): od For i=1 To 10 Step 2 / Next i Do While x>0 / Loop Exit For ou Exit Do (suivant la boucle) Procédures, fonctions et programmes En Maple, les instructions étaient soit directement exécutées (dans un programme) soit inclus dans une proc (pour créer des fonctions et procédures) qui étaient ensuite exécutées lors de l’appel (avec nomDeFonction(paramètres) ). En VBA, on ne peut pas exécuter des instructions directement. Chaque instruction doit donc être intégrée à une Function (fonction, quand on souhaite retourner une valeur) ou à une Sub (procédure, sans valeur retournée). Appels Les appels de fonctions sont identique à Maple : nomDeFonction(paramètres) qui sera remplacé par la valeur retournée par la fonction. Par contre, lors des appels de procédures Sub, on supprime les parenthèses. Un appel sera: nomDeProcedure paramètres Fiche "Guide d'adaptation de Maple à VBA" page 1/2 www.infodauphine.com n°1 du Soutien en Info à Dauphine Paramètres Pour indiquer le type de paramètre, on utilise le mot clé As à la place du :: Maple. On utilise aussi les mots clé ByVal (pour indiquer un passage par valeur, qui était implicite en Maple si on n’utilisait pas les name) et ByRef (qui remplace le ::name pour permettre un passage par adresse) Valeur retournée des fonctions. Il n’y a pas d’instructions Return en VBA. A la place, on utilise le nom de la fonction comme variable implicite qui va stocker la valeur qui sera retournée au final par la fonction à la fin de celle-ci. Pour stopper la fonction et retourner à l’appel (ce que faisait aussi le Return Maple), on utilise Exit Function ou Exit Sub. Enfin, on indique pour chaque fonction le type de valeur qu’elle doit retourner avec As Variables locales Toutes les variables locales doivent être déclarées avec l’instruction Dim à l’intérieur de la Sub/Function (au lieu d’écrire local listeDesVariables). Les variables globales ne sont pas déclarées dans les Sub/Function, mais au début d’un module (en utilisant public maVar as monType ou dim maVar as monType pour une variable publique de module). Comparatif Fonctions et Procédures Maple VBA maFonction := proc(x ::integer, t :: string) local r, d : if x<0 then RETURN(0): fi : ... RETURN(d) : end : Function maFonction(x As integer, t As string) As Integer Dim r As Integer, d As Integer If x<0 Then maFonction=0 Exit Function End If … maFonction=d End Function Public ventes As Integer maProcedure := proc(x::integer, r::name, t::name) global ventes: local nb: if x<0 then RETURN( ): fi: … end: Sub maProcedure(ByVal x As Integer, ByRef r As Integer, ByRef t As String) Dim nb as Integer: If x<0 then Exit Sub End If … End Sub Appels Appels v := maFonction(5, "toto"): maProcedure( 5 , 'posi', 'res'): v = maFonction(5, "toto") maProcedure 5 , posi, res Fiche "Guide d'adaptation de Maple à VBA" page 2/2 www.infodauphine.com n°1 du Soutien en Info à Dauphine