Регулировка размера узлов SmartArt с помощью VBA для PowerPoint
Мне интересно, есть ли способ изменить ширину / высоту каждого отдельного узла объекта SmartArt с помощью VBA в PowerPoint 2010.
Я попытался сделать это, используя следующий код, но в результате я получил сообщение об ошибке:
ActivePresentation.Slides(i).Shapes(2).SmartArt.AllNodes(j).Shapes.Height = 100
Я нашел ссылку на аналогичный вопрос с Word 2010, и кажется, что размер не может быть изменен с помощью VBA, так как свойство высоты доступно только для чтения. http://www.excelforum.com/word-programming-vba-macros/860581-word-2010-smartart-vba-how-to-change-size.html
Если кто-нибудь знает, есть ли возможный способ сделать это в VBA, пожалуйста, дайте мне знать. Спасибо!
3 ответа
Вы можете использовать масштабирование, а затем использовать свойство width для вычисления коэффициента масштабирования. Недостатком этого метода является то, что он влияет на размер объекта. Я использовал конвертировать в формы, чтобы справиться с этим. SmartArts больно.
Node.Shapes.ScaleWidth Application.CentimetersToPoints(4.5) / Node.Shapes.Height, msoFalse
Приведенный выше код увеличит вашу ширину до 4,5 см.
Вы можете изменить это, масштабируя это (я думаю):
ActivePresentation.Slides(i).Shapes(2).SmartArt.AllNodes(j).Shapes.ScaleHeight 1.75, msoFalse, msoScaleFromTopToLeft
Это не полный ответ, но надеюсь, что это будет полезно. Кажется, что вы не можете изменить ширину или высоту узла в отдельности. Но вы можете сделать узел больше или меньше таким образом:
'to enlarge
ActivePresentation.Slides(i).Shapes(2).SmartArt.AllNodes(j).Larger
'to make it smaller
ActivePresentation.Slides(i).Shapes(2).SmartArt.AllNodes(j).Smaller