Você está offline; aguardando reconexão

Como processar eventos do PowerPoint utilizando o Visual Basic .NET 2003

O suporte para o Office 2003 terminou

A Microsoft terminou o suporte para o Office 2003 em 8 de Abril de 2014. Esta alteração afetou as suas atualizações de software e opções de segurança. Aprenda o que isto significa para si e como pode ficar protegido.

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 824021
INTRODUÇÃO
Este artigo descreve como processar eventos do Microsoft Office PowerPoint a partir de um cliente de automatização desenvolvido com o Microsoft Visual Basic .NET 2003.

Criar um processador de eventos

Pode utilizar um dos seguintes métodos para construir um processador de eventos utilizando o Visual Basic. NET. O método que escolher depende do modo como pretende associar o processador de eventos um evento.
  • Método 1

    Normalmente, criar um processador de eventos utilizando a palavra-chave processa com a palavra-chave WithEvents . Quando declara uma variável de referência de objecto utilizando a palavra-chave WithEvents , Visual Basic .NET liga automaticamente os eventos do objecto em tempo de execução. Para processar um evento específico para um objecto, adicionar o processador relevante utilizando a classe de lista e lista de ambiente do Visual Studio .NET enquanto estiver no código de método visualizar.
  • Método 2

    Visual Basic .NET fornece outra forma de processar eventos. Pode utilizar a instrução AddHandler e a declaração ' RemoveHandler para que possa dinamicamente iniciar e parar dinamicamente o processamento de eventos para um evento específico.

    Nota Se utilizar a palavra-chave WithEvents para construir os processadores de eventos, poderá receber uma excepção System.Reflection.TargetInvocationException . Por conseguinte, utilize o evento AddHandler para construir os processadores de eventos.

Criar o cliente de automatização do Visual Basic .NET processa eventos do PowerPoint

Os conjuntos dos passos seguintes mostram como utilizar a instrução ' AddHandler para processar eventos aplicação PowerPoint a partir de um cliente de automatização desenvolvido com o Visual Basic. NET.

Para criar um projecto de Visual Basic. NET, siga estes passos:
  1. Iniciar Microsoft Visual Studio .NET 2003.
  2. No menu ficheiro , clique em Novo e, em seguida, clique em projecto .
  3. Na lista Tipos de projecto , clique em Projectos do Visual Basic . Na lista modelos , clique em Aplicação do Windows .
  4. Atribua um nome do projecto PowerPointEvents e, em seguida, clique em OK .

    Por predefinição, é criado um formulário é denominado Form1.
Para adicionar referências à biblioteca de objectos do Microsoft PowerPoint e ao Microsoft Graph Object Library, siga estes passos:
  1. No menu projecto , clique em Add Reference .
  2. No separador COM , clique das seguintes opções e, em seguida, clique em Seleccionar :
    • Para o Microsoft Office PowerPoint 2007, clique em Microsoft PowerPoint 12.0 Object Library .
    • Para o Microsoft Office PowerPoint 2003, clique em Microsoft PowerPoint 11.0 Object Library .
  3. No separador COM , clique das seguintes opções e, em seguida, clique em Seleccionar :
    • Para o Microsoft Graph 12.0, clique em Microsoft Graph 12.0 Object Library .
    • Para o Microsoft Graph 11.0, clique em Microsoft Graph 11.0 Object Library .
  4. Na caixa de diálogo Adicionar referências , clique em OK para aceitar as selecções.
  5. Faça duplo clique no formulário.

    É aberta a janela de código.
  6. Na parte superior do Form1.VB ficheiro, adicione o seguinte código:
    	Imports PowerPoint = Microsoft.Office.Interop.PowerPoint	Imports Office = Microsoft.Office.Core	Imports Graph = Microsoft.Office.Interop.Graph
  7. No menu Ver , clique em Designer .
  8. No menu Ver , faça clique sobre caixa de ferramentas e, em seguida, adicione um botão ao Form1.
  9. Faça duplo clique em Button1 .

    A janela de código é aberta no evento Button1_Click .
  10. Na janela código, coloque o código seguinte antes do evento Button1_Click :
    	Dim oApp As PowerPoint.Application	Dim oPres As PowerPoint.Presentation
  11. Adicione o seguinte código ao evento Button1_Click : sTemplate Const
    	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. Na janela código, coloque o seguinte código abaixo ao 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. Adicione os seguintes processadores de eventos abaixo ao 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

Experimente-

  1. Prima F5 para executar a aplicação.
  2. Clique em Button1 .

    PowerPoint inicia a apresentação de diapositivos. Tenha em atenção o seguinte:
    • O primeiro diapositivo inicia um filme.
    • O tipo de ponteiro mudar.
    • As alterações de cor no segundo diapositivo com um gráfico.
  3. Feche a apresentação.
Referências
Para obter mais informações, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
308330Como processar eventos do PowerPoint 2002 utilizando o Visual Basic .NET 2002
254009Demonstração de evento de PowerPoint 2000 disponível para transferência
303717Como utilizar a automatização para criar e para mostrar uma apresentação do PowerPoint 2002 ou uma apresentação do Office PowerPoint 2003 utilizando o Visual Basic .NET 2002 ou Visual Basic .NET 2003
823996PIA não for encontrada quando referenciar uma biblioteca de tipos Office no Visual Studio .NET
PowerPoint vb evento net energia ponto ligação PPT2007

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 824021 - Última Revisão: 05/24/2007 22:15:42 - Revisão: 2.1

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

  • kbmt kbexpertiseinter kbhowtomaster kbautomation KB824021 KbMtpt
Comentários