"Compile Error : Argument not optional" Error when trying to retrieve Shape.ScaleHeight value in VBA
"Compile Error : Argument not optional" Error when trying to retrieve Shape.ScaleHeight value in VBA
我想使用 VBA 在 PPT 中访问幻灯片中显示的图像的属性(例如:高度、宽度、缩放高度、缩放宽度)。
但是,无法检索 'ScaleHeight'、'ScaleWidth' 或 images.It 的值会引发以下错误:
“编译错误:参数不是可选的”
我们如何检索图像的这两个值,因为我们可以使用 Shape.Height
获取高度
这是我的代码
Select Case Shp.Type
Case msoPicture
Debug.Print Shp.Id
Debug.Print Shp.Height
Debug.Print Shp.Width
Debug.Print Shp.ScaleHeight
Debug.Print Shp.ScaleWidth
End Select
ScaleHeight/ScaleWidth 不是属性,它们是调整形状大小时使用的方法。目前还不清楚你希望做什么;把这一点说清楚可能是个好主意。
这可能有帮助,来自旧版本的 PPT/VBA 帮助。
PowerPoint 开发人员参考
Shape.ScaleHeight 方法
按指定系数缩放形状的高度。
语法
expression.ScaleHeight(因子,RelativeToOriginalSize,fScale)
expression 表示 Shape 对象的变量。
参数
名称Required/Optional数据类型说明
Factor Required Single 指定调整形状大小后形状的高度与当前或原始高度之间的比率。例如,要使矩形增大 50%,请为此参数指定 1.5。
RelativeToOriginalSize 必需 MsoTriState 指定形状是相对于其当前大小还是原始大小进行缩放。
fScale 可选 MsoScaleFrom 缩放形状时保持其位置的形状部分。
备注
对于图片和 OLE 对象,您可以指明是要相对于其原始大小还是相对于其当前大小来缩放形状。图片和 OLE 对象以外的形状总是相对于它们的当前高度缩放。
RelativeToOriginalSize 参数值可以是下列 MsoTriState 常量之一。仅当指定形状为图片或 OLE 对象时,才可以为此参数指定 msoTrue。
常量说明
msoFalse 相对于当前大小缩放形状。
msoTrue 相对于原始大小缩放形状。
fScale 参数值可以是下列 MsoTriState 常量之一。默认值为 msoScaleFromTopLeft。
msoScaleFromBottomRight
msoScaleFromMiddle
msoScaleFromTopLeft
例子
此示例将 myDocument 上的所有图片和 OLE 对象缩放到其原始高度和宽度的 175%,并将所有其他形状缩放到其当前高度和宽度的 175%。
Set myDocument = ActivePresentation.Slides(1)
For Each s In myDocument.Shapes
Select Case s.Type
Case msoEmbeddedOLEObject, msoLinkedOLEObject, _
msoOLEControlObject, msoLinkedPicture, msoPicture
s.ScaleHeight 1.75, msoTrue
s.ScaleWidth 1.75, msoTrue
Case Else
s.ScaleHeight 1.75, msoFalse
s.ScaleWidth 1.75, msoFalse
End Select
Next
我想使用 VBA 在 PPT 中访问幻灯片中显示的图像的属性(例如:高度、宽度、缩放高度、缩放宽度)。
但是,无法检索 'ScaleHeight'、'ScaleWidth' 或 images.It 的值会引发以下错误: “编译错误:参数不是可选的”
我们如何检索图像的这两个值,因为我们可以使用 Shape.Height
获取高度这是我的代码
Select Case Shp.Type
Case msoPicture
Debug.Print Shp.Id
Debug.Print Shp.Height
Debug.Print Shp.Width
Debug.Print Shp.ScaleHeight
Debug.Print Shp.ScaleWidth
End Select
ScaleHeight/ScaleWidth 不是属性,它们是调整形状大小时使用的方法。目前还不清楚你希望做什么;把这一点说清楚可能是个好主意。
这可能有帮助,来自旧版本的 PPT/VBA 帮助。
PowerPoint 开发人员参考 Shape.ScaleHeight 方法 按指定系数缩放形状的高度。
语法 expression.ScaleHeight(因子,RelativeToOriginalSize,fScale)
expression 表示 Shape 对象的变量。
参数
名称Required/Optional数据类型说明 Factor Required Single 指定调整形状大小后形状的高度与当前或原始高度之间的比率。例如,要使矩形增大 50%,请为此参数指定 1.5。 RelativeToOriginalSize 必需 MsoTriState 指定形状是相对于其当前大小还是原始大小进行缩放。 fScale 可选 MsoScaleFrom 缩放形状时保持其位置的形状部分。
备注
对于图片和 OLE 对象,您可以指明是要相对于其原始大小还是相对于其当前大小来缩放形状。图片和 OLE 对象以外的形状总是相对于它们的当前高度缩放。
RelativeToOriginalSize 参数值可以是下列 MsoTriState 常量之一。仅当指定形状为图片或 OLE 对象时,才可以为此参数指定 msoTrue。
常量说明
msoFalse 相对于当前大小缩放形状。
msoTrue 相对于原始大小缩放形状。
fScale 参数值可以是下列 MsoTriState 常量之一。默认值为 msoScaleFromTopLeft。
msoScaleFromBottomRight msoScaleFromMiddle msoScaleFromTopLeft
例子 此示例将 myDocument 上的所有图片和 OLE 对象缩放到其原始高度和宽度的 175%,并将所有其他形状缩放到其当前高度和宽度的 175%。
Set myDocument = ActivePresentation.Slides(1)
For Each s In myDocument.Shapes
Select Case s.Type
Case msoEmbeddedOLEObject, msoLinkedOLEObject, _
msoOLEControlObject, msoLinkedPicture, msoPicture
s.ScaleHeight 1.75, msoTrue
s.ScaleWidth 1.75, msoTrue
Case Else
s.ScaleHeight 1.75, msoFalse
s.ScaleWidth 1.75, msoFalse
End Select
Next