Регулировка размера узлов 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
Другие вопросы по тегам