Проблемы Shape.Height и Shape.Width в PowerPoint 2013

Я использую небольшой скрипт VBA, чтобы применить текст в фоновом режиме. Сценарий отлично работает в PowerPoint 2007 и PowerPoint 2010.

Однако в PowerPoint 2013 параметры Shape.Height и Shape.Width не действуют. Вот фрагмент кода. Любая помощь будет оценена по достоинству.

Public Sub applyWatermark()

Dim curDesign As Design
Set curDesign = ActivePresentation.Designs.Item(1)
Dim masterSlide As Master
Set masterSlide = curDesign.SlideMaster

Dim shape As shape
Set shape = masterSlide.Shapes.AddTextbox(msoShapeRectangle, 0#, 0#, 100#, 100#)

shape.TextEffect.Text = "Watermark"

' Setting height and width works fine on PPT 2010 but does not work on PPT 2013
shape.Height = 200
shape.Width = 300

shape.TextFrame2.WordWrap = msoTrue
shape.TextFrame2.WarpFormat = msoWarpFormat1
shape.Left = 200
shape.Top = 200

End Sub

person Salil Taneja    schedule 14.05.2013    source источник
comment
Вы пытались установить свойства высоты и ширины в Set shape = masterSlide.Shapes... ?? Возможно, так будет надежнее.   -  person David Zemens    schedule 01.06.2013
comment
Я разместил этот вопрос на msdn и получил обходной путь, чтобы установить для warpFormat значение msoWarpForm37, и это сработало.   -  person Salil Taneja    schedule 04.06.2013


Ответы (2)


Я считаю, что это известное ограничение для команды разработчиков MS - в некоторых случаях это просто не срабатывает правильно. Одно из предложений состоит в том, чтобы вместо этого изменить размер шрифта, но это мало поможет, если вам действительно нужен определенный размер шрифта в форме.

person Community    schedule 31.05.2013
comment
Верно. .height (и ширина, сверху и слева, если уж на то пошло) — это единственные места, где я постоянно получаю такого рода ошибки, они просто не сработают, если вы не пройдете через F8. У меня было это на TextBoxes, ChartObject.PlotArea и т. д. Если я правильно помню, в большинстве случаев, если вы Select формируете, эти свойства будут установлены правильно. Я ненавижу Select, так как его обычно можно избежать, но это единственное место, где, я думаю, мне нужно было его использовать. - person David Zemens; 01.06.2013
comment
Select - подходящий обходной путь - я даже не думал об этом. - person ; 03.06.2013

Это проблема с PowerPoint 2013.

Обходной путь - установить

Myshape.TextFrame2.WarpFormat = msoWarpFormat37

Обходной путь представлен на странице http://social.msdn.microsoft.com/Forums/en-US/isvvba/thread/2c1cf339-aa90-4d82-9475-0ff5f49ac1b1/.

person Salil Taneja    schedule 07.06.2013