Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

Cómo controlar eventos de PowerPoint utilizando Visual Basic .NET 2003

Ha finalizado el soporte técnico para Office 2003

Microsoft puso fin al soporte técnico para Office 2003 el 8 de abril de 2014. Este cambio ha afectado a las actualizaciones de software y las opciones de seguridad. Sepa qué significa esto en su caso y cómo puede mantenerse protegido.

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 824021
INTRODUCCIÓN
Este artículo describe cómo controlar eventos de Microsoft PowerPoint desde un cliente de automatización se desarrolla utilizando Microsoft Visual Basic .NET 2003.

Crear un controlador de eventos

Puede utilizar cualquiera de los métodos siguientes para crear un controlador de eventos utilizando Visual Basic. NET. El método que elija depende de cómo desea asociar el controlador de eventos a un evento.
  • Método 1

    Normalmente, crea un controlador de eventos si utiliza la palabra clave Handles con la palabra clave WithEvents . Cuando se declara una variable de referencia de objeto utilizando la palabra clave WithEvents , Visual Basic .NET se conecta automáticamente a los eventos del objeto en tiempo de ejecución. Para controlar un evento específico para un objeto, agregar el controlador correspondiente mediante la clase ver lista y el método del entorno de Visual Studio .NET mientras está en código.
  • Método 2

    Visual Basic .NET proporciona otra forma de controlar eventos. Puede utilizar la instrucción AddHandler y la instrucción RemoveHandler para que pueda dinámicamente iniciar y detener dinámicamente el control de eventos para un evento específico.

    Nota Si utiliza la palabra clave WithEvents para construir los controladores de eventos, puede recibir una excepción System.Reflection.TargetInvocationException . Por lo tanto, utilizar el evento de AddHandler para construir los controladores de eventos.

Crear al cliente de automatización de Visual Basic .NET que controla los eventos de PowerPoint

Los siguientes conjuntos de pasos muestran cómo utilizar la instrucción AddHandler para controlar los eventos de aplicación de PowerPoint desde un cliente de Automatización desarrollado con Visual Basic. NET.

Para crear un proyecto de Visual Basic. NET, siga estos pasos:
  1. Iniciar Microsoft Visual Studio .NET 2003.
  2. En el menú archivo , haga clic en nuevo y, a continuación, haga clic en proyecto .
  3. En la lista de Tipos de proyecto , haga clic en Proyectos de Visual Basic . En la lista de plantillas , haga clic en Aplicación para Windows .
  4. Denomine el proyecto PowerPointEvents y, a continuación, haga clic en Aceptar .

    De forma predeterminada, se crea un formulario que se denomina Form1.
Para agregar referencias a la biblioteca de objetos de PowerPoint de Microsoft y a la biblioteca de objetos de Microsoft Graph, siga estos pasos:
  1. En el menú proyecto , haga clic en Agregar referencia .
  2. En la ficha COM , haga clic en uno de los siguientes y, a continuación, haga clic en Seleccionar :
    • Para Microsoft Office PowerPoint 2007, haga clic en Biblioteca de objetos de Microsoft PowerPoint 2007 .
    • Para Microsoft Office PowerPoint 2003, haga clic en Microsoft PowerPoint 11.0 Object Library .
  3. En la ficha COM , haga clic en uno de los siguientes y, a continuación, haga clic en Seleccionar :
    • Para 2007 de Microsoft Graph, haga clic en Microsoft Graph 12.0 Object Library .
    • Para Microsoft Graph 11.0, haga clic en Biblioteca de objetos de Microsoft Graph 11.0 .
  4. En el cuadro de diálogo Agregar referencias , haga clic en Aceptar para aceptar sus selecciones.
  5. Haga doble clic en el formulario.

    Abre la ventana de código.
  6. En la parte superior del archivo Form1.vb, agregue el código siguiente:
    	Imports PowerPoint = Microsoft.Office.Interop.PowerPoint	Imports Office = Microsoft.Office.Core	Imports Graph = Microsoft.Office.Interop.Graph
  7. En el menú Ver , haga clic en Diseñador .
  8. En el menú Ver , haga clic en Herramientas y, a continuación, agregue un botón a Form1.
  9. Haga doble clic en Button1 .

    La ventana de código se abrirá en el evento Button1_Click .
  10. En la ventana código, coloque el código siguiente antes del evento Button1_Click :
    	Dim oApp As PowerPoint.Application	Dim oPres As PowerPoint.Presentation
  11. Agregue el código siguiente al evento Button1_Click :
    	Const sTemplate = "C:\Program Files\Microsoft Office\Templates\Presentation Designs\Orbit.pot"        ' If the previous template is not available, change the template name to a template name that is on your system.        Const sVideo = "C:\WINDOWS\system32\oobe\images\intro.wmv"        Dim oPresentations As PowerPoint.Presentations        Dim oSlides As PowerPoint.Slides        Dim oSlide As PowerPoint.Slide        Dim oShapes As PowerPoint.Shapes        Dim oShape As PowerPoint.Shape        Dim oMovie As PowerPoint.Shape        Dim oAnimationSettings As PowerPoint.AnimationSettings        Dim oPlaySettings As PowerPoint.PlaySettings        Dim oTextFrame As PowerPoint.TextFrame        Dim oTextRange As PowerPoint.TextRange        Dim oFont As PowerPoint.Font        Dim oOLEFormat As PowerPoint.OLEFormat        Dim oShadow As PowerPoint.ShadowFormat        Dim oForeColor As PowerPoint.ColorFormat        Dim oRange As PowerPoint.SlideRange        Dim oSlideShowTransition As PowerPoint.SlideShowTransition        'Start PowerPoint and then make the PowerPoint window visible but minimized.        oApp = New PowerPoint.Application        'Add event handlers.        AddHandler oApp.SlideShowBegin, AddressOf oApp_SlideShowBegin        AddHandler oApp.SlideShowNextSlide, AddressOf oApp_SlideShowNextSlide        AddHandler oApp.PresentationClose, AddressOf oApp_PresentationClose        oApp.Visible = True        oApp.WindowState = PowerPoint.PpWindowState.ppWindowMinimized        'Create a new presentation that is based on the specified template.        oPresentations = oApp.Presentations        oPres = oPresentations.Open(sTemplate, , , True)        'Build slide 1.        'Add text to the slide, change the font, and then insert or position a         'movie on the first slide.        oSlides = oPres.Slides        oSlide = oSlides.Add(1, PowerPoint.PpSlideLayout.ppLayoutTitleOnly)        oShapes = oSlide.Shapes        oShape = oShapes.Item(1)        oTextFrame = oShape.TextFrame        oTextRange = oTextFrame.TextRange        oTextRange.Text = "My sample presentation"        oFont = oTextRange.Font        oFont.Name = "Comic Sans MS"        oFont.Size = 48        oMovie = oShapes.AddMediaObject(sVideo, 150, 150, 500, 350)        oAnimationSettings = oMovie.AnimationSettings        oPlaySettings = oAnimationSettings.PlaySettings        oPlaySettings.PlayOnEntry = True        oPlaySettings.HideWhileNotPlaying = True        'NAR to release references.        NAR(oPlaySettings)        NAR(oAnimationSettings)        NAR(oMovie)        NAR(oFont)        NAR(oTextRange)        NAR(oTextFrame)        NAR(oShape)        NAR(oShapes)        NAR(oSlide)        NAR(oSlides)        'Build slide 2.        'Add text to the slide title and then format the text. Also, add a chart to the        'slide and then change the chart type to a 3D Column Clustered.        oSlides = oPres.Slides        oSlide = oSlides.Add(2, PowerPoint.PpSlideLayout.ppLayoutTitleOnly)        oShapes = oSlide.Shapes        oShape = oShapes.Item(1)        oTextFrame = oShape.TextFrame        oTextRange = oTextFrame.TextRange        oTextRange.Text = "My chart"        oFont = oTextRange.Font        oFont.Name = "Comic Sans MS"        oFont.Size = 48        Dim oChart As Graph.Chart        oShape = oShapes.AddOLEObject(150, 150, 480, 320, "MSGraph.Chart.8")        oOLEFormat = oShape.OLEFormat        oChart = oOLEFormat.Object        oChart.ChartType = Graph.XlChartType.xl3DColumnClustered        'NAR to release references.        NAR(oChart)        NAR(oOLEFormat)        NAR(oFont)        NAR(oTextRange)        NAR(oTextFrame)        NAR(oShape)        NAR(oShapes)        NAR(oSlide)        NAR(oSlides)        'Build slide 3.        'Add a text effect to the slide and then apply shadows to the text effect.        oSlides = oPres.Slides        oSlide = oSlides.Add(3, PowerPoint.PpSlideLayout.ppLayoutBlank)        oSlide.FollowMasterBackground = False        oShapes = oSlide.Shapes        oShape = oShapes.AddTextEffect(Office.MsoPresetTextEffect.msoTextEffect27, _            "The End", "Impact", 96, False, False, 230, 200)        oShadow = oShape.Shadow        oForeColor = oShadow.ForeColor        oForeColor.SchemeColor = PowerPoint.PpColorSchemeIndex.ppForeground        oShadow.Visible = True        oShadow.OffsetX = 3        oShadow.OffsetY = 3        'NAR to release references.        NAR(oShadow)        NAR(oForeColor)        NAR(oShape)        NAR(oShapes)        NAR(oSlide)        NAR(oSlides)        'Modify the slide show transition settings for all three slides in        'the presentation.        Dim SlideIdx(3) As Integer        SlideIdx(0) = 1        SlideIdx(1) = 2        SlideIdx(2) = 3        oSlides = oPres.Slides        oRange = oSlides.Range(SlideIdx)        oSlideShowTransition = oRange.SlideShowTransition        oSlideShowTransition.AdvanceOnTime = False        oSlideShowTransition.EntryEffect = PowerPoint.PpEntryEffect.ppEffectBoxOut        'Run the slide show in a separate method.        RunSlideShow()        'NAR to release references.        NAR(oSlideShowTransition)        NAR(oRange)        NAR(oSlides)        'Close the presentation without saving changes and then quit PowerPoint.        oPres.Saved = True        oPres.Close()        'NAR the presentation objects.        NAR(oPres)        NAR(oPresentations)        'Remove all event handlers.        RemoveHandler oApp.SlideShowBegin, AddressOf oApp_SlideShowBegin        RemoveHandler oApp.SlideShowNextSlide, AddressOf oApp_SlideShowNextSlide        RemoveHandler oApp.PresentationClose, AddressOf oApp_PresentationClose        'Quit PowerPoint.        oApp.Quit()        NAR(oApp)        GC.Collect()
  12. En la ventana código, coloque el código siguiente debajo del evento Button1_Click :
    	Private Sub RunSlideShow()            Dim oSettings As PowerPoint.SlideShowSettings	    Dim oSlideShowWindows As PowerPoint.SlideShowWindows	    oSettings = oPres.SlideShowSettings	    oSettings.StartingSlide = 1       	    oSettings.EndingSlide = 3            'Run the slide show. Wait for the slide show to finish.            oSettings.Run()            oSlideShowWindows = oApp.SlideShowWindows            On Error Resume Next            Do While oSlideShowWindows.Count >= 1	        System.Windows.Forms.Application.DoEvents()       	    Loop	    NAR(oSlideShowWindows)            NAR(oSettings)	End Sub    	'NAR function to remove reference.   	Private Sub NAR(ByVal o As Object)            Try	        System.Runtime.InteropServices.Marshal.ReleaseComObject(o)            Catch            Finally                o = Nothing            End Try    	End Sub
  13. Agregue los siguientes controladores de eventos debajo del código anterior:
    	'Event Handlers    	Private Sub oApp_SlideShowBegin(ByVal Wn As Microsoft.Office.Interop.PowerPoint.SlideShowWindow)            'Change the position and the size of the slide show window.            Dim oView As PowerPoint.SlideShowView            With Wn                .Height = 325                .Width = 400                .Left = 100                .Activate()            End With           'Start the movie at the first slide.            oView = Wn.View            oView.Next()            NAR(oView)            NAR(Wn)    	End Sub    	Private Sub oApp_SlideShowNextSlide(ByVal Wn As Microsoft.Office.Interop.PowerPoint.SlideShowWindow)            'Change the color and the type of pointer depending on the slide.            Dim Showpos As Integer            Dim oView As PowerPoint.SlideShowView            Dim oColorFormat As PowerPoint.ColorFormat            oView = Wn.View            Showpos = oView.CurrentShowPosition + 1            If Showpos = 3 Then                oColorFormat = oView.PointerColor                oColorFormat.RGB = RGB(255, 0, 0)                oView.PointerType = PowerPoint.PpSlideShowPointerType.ppSlideShowPointerPen            Else                oColorFormat = oView.PointerColor                oColorFormat.RGB = RGB(0, 0, 0)                oView.PointerType = PowerPoint.PpSlideShowPointerType.ppSlideShowPointerArrow            End If            NAR(oColorFormat)            NAR(oView)            NAR(Wn)    	End Sub    	Private Sub oApp_PresentationClose(ByVal Pres As Microsoft.Office.Interop.PowerPoint.Presentation)            'Before you close the presentation, save the presentation as HTML.            Pres.SaveAs("C:\TestEvents.htm", PowerPoint.PpSaveAsFileType.ppSaveAsHTML)            NAR(Pres)    	End Sub

Pruébelo

  1. Presione F5 para ejecutar la aplicación.
  2. Haga clic en Button1 .

    PowerPoint inicia la presentación con diapositivas. Observe lo siguiente:
    • La primera diapositiva, inicia una película.
    • El tipo de puntero cambia.
    • Los cambios de color en la segunda diapositiva que tiene un gráfico.
  3. Cierre la presentación.
Referencias
Para obtener más información, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
308330Cómo controlar eventos de PowerPoint 2002 utilizando Visual Basic .NET 2002
254009Demostración de evento de PowerPoint 2000 disponible para descarga
303717Cómo utilizar automatización para crear y mostrar una presentación de PowerPoint 2002 o una presentación de Office PowerPoint 2003 utilizando Visual Basic .NET 2002 o Visual Basic .NET 2003
823996No se encuentra PIA al hacer referencia a una biblioteca de tipos Office en Visual Studio .NET
evento net energía punto conexión PPT2007 de PowerPoint vb

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 824021 - Última revisión: 05/24/2007 22:15:42 - Revisión: 2.1

Microsoft Office PowerPoint 2007, Microsoft Office PowerPoint 2003, Microsoft Visual Basic .NET 2003 Standard Edition

  • kbmt kbexpertiseinter kbhowtomaster kbautomation KB824021 KbMtes
Comentarios
endChild(m);