Код VBA для изменения определенного слова в каждом слайде Powerpoint - PullRequest
1 голос
/ 05 марта 2020

У меня есть код, который хорошо работает, чтобы заменить одно слово на другое в одном указанном c слайде. Я хотел бы знать, есть ли решение, чтобы слово заменялось другим, но на каждом слайде, а не на 1 конкретно. Вот мой код:

Sub pres2()

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

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

    Dim sld As PowerPoint.Slide 
    Set sld = myPres.Slides(3) '<- this is the only slide where change occurs
    Dim shp As PowerPoint.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

Это хорошо работает, но только меняет слово "Montant" на "Amount" на слайде 3, а не на всех слайдах, как я пытаюсь сделать

Ответы [ 2 ]

1 голос
/ 05 марта 2020

обновленный код

Sub pres2()

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

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

    Dim sld As PowerPoint.Slide
    Dim shp As PowerPoint.Shape

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

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

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

Вы можете l oop просмотреть все свои слайды, используя следующие элементы:

Dim sld As Slide   
For Each sld In ActivePresentation.Slides
     <individual slide code goes here>    
Next sld

Вы можете заменить ActivePresentation указанным объектом презентации.

Подробнее о slides объект можно найти здесь: https://docs.microsoft.com/en-us/office/vba/api/powerpoint.slides

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