Beruflich Dokumente
Kultur Dokumente
Ressources
FAQ : http://msdn2.microsoft.com/en-us/isv/bb190540.aspx
Rfrence : http://msdn2.microsoft.com/en-us/isv/bb190540.aspx Nombreux livres Aide en ligne dExcel
Lenvironement de dvelopement
diteur
Explorateur de projet
Proprits
Espions (dbogage)
Slctioner Module
restrictions. Si la fonction doit tre excut mme si ses arguments ne changent pas il faut appeler Application.Volatile. Doit retourner un type qui Excel sait traiter.
Subroutines
Les sub ne renvoient pas de rsultat, contrairement
aux fonctions. Les sub ne peuvent pas tre appeles directement depuis les cellules de Excel. Si une sub est appele depuis une fonction qui est appele depuis une cellule, alors elle doit respecter les mmes restrictions que ces fonctions.
optionnels. Si un paramtre est optionnel tous les paramtres suivants le sont aussi. 5) Si Sub ajoutEspace(ByRef str As type Variantnb Aspeut tester que un paramtre est de String, Optional on Integer =Variant) Dim prefix ajoutEspace(ByRef str As String, Optional vnb As Sub As String lappel na pas dfinit ce paramtre avec IsMissing. prefix = Dim prefix As String Space(nb)
str = prefix &nb As Integer Dim str Debug.Print str If IsMissing(vnb) Then End Sub nb = 5 Else nb = CInt(vnb) End If
prefix = Space(nb) str = prefix & str Debug.Print str End Sub
Paramtres nomms
On peut appeler une fonction en nommant ses
paramtres.
Sub ajoutEspace(ByRef str As String, Optional nb As Integer = 5) Dim prefix As String prefix = Space(nb) str = prefix & str Debug.Print str End Sub
Par dfaut les variables nont pas besoin detre dclares, elles ont le type Variant. Il faut utiliser Option Explicit pour rendre la dclaration obligatoire.
Types
String : Chaines de caractres. Types numriques : entiers, rels en virgule flottante
(prcision simple ou double) et rels en virgule fixe (decimal). Dates : Reprsentation des dates en nombre de jours couls depuis le premier janvier 1900. Tableaux : une collection de variables dun autre type, lindexation est au choix de lutilisateur, par dfaut de 1 N. Variant : Type abritant tout autre type. Objets : Types dfinis dans des bibliothques ou par des utilisateurs.
Strings
Une chaine de caractres se dclare comme String, par
exemple :
Dim message As String
Types numriques
Entiers : Byte Integer, entier 2 octets Long, entier 4 octets Decimal : Currency
Rels virgule flotante : Single, 4 octets Double, 8 octets
Boolens et dates
Boolean, reprsente vrai ou faux. Date, reprsente une date, stocke comme nombre de
jours depuis le premier janvier 1900. Il y a un jour de dcalage avec des dates Java.
Tableaux
Un tableau (array) se dclare en ajoutant au nom dune
variable des paranthses et une dimension. On accde aux lments dun tableau par indexation. Dim t(1 To 10) As Integer Sub arrTest(j As Integer) Loption globablle Option Integer permet de fixer le Base Dim t(1 To 10) As premier indice dei chaque tableau, par dfaut les Dim As Integer tableaux commencent 1. i=1
While i <= 10 t(i) = j + I i=i+1 Wend
End Sub
Appel de Function
Une Function sappelle en plaant une liste
dexpressions entre parenthses la place de la liste des arguments. Un appel de fonction remplace toute expression du mme type que le type de retour de la fonction. Exemple :
X=surfCercle(2.0)+4
Appel de sub
2 faons dappeler une sub: Call suivi du nom, les arguments entre () Function HelloWorld() As String nom du Sub (sans Call) avec arguments spars par ,
Dim res As String Function HelloWorld() As String res = "Hello World" DimajoutEspace(res) Call res As String res = "Hello World" HelloWorld = res ajoutEspace End Functionres HelloWorld = res End ajoutEspace(ByRef str As String) Sub Function
str = " " & str Sub ajoutEspace(ByRef str As String) End Sub str = " " & str End Sub
o Sub :
Par valeur, le nom du paramtre est prcd par ByVal
(cette mthode de passage de paramtres est la mthode par dfaut). Par rfrence, le nom du paramtre est prcd par ByRef.
Variables globales
Une variable dclare lextrieur de toute Function
Instructions de contrle
Conditionels : If Function Signe(x As Double) As Byte If x > 0 Then Iif Function 1 Signe = sPlus(x As Double) As Double
sPlus = IIf(x > 0, ElseIf x < 0 Then x, 0) End Function Signe = -1 Else Signe = 0 End If End Function
Boucles
While
For
For
Sub arrTest(j As Integer) Dim t(1 To 10) As Integer Sub arrTest(j As Integer) Dim i As Integer Dim Each, 1t(1 To 10) Asavec de collections. sutilise Integer Dim i As Integer i= While i <= 10 For i = = To 10 t(i) 1 j + i t(i)==i j++1 i i Next i Wend End Sub End Sub
type spcial. Elles peuvent etre manipules dans VBA. chaque feuille correspond une variable :
Utilisation dobjets
Un objet est une variable dont le type est une classe
appartenant au projet courant o une bibliothque. Un objet se dclare laide de Dim comme pour toute variable. Un objet doit tre cre avec une instruction New et lattribution du rsultat de New se fait obligatoirement laide de Set. Un objet non initialis contient Nothing.
Objets et classes
Une classe est un type dfini dans une bibliothque.
Une variable dont le type est une classe est un Object. Un Objet contient des membres qui peuvent tre des proprits, Des mthodes (des fonctions) Deux objets de mme type ont, en gnral, des
lignes et le nombre de colonnes. Ex: Cells(1,1) un argument String reprsentant ladresse dune cellule. Ex Cells("A1")
cellule. Formula, proprit qui reprsente la formule de la cellule. ClearContents, mthode qui efface le contenu de la cellule. ClearComments, mthode qui efface les comentaires de la cellule.
Exemple
Option Explicit Sub displaySquare() Dim i As Integer For i = 1 To 100 result.Cells(i, 1).Value = i * i result.Cells(i, 1).Interior.ColorIndex = i Mod 32 Next i End Sub Value est une la class Cells est une mthode deproprit de Worksheetla 2 arguments (il a une class Range Autre mthode de mme nom 1 argument) qui retourne un objet de type Excel.Range
Result est un Objet de type Excel.Worksheet Excel -> bibliothque Worksheet -> class
vnements
Le vnements sont des subroutines qui sexcutent
assynchronement . Ils sont dclenchs automatiquement par des actions extrieures. Quelques exemples :
Click de souris sur bouton
Private Sub btnGo_Click() Changement de contenu dune cellule displaySquare Privatela cellule courante Sub Worksheet_Change(ByVal Target As Range) Changement de End Sub If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) End If calc.Cells(2, 4).Value = "selection is now " & Target.Address End Sub If Target.Address = "$A$1" Then calc.Cells(1, 4).Value = "A1 Changed" End If End Sub
vnements
Nom de la class, Dans certains cas nom De lobjet Nom de lvnement
Erreurs
Dans son comportement par dfaut lexcution sarrte
et un message est affich. On peut spcifier un autre comportement si une erreur se produit, trois comportemens sont possibles :
On Error Goto 0, le comportement par dfaut On Error Resume Next, ignorer les erreurs et passer
linstruction suivante. On Error Goto <label>, sauter <label> (ligne marqu de <lable>:) si une erreur se produit.
Erreurs (suite)
La variable Err contient plusieurs membres, les plus
importants :
Number, contient le numro unique de lerreur. Description, contient la description de lerreur. Raise, produit une erreur (utile pour signaler des erreurs
Erreurs (exemple)
Modification du traitement des erreurs. Sub ajoutEspace(ByRef str As String, Optional vnb As Variant) Dim prefix As String Dim nb As Integer On Error GoTo err_label If IsMissing(vnb) Then nb = 5 Else nb = CInt(vnb) End If prefix = Space(nb) str = prefix & str Exit Sub err_label: MsgBox Err.Description
Label
Modules de classe
Dans un module de classe on peut dfinir ses propres
Exemple : tudiants
Option Explicit
Variables membres
Mthode
Exemple : tudiants
Public Property Get moyenne() As Single Dim ret As Single Dim note As Variant Dim cnt As Integer ret = 0 cnt = 0 For Each note In notes ret = ret + note cnt = cnt + 1 Next note moyenne = ret / cnt End Property
Exemple : tudiants
Public Property Let nom(nom_ As String) my_nom = nom_ End Property Public Property Get nom() As String nom = my_nom End Property Public Property Let prenom(prenom_ As String) my_prenom = prenom_ End Property
Attribution, proprit
Lecture, proprit
Dclarations
Allocation Utilisation de proprits
Forms
Les forms sont des objets graphiques quon peut
afficher dans Excel. On utilise des forms pour intragir avec un utilisateur. Une form et toujours compos dune fentre sur laquelle saffichent des contrles graphiques. La boite outils de Excel propose plusieurs contrles : boutons, zones de texte, liste de choix, etc. Chaque contrle propose des vnements qui permettent dinteragir avec lutilisateur. Chaque form gre son propre module.
Design de la form