Comment gérer les événements PowerPoint 2002 à l'aide de Visual Basic .NET 2002

Traductions disponibles Traductions disponibles
Numéro d'article: 308330 - Voir les produits auxquels s'applique cet article
Pour une version de Visual C# .NET de cet article, voir 308825.
Pour une version de Visual C++ .NET de cet article, voir 309309.
Agrandir tout | Réduire tout

Résumé

Cet article explique comment gérer les événements de Microsoft PowerPoint 2002 à l'aide de Microsoft Visual Basic .NET 2002.

Plus d'informations

Avec Microsoft Visual Studio .NET, vous ne pouvez pas utiliser délégués pour recevoir des événements avec PowerPoint. PowerPoint utilise l'interface IDispatch pour déclencher des événements. Pour recevoir correctement les événements, l'application Visual Basic .NET doit utiliser les interfaces IConnectionPointContainer et IConnectionPoint . L'application de destination doit également savoir le DISPID des événements pour recevoir. Ces DISPID ne figurent pas dans la bibliothèque de type de PowerPoint, mais est répertoriées dans l'exemple de code ci-dessous pour référence.

Création du client Automation d'exemple Visual Basic .NET

  1. Démarrez Microsoft Visual Studio .NET. Dans le menu Fichier , cliquez sur Nouveau , puis cliquez sur Project . Sous types de projets cliquez sur projets Visual Basic , puis cliquez sur application Windows sous modèles . Form1 est créé par défaut.
  2. Ajouter une référence à la bibliothèque d'objets Microsoft PowerPoint . Pour ce faire, procédez comme suit :
    1. Dans le menu projet , cliquez sur Ajouter une référence .
    2. Sous l'onglet COM , recherchez bibliothèque d'objets Microsoft PowerPoint 10.0 , puis puis cliquez sur Sélectionner . Remarque : Si vous ne l'avez pas déjà fait, il est recommandé que vous téléchargez et puis installer les assemblys Microsoft Office XP Primary Interop (assembly). Pour plus d'informations sur les assemblys PIA Office XP, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
      328912 INFORMATIONS : les assemblys PIA Microsoft Office XP est disponibles pour téléchargement
    3. Cliquer sur OK dans la boîte de dialogue Ajouter une référence pour accepter les votre sélection. Si vous recevez une invite pour générer des wrappers pour les bibliothèques que vous avez sélectionné, cliquez sur Oui .
  3. Dans le menu Affichage , cliquez sur boîte à outils pour afficher la boîte à outils et ajouter deux boutons et d'une zone de liste à Form1.
  4. En séquence, double-cliquez sur Button1 , Bouton2 et Form1 .
  5. Dans la fenêtre de code, remplacez le code suivant
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
                                                                    Handles Button1.Click
    
    End Sub
    
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
                                                                    Handles Button2.Click
    
    End Sub
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
                                                                   Handles MyBase.Load
    
    End Sub
    					
    avec :
        Private m_oConnectionPoint As UCOMIConnectionPoint
        Private m_Cookie As Integer
        Private oPPT As PowerPoint.Application
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) 
                                                                       Handles MyBase.Load
            ' Create a new instance of PowerPoint.
            oPPT = New PowerPoint.Application()
    
            ' Show PowerPoint to the user.
            oPPT.Visible = Microsoft.Office.Core.MsoTriState.msoTrue
        End Sub
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
                                                                        Handles Button2.Click
            ' Call Unadvise to remove the sink to the connection.
            m_oConnectionPoint.Unadvise(m_Cookie)
            System.Runtime.InteropServices.Marshal.ReleaseComObject(oPPT)
            GC.Collect()
        End Sub
    
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
                                                                        Handles Button1.Click
            Dim oConnPointContainer As UCOMIConnectionPointContainer
            ' QI for IConnectionPointContainer.
            oConnPointContainer = CType(oPPT, UCOMIConnectionPointContainer)
            ' Create a new variable that contains the GUID of the 
            ' PowerPoint.EApplication interface.
            Dim guid As New Guid("914934C2-5A91-11CF-8700-00AA0060263B")
            ' Find the connection point.
            oConnPointContainer.FindConnectionPoint(guid, m_oConnectionPoint)
            ' Call Advise to sink up the connection.
            m_oConnectionPoint.Advise(Me, m_Cookie)
        End Sub
    
        <DispId(2001)> Public Sub WindowSelectionChange(ByVal Sel As PowerPoint.Selection)
            Me.ListBox1.Items.Add("WindowSelectionChange")
        End Sub
    
        <DispId(2002)> Public Sub WindowBeforeRightClick(ByVal Sel As PowerPoint.Selection,
                                                                   ByVal Cancel As Boolean)
            Me.ListBox1.Items.Add("WindowBeforeRightClick")
        End Sub
    
        <DispId(2003)> Public Sub WindowBeforeDoubleClick(ByVal Sel As PowerPoint.Selection,
                                                                    ByVal Cancel As Boolean)
            Me.ListBox1.Items.Add("WindowBeforeDoubleClick")
        End Sub
    
        <DispId(2004)> Public Sub PresentationClose(ByVal Pres As PowerPoint.Presentation)
            Me.ListBox1.Items.Add("PresentationClose")
        End Sub
    
        <DispId(2005)> Public Sub PresentationSave(ByVal Pres As PowerPoint.Presentation)
            Me.ListBox1.Items.Add("PresentationSave")
        End Sub
    
        <DispId(2006)> Public Sub PresentationOpen(ByVal Pres As PowerPoint.Presentation)
            Me.ListBox1.Items.Add("PresentationOpen")
        End Sub
    
        <DispId(2007)> Public Sub NewPresentation(ByVal Pres As PowerPoint.Presentation)
            Me.ListBox1.Items.Add("NewPresentation")
        End Sub
    
        <DispId(2008)> Public Sub PresentationNewSlide(ByVal Sld As PowerPoint.Slide)
            Me.ListBox1.Items.Add("PresentationNewSlide")
        End Sub
    
        <DispId(2009)> Public Sub WindowActivate(ByVal Pres As PowerPoint.Presentation,
                                                 ByVal Wn As PowerPoint.DocumentWindow)
            Me.ListBox1.Items.Add("WindowActivate")
        End Sub
    
        <DispId(2010)> Public Sub WindowDeactivate(ByVal Pres As PowerPoint.Presentation,
                                                   ByVal Wn As PowerPoint.DocumentWindow)
            Me.ListBox1.Items.Add("WindowDeactivate")
        End Sub
    
        <DispId(2011)> Public Sub SlideShowBegin(ByVal Wn As PowerPoint.SlideShowWindow)
            Me.ListBox1.Items.Add("SlideShowBegin")
        End Sub
    
        <DispId(2012)> Public Sub SlideShowNextBuild(ByVal Wn As PowerPoint.SlideShowWindow)
            Me.ListBox1.Items.Add("SlideShowNextBuild")
        End Sub
    
        <DispId(2013)> Public Sub SlideShowNextSlide(ByVal Wn As PowerPoint.SlideShowWindow)
            Me.ListBox1.Items.Add("SlideShowNextSlide")
        End Sub
    
        <DispId(2014)> Public Sub SlideShowEnd(ByVal Pres As PowerPoint.Presentation)
            Me.ListBox1.Items.Add("SlideShowEnd")
        End Sub
    
        <DispId(2015)> Public Sub PresentationPrint(ByVal Pres As PowerPoint.Presentation)
            Me.ListBox1.Items.Add("PresentationPrint")
        End Sub
    
    
        <DispId(2016)> Public Sub SlideSelectionChanged(ByVal SldRange As PowerPoint.SlideRange)
            Me.ListBox1.Items.Add("SlideSelectionChanged")
        End Sub
    
        <DispId(2017)> Public Sub ColorSchemeChanged(ByVal SldRange As PowerPoint.SlideRange)
            Me.ListBox1.Items.Add("ColorSchemeChanged")
        End Sub
    
        <DispId(2018)> Public Sub PresentationBeforeSave(ByVal Pres As PowerPoint.Presentation,
                                                                       ByVal Cancel As Boolean)
            Me.ListBox1.Items.Add("PresentationBeforeSave")
        End Sub
    
        <DispId(2019)> Public Sub SlideShowNextClick(ByVal Wn As PowerPoint.SlideShowWindow,
                                                         ByVal nEffect As PowerPoint.Effect)
            Me.ListBox1.Items.Add("SlideShowNextClick")
        End Sub
    					
  6. Ajouter celui-ci à la section Imports en haut de la fenêtre de code :
    Imports System.Runtime.InteropServices 
    Imports Microsoft.Office.Interop
    					
  7. Testez le programme. Pour ce faire, procédez comme suit :
    1. Appuyez sur F5 pour générer et exécuter le programme. Démarrage de PowerPoint.
    2. Cliquez sur Button1 pour configurer les récepteurs d'événements.
    3. Créer une nouvelle présentation dans PowerPoint.

      Le WindowActivate , NewPresentation, PresentationNewSlide et WindowSelectionChange, les événements se déclenchent.
    4. Enregistrez la présentation.

      L'événement PresentationSave, se déclenche.
    5. Fermez la présentation.

      L'événement PresentationClose, se déclenche.
    6. Activer Form1 dans le programme. Les événements qui ont été déclenchés par PowerPoint et gérés par le programme s'affichent dans la zone de liste.
    7. Cliquez sur button2 pour déconnecter les récepteurs d'événements.
    8. Fermez Form1 .

Références

Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
254009 INFO : PowerPoint 2000 événement démonstration disponibles pour téléchargement
Pour plus d'informations sur Office Automation, reportez-vous le site de support Microsoft Office Development suivante :
Forum aux questions et points importants pour le développement Office
http://support.microsoft.com/ofd

Propriétés

Numéro d'article: 308330 - Dernière mise à jour: mardi 30 janvier 2007 - Version: 4.3
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft PowerPoint 2002 Standard
  • Microsoft Visual Basic .NET 2002 Initiation
Mots-clés : 
kbmt kbautomation kbhowto KB308330 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 308330
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com