Как обрабатывать события PowerPoint с помощью Visual Basic.NET 2003

Переводы статьи Переводы статьи
Код статьи: 824021 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

ВВЕДЕНИЕ

В данной статье описывается, как обрабатывать события Microsoft Office PowerPoint из клиента автоматизации, разработанные с помощью Microsoft Visual Basic.NET 2003.

Создание обработчика событий

Для создания обработчика событий с помощью Visual Basic можно использовать один из следующих способов.NET. Выбор способа зависит от того, как следует связать обработчик событий с событием.
  • Способ 1

    Как правило, создайте обработчик событий с помощью Маркеры Ключевое слово with WithEvents Ключевое слово. При объявлении объектной переменной ссылку с помощью WithEvents Ключевое слово Visual Basic.NET автоматически подключается к событиям объекта во время выполнения. Для обработки конкретных событий для объекта, добавьте соответствующий обработчик с помощью Класс список и Метод Список Visual Studio.NET в виде объектов в коде представления.
  • Способ 2

    Visual Basic.NET предоставляет другой способ обработки событий. Можно использовать AddHandler инструкции и RemoveHandler инструкции, что позволяет динамически запускать и динамически останавливать обработку события для определенного события.

    Примечание Если используется WithEvents Ключевое слово для создания обработчиков событий может появиться System.Reflection.TargetInvocationException исключение. Таким образом, использование AddHandler события для создания обработчиков событий.

Создайте в Visual Basic.Клиент автоматизации NET, который обрабатывает события PowerPoint

Следующие наборы действия показывают, как использовать AddHandler Инструкция для обработки событий приложения PowerPoint из клиента автоматизации, разработанных с помощью Visual Basic.NET.

Чтобы создать Visual Basic.NET проект, выполните следующие действия:
  1. Запуск Microsoft Visual Studio.NET 2003.
  2. На Файл меню, нажмите кнопку Новый, а затем нажмите кнопку Проект.
  3. В Типы проектов Выберите Проекты Visual Basic. В Шаблоны Выберите Приложение Windows.
  4. Назовите проект PowerPointEvents и нажмите кнопку ОК.

    По умолчанию создается форма с именем Form1.
Чтобы добавить ссылки на библиотеку объектов Microsoft PowerPoint и библиотеку объектов Microsoft Graph, выполните следующие действия.
  1. На Проект меню, нажмите кнопку Добавить ссылку.
  2. На COM вкладки, выберите одно из следующих действий и нажмите кнопку Выберите:
    • Для Microsoft Office PowerPoint 2007 нажмите кнопку Библиотека объектов Microsoft PowerPoint 12.0.
    • Для Microsoft Office PowerPoint 2003 нажмите кнопку Библиотека объектов Microsoft PowerPoint 11.0.
  3. На COM вкладки, выберите одно из следующих действий и нажмите кнопку Выберите:
    • 12.0 Microsoft Graph нажмите кнопку Библиотека объектов Microsoft Graph 12.0.
    • Microsoft Graph 11.0 нажмите кнопку Библиотека объектов Microsoft Graph 11.0.
  4. В Добавление ссылок диалоговое окно, нажмите кнопку ОК для подтверждения сделанного.
  5. Дважды щелкните форму.

    Откроется окно кода.
  6. В верхней части файла Form1.vb добавьте следующий код:
    	Imports PowerPoint = Microsoft.Office.Interop.PowerPoint
    	Imports Office = Microsoft.Office.Core
    	Imports Graph = Microsoft.Office.Interop.Graph
    
  7. На Представление меню, нажмите кнопку Конструктор.
  8. На Представление меню, нажмите кнопку Панели инструментов, а затем добавить кнопку на форму Form1.
  9. Дважды щелкните значок Button1.

    Окно кода при открытии Button1_Click событие.
  10. В окне кода поместите следующий код перед Button1_Click событие:
    	Dim oApp As PowerPoint.Application
    	Dim oPres As PowerPoint.Presentation
    
  11. Добавьте следующий код для 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. В окне кода поместите следующий код ниже 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. Добавьте следующие обработчики событий ниже предыдущего кода:
    	'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
    

Испытание на практике

  1. Нажмите клавишу F5 для запуска приложения.
  2. Нажмите кнопку Button1.

    PowerPoint запуск слайд-шоу. Обратите внимание на следующее:
    • Первый слайд запуск фильма.
    • Изменения типа указателя.
    • Изменения цвета на второй слайд, содержащий диаграмму.
  3. Закройте презентацию.

Ссылки

Для получения дополнительных сведений щелкните следующие номера статей базы знаний Майкрософт:
308330Как обрабатывать события PowerPoint 2002 с помощью Visual Basic.NET 2002
254009 Демонстрации PowerPoint 2000 события доступны для загрузки
303717 Способы использования модели автоматизации для создания и отображения презентации PowerPoint 2003 или PowerPoint 2002 презентации с помощью Visual Basic.NET 2002 или Visual Basic.NET 2003
823996 PIA не найден, при ссылке на библиотеку типов Microsoft Office в Visual Studio.NET

Свойства

Код статьи: 824021 - Последний отзыв: 6 октября 2011 г. - Revision: 5.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft Visual Basic .NET 2003 Standard Edition
Ключевые слова: 
kbexpertiseinter kbhowtomaster kbautomation kbmt KB824021 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:824021

Отправить отзыв

 

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