Powerpoint
, очевидно, не поддерживает какую-либо ширину, а только некоторую ширину, которая основана на разрешении экрана. Таким образом, если вы попробуете
Sub GetShapeNow()
With ActiveWindow.Selection.ShapeRange(1)
.Width = 47.00147
Debug.Print .Width
End With
End Sub
Я бы увидел 47.0015
, напечатанный в ближайшем окне, так как Width
точно так же, как .00147
, не поддерживается моей резольволюцией.
Свойства являются десятичными со значениями после запятой. Если после запятой нет значений, например, 47
, а не 47.01
, VBA
записывает значение как 47
.
Проверьте это:
Sub GetShapeNow()
With ActiveWindow.Selection.ShapeRange(1)
.Width = 47
.Height = 34
.Top = 40.4
.Left = 147
Debug.Print .Name; .Width; .Height; .Top; .Left
End With
End Sub
В ближайшем окне вы видите это:
Rectangle 1 47 34 40,4 147
Обычно значение, которое возвращает Shape.Width
, относится к типу Single
: