В настоящее время вы работаете в автономном режиме; ожидается повторное подключение к Интернету

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

Поддержка Office 2003 завершена

8 апреля 2014 г. корпорация Майкрософт прекратила поддержку Office 2003. Это повлияло на обновления программного обеспечения и параметры безопасности. Узнайте, что это значит для вас и какие меры по безопасности можно предпринять.

ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.

Эта статья на английском языке:824021
ВВЕДЕНИЕ
В данной статье описывается, как обрабатывать события 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
PowerPoint vb net событий питания точки подключения PPT2007

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 824021 — последний просмотр: 10/06/2011 00:31:00 — редакция: 5.0

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

  • kbexpertiseinter kbhowtomaster kbautomation kbmt KB824021 KbMtru
Отзывы и предложения
t.createElement("meta"); m.content = guid; m.name = "ms.dqid"; document.getElementsByTagName("head")[0].appendChild(m);