通过对PictureFormat 对象(微软链接)的以下属性的设置可以裁剪图片或者获取图片的裁剪值。裁剪单位为**“磅”**
属性 | 裁剪方向 | 读/写 |
---|---|---|
CropTop | 从上方 | 读/写 |
CropBottom | 从下方 | 读/写 |
CropLeft | 从左方 | 读/写 |
CropRight | 从右方 | 读/写 |
以下代码可以从各个方向裁剪图片10磅
Set myDocument = Worksheets(1)
With myDocument.Shapes(1).PictureFormat
.CropTop=10
.CropBottom = 10
.CropLeft=10
.CropRight=10
end with
以下代码可以获取图片的裁剪值
Set myDocument = Worksheets(1)
With myDocument.Shapes(1).PictureFormat
msgbox .CropTop
msgbox .CropBottom
msgbox .CropLeft
msgbox .CropRight
end with
在实际运用中,以下文章中的代码可以通过对选择一张已经裁剪过的图片作为样本,对工作表图片进行批量裁剪,同时将裁减好的图片放置到当前图片所在单元格左上角第一个单元格中,并设置图片大小自动适配单元格大小。
对工作表图片进行批量裁剪
·························································································································································
此外,还可以利用 PictureFormat 对象的 .Crop 属性实现图片裁剪,但是其方法较为复杂。
注: Crop 的属性情直接参考下方代码
下面的示例将一个 200 x 200 图像插入到Excel中。 然后, 它将图文框中的图像大小调整为 100 x 100,图像框架保持200 x 200 大小。 然后调整图像框架为 100 x 100,再移动图像框架的相对位置。在此期间,图像与图像框架为两个独立的对象进行位置的移动。
Sub CropImage()
With ActiveSheet
.Shapes.AddPicture "d:\myImage.png", msoFalse, msoTrue, 250, 150, 200, 200 '插入图片,设置其位置及大小
With .Shapes(1).PictureFormat.Crop
.PictureHeight = 100 '设置图像 高,图像容器大小不变
.PictureWidth = 100 '宽
.PictureOffsetX = 0 '相对起始位置的横向位移,正为右移动
.PictureOffsetY = 0 '纵向位移
.ShapeHeight = 100 '设置图像容器的 高
.ShapeWidth = 100 '宽
.ShapeLeft = 330 '相对起始位置的横向位移
.ShapeTop = 170 '纵向位移
End With
End With
End Sub