Автоматизация PowerPoint с помощью Visual Basic

Аннотация

Эта статья содержит пример использования Microsoft Visual Basic для автоматизации PowerPoint.

Дополнительная информация

Автоматизация PowerPoint позволяет программно реализовать печать и отображение слайдов, а также другие операции, которые выполняются в интерактивном режиме. Для создания и запуска программы автоматизации PowerPoint на языке Visual Basic выполните следующие действия.
  1. Создайте новый проект Standard EXE. По умолчанию создается форма Form1.
  2. Добавьте в эту форму элемент управления CommandButton.
  3. В меню Project выберите команду References и добавьте библиотеки Microsoft PowerPoint 8.0 Object Library и Microsoft Office 8.0 Object Library. Версии библиотек типов для Office 2000 имеют номер 9.0, для Office 2002 – 10.0, а для Office 2003 – 11.0.
  4. Скопируйте приведенный ниже программный код в окно кода формы.
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

    Private Sub Command1_Click()
    ' Start PowerPoint.
    Dim ppApp As PowerPoint.Application
    Set ppApp = CreateObject("Powerpoint.Application")

    ' Make it visible.
    ppApp.Visible = True

    ' Add a new presentation.
    Dim ppPres As PowerPoint.Presentation
    Set ppPres = ppApp.Presentations.Add(msoTrue)

    ' Add a new slide.
    Dim ppSlide1 As PowerPoint.Slide
    Set ppSlide1 = ppPres.Slides.Add(1, ppLayoutText)

    ' Add some text.
    ppSlide1.Shapes(1).TextFrame.TextRange.Text = "My first slide"
    ppSlide1.Shapes(2).TextFrame.TextRange.Text = "Automating Powerpoint is easy" & vbCr & "Using Visual Basic is fun!"

    ' Add another slide, with a chart.
    Dim ppSlide2 As PowerPoint.Slide
    Set ppSlide2 = ppPres.Slides.Add(2, ppLayoutTextAndChart)

    ' Add some text.
    ppSlide2.Shapes(1).TextFrame.TextRange.Text = "Slide 2's topic"
    ppSlide2.Shapes(2).TextFrame.TextRange.Text = "You can create and use charts in your Powerpoint slides!"

    ' Add a chart in the same location as the old one.
    Dim cTop As Double
    Dim cWidth As Double
    Dim cHeight As Double
    Dim cLeft As Double
    With ppSlide2.Shapes(3)
    cTop = .Top
    cWidth = .Width
    cHeight = .Height
    cLeft = .Left
    .Delete
    End With
    ppSlide2.Shapes.AddOLEObject cLeft, cTop, cWidth, cHeight, "MSGraph.Chart"

    ' Add another slide, with an organization chart.
    Dim ppSlide3 As PowerPoint.Slide
    Set ppSlide3 = ppPres.Slides.Add(3, ppLayoutOrgchart)

    ' Add some text.

    ppSlide3.Shapes(1).TextFrame.TextRange.Text = "The rest is only limited by your Imagination"

    ' Add an Org Chart in the same location as the old one.
    With ppSlide3.Shapes(2)
    cTop = .Top
    cWidth = .Width
    cHeight = .Height
    cLeft = .Left
    .Delete
    End With
    ppSlide3.Shapes.AddOLEObject cLeft, cTop, cWidth, cHeight, "OrgPlusWOPX.4" 'OrgPlusWOPX.4
    ' is an object of the application Microsoft Organization Chart


    ' Setup slide show properties.
    With ppPres.Slides.Range.SlideShowTransition
    .EntryEffect = ppEffectRandom
    .AdvanceOnTime = msoTrue
    .AdvanceTime = 5 ' 5 seconds per slide
    End With

    ' Prepare and run the slide show.
    With ppPres.SlideShowSettings
    .ShowType = ppShowTypeKiosk
    .LoopUntilStopped = msoTrue

    .RangeType = ppShowAll
    .AdvanceMode = ppSlideShowUseSlideTimings
    .Run
    End With

    ' Sleep so user can watch the show.
    Sleep (15000)

    ' Clean up.
    ppApp.Quit

    End Sub
  5. Запустите проект.

Ссылки

За дополнительной информацией об автоматизации Office обратитесь на веб-узел Microsoft Office Development Support:
Свойства

Номер статьи: 222929 — последний просмотр: 30 мая 2006 г. — редакция: 1

Отзывы и предложения