Я намерен открыть существующую презентацию PowerPoint вместе с существующей книгой Excel и затем запустить макрос VBA из Excel, который обновит соответствующие значения в PowerPoint.Обновление существующей PowerPoint из данных в Excel
Для этого я определил имя формы соответствующих текстовых полей, которые я хочу обновить в PowerPoint, выделив конкретное текстовое поле и используя Format -> Align
. Затем я создал 3 колонки в Excel со значениями:
Slide index Shape name Value
1 Title 2 =CONCATENATE("REPORT ";YEAR(TODAY()))
1 Placeholder for date1 =TODAY()
Я использую макрос (который я, к сожалению, не помню с какого сайта я скопировал его):
Sub writedata()
Dim c As Object
Dim shapeslide
Dim shapename
Dim shapetext
Set ppapp = GetObject(, "Powerpoint.application")
Set pppres = ppapp.ActivePresentation
For Each c In Blad2.Range("a2:a" & Blad2.Range("a" & Rows.Count).End(xlUp).Row)
shapeslide = Blad2.Range("a" & c.Row)
shapename = Blad2.Range("b" & c.Row)
shapetext = Blad2.Range("c" & c.Row).Text
pppres.Slides(shapeslide).Shapes(shapename).TextEffect.Text = shapetext
Next
End Sub
Моя проблема заключается что Slide 1
не будет обновляться вообще в его соответствующих Shape name
. Единственное действие, которое происходит при выполнении этого макроса, состоит в том, что по какой-то причине Slide 3
имеет свой размер размером, измененный, чтобы стать размером 35 вместо размера 16. Я не понимаю, почему это происходит. Имя формы формы, размер шрифта которой изменен, не записывается в книгу Excel и не является тем же именем, что и одно из двух написанных в Excel.
Надеюсь, кто-то может пролить свет на это.
Не может быть вашей проблемой, поскольку вы можете использовать фигуры, а не текстовые поля. Но пытались ли вы писать данные в текстовое поле, которое вы хотите использовать: .TextFrame.TextRange = "ТЕКСТ ДЛЯ НАСЕЛЕНИЯ/ПЕРЕМЕННОГО" – iamstrained