Ошибка ActiveX в коде VBA для замены слов в Powerpoint - PullRequest
0 голосов
/ 05 марта 2020

У меня есть код VBA, который должен заменить слово другим в powerpoint. Тем не менее, когда я пытаюсь запустить его, я получаю сообщение об ошибке 429 «ActiveX компонент не может создать объект», но я не знаю почему. Вот код:

Sub pres()

    Dim PowerPointApp As Object
    Set PowerPointApp = CreateObject("PowerPoint.Application")

    Dim myPres As Object
    Set myPres = PowerPointApp.Presentations.Open("C:\Users\NAME\Desktop\PRESVBA\Pres.pptx")

    Dim sld As Slide
    Set sld = ActivePresentation.Slides(3)
    Dim shp As Shape

    For Each shp In sld.Shapes
    If shp.HasTextFrame Then
        If shp.TextFrame.HasText Then
            shp.TextFrame.TextRange.Text = Replace(shp.TextFrame.TextRange.Text, "Montant", "Amount")
     End If
    End If
    Next shp
End Sub

1 Ответ

0 голосов
/ 05 марта 2020

Я думаю, что вы пытаетесь обновить слайды из Excel, если так, пожалуйста, следуйте инструкциям

В Excel vba, go в Инструменты> Ссылки> проверить библиотеку объектов Microsoft PowerPoint 16.0 (для Office 2019), вы найдете аналогичный, если версия Office ниже. Нажмите OK

Код ниже

Sub pres()

    Dim PowerPointApp As Object
    Set PowerPointApp = CreateObject("PowerPoint.Application")

    Dim myPres As Object
    Set myPres = PowerPointApp.Presentations.Open("C:\Personal\test\Presentation1.pptx")

    Dim sld As PowerPoint.Slide '<- change here
    Set sld = myPres.Slides(1) '<- number in brackets indicate the slide number
    Dim shp As PowerPoint.Shape '<- change here

    For Each shp In sld.Shapes
        If shp.HasTextFrame Then
            If shp.TextFrame.HasText Then
                shp.TextFrame.TextRange.Text = Replace(shp.TextFrame.TextRange.Text, "Montant", "Amount")
            End If
        End If
    Next shp
End Sub

Пожалуйста, отметьте это как ответ, если это решит боль:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...