我想问一下,为什么有时当我在选定的文本框中使用以下代码时,我会得到多个小数位的msgbox返回值(例如3-6位小数),有时会返回一个整数使用相同的文本框
Sub getShapeNow()
With ActiveWindow.Selection.ShapeRange(1)
MsgBox .Name
MsgBox .Width
MsgBox .Height
MsgBox .Top
MsgBox .Left
End With
End Sub
答案 0 :(得分:1)
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
: