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

Documents pareils