Сейчас я работаю над автоматизацией «слайдов презентации PowerPoint» из данных Excel.В соответствии с требованием, я должен создать «динамический код», который может обновлять «Заголовок» слайда, однако, имея в виду, что если текст достаточно большой , то «высота» блокадолжно быть double и «размещение» поля должно быть изменено .
В соответствии с моим пониманием, я попробовал логику «Длина» текста, а затемизмените поля 'height' и 'location' соответственно.
Выдержки из моего Excel VBA кода
Dim powApp As PowerPoint.Application
Dim powPres As PowerPoint.Presentation
Dim powSlide As PowerPoint.Slide
Set powApp = New PowerPoint.Application
Set powSlide = powPres.Slides(2)
Set powShape = powSlide.Shapes(3)
'cell W7 contains the length of the text of the Title
If Sheets("sht1").Range("W7").Value > 45 Then
With powShape
.Top = 13
.Height = 57.5
End With
ElseIf Sheets("sht1").Range("W7").Value <= 45 Then
With powShape
.Top = 20
.Height = 32
End With
End If
Но проблема с этимкод состоит в том, что если у нас есть такие символы (в тексте заголовка), которые занимают больше места, однако не увеличивают длину, например, «M» или «W» (и наоборот для символа «I» или «T» и т. д.),Наличие большего количества этих символов автоматически переходит на следующую строку.
Например:
- ITMS% в 2016 году. Показатели продаж составили> 50%
В идеале 1 и 2 должны быть в одной строке тайтла, так как они оба имеют len <45, но так как W, M, W иX занимает больше места. 2-й текст автоматически смещается на следующую строку, но высота блока и его размещение отсутствуют. </p>
Так что мой код не полностью динамический или автоматический: (* 1032 *
Впредь, не могли бы вы предложитькод, через который высота и размещение изменяются более подходящим образом