У меня проблема с этим кодом, он должен пройти через все фигуры на всех слайдах и заменить их, но он просто падает в определенный момент. Сначала вам нужно вставить слово, которое вы хотите найти, а затем слово, которым вы хотите заменить его. Как только вы вставляете это, он падает, иногда пропуская несколько слов, заменяя их, а другие нет. Кто-нибудь знает в чем проблема? Код следующий:
Sub Reemplazar()
Dim sld As Slide
Dim shp As Shape
Dim ShpTxt As TextRange
Dim TmpTxt As TextRange
Dim Findword As String
Dim ReplaceWord As String
Findword = InputBox("Ingrese palabra que se quiere reemplazar")
ReplaceWord = InputBox("Ingrese palabra por la que se va a reemplazar")
For Each sld In ActivePresentation.Slides
For Each shp In sld.Shapes
Set ShpTxt = shp.TextFrame.TextRange
If ShpTxt <> "" Then
Set ShpTxt = shp.TextFrame.TextRange
Set TmpTxt = ShpTxt.Replace( _
FindWhat:=Findword, _
Replacewhat:=ReplaceWord, _
WholeWords:=False)
Do While Not TmpTxt Is Nothing
Set ShpTxt = ShpTxt.Characters(TmpTxt.Start + TmpTxt.Length, ShpTxt.Length)
Set TmpTxt = ShpTxt.Replace( _
FindWhat:=Findword, _
Replacewhat:=ReplaceWord, _
WholeWords:=False)
Loop
End If
Next shp
Next sld
End Sub
Программа останавливается и запрашивает отладку, выдавая сообщение «Ошибка '-2147024809 (80070057)» и выделяя строку «Set ShpTxt = shp.TextFrame.TextRange»