IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Discussion :

VBA est-il un langage orienté objet ?


Sujet :

VBA

  1. #1
    Membre chevronné Avatar de Kcirtap
    Inscrit en
    Juillet 2005
    Messages
    553
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 553
    Par défaut VBA est-il un langage orienté objet ?
    Salut à toutes et à tous !

    Je ne connaît pas très bien VBA et je me demande si ce langage est orienté objet ?

    Attention, je parle bien de Visual Basic for Application et non pas de VB.NET.

    Je sais que VBA permet de travailler avec les modèles d'objets de Microsoft Office. Dès lors, on pourrait comprendre qu il fait partie des langages orientés objet.

    Cependant, je cherche à savoir si les principales caractéristiques de la POO sont utilisables en VBA, à savoir :
    • l'encapsulation des données ;
      l'héritage ;
      le polymorphisme.

    Est-ce quelqu'un aurait déjà implémenté ces concepts dans un code VBA :

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Par défaut
    non VBA n'est en rien un langage objet, tout comme les modeles offices ne sont pas objet, ce sont des collections.

    Aucune notion d'heritage, notion de polymorphisme ultra basique.

  3. #3
    Membre chevronné Avatar de Kcirtap
    Inscrit en
    Juillet 2005
    Messages
    553
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 553
    Par défaut
    Citation Envoyé par Gaël Donat
    non VBA n'est en rien un langage objet, tout comme les modeles offices ne sont pas objet, ce sont des collections.

    Aucune notion d'heritage, notion de polymorphisme ultra basique.
    Merci pour cette réponse rapide Gaël. Je n'avais même pas eu le temps de corriger mes fautes d'orthographe...

    Je ne comprends pas très bien lorsque tu dis que les modèles d'offices de sont pas des objets mais des collections.
    Ayant eu à utiliser le modèle d'objet d'Excel, il est vrai qu'il existe des collections (par exemple workbooks), mais également des objets (par exemple workbook) qui possèdent le propre comportement.
    Pourrais-tu m'apporter quelques précisions :

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Par défaut
    workbook est effectivement un objet de la collection workbooks mais pas au sens programation objet du terme.

    dans une programme OO l'objet est accessible seulement par ses methodes, ses propriétés reste privé, ce qui n'est pas le cas de workbook.

    Il faut instancier la classe avant de s'en servir la plupart du temps.

    Un code objet donnerai plutot une syntaxe comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim xl_wkb as new excel.workbook
    dim xl_wks = excel.worksheet
     
    xl_wkb.open(file)
    xl_wks = new excel.worksheet(xl_wkb,1)
    la différence est minime, mais elle est là.


    Dans VBA, la notion de classe apparait à Partir de Access 2000, donc je suppose également le reste de la suite Office 2000, la tu commence à avoir des notions de classe avec des instanciations.

  5. #5
    Membre chevronné Avatar de Kcirtap
    Inscrit en
    Juillet 2005
    Messages
    553
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 553
    Par défaut
    pour ces explications

    Bonne journée

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 183
    Par défaut
    Dans VBA tu peux faire des modules de classes qui ne permettent pas autant de chose que le c++ néanmoins, avec des données, des méthodes et la possibilité d'encapsuler les deux, y a de quoi faire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/11/2016, 20h35
  2. Direct3D langage orienté objet
    Par eemii dans le forum DirectX
    Réponses: 8
    Dernier message: 20/06/2010, 18h50
  3. Langages orienté objet indispensable?
    Par djoulju dans le forum Débuter
    Réponses: 7
    Dernier message: 04/05/2010, 10h37
  4. Réponses: 0
    Dernier message: 06/06/2008, 08h41
  5. régles de passage d'un diagramme de classe à un langage orienté objet
    Par lasmarmann dans le forum Diagrammes de Classes
    Réponses: 7
    Dernier message: 22/01/2007, 18h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo