裁剪图片本不是Excel应该做的事情,但是VBA提供了裁剪图片的一些简单方法,由于对图片格式的处理有许多内容,本节就拿图片裁剪来进行一个学习。
如下图所示,可实现对图片的裁剪操作。
首先明白一点,如何获得图片,以及针对性进行裁剪。
获得图片对象的方法是利用Shape对象的PictureFormat属性返回。
返回一个PictureFormat对象之后,利用Crop属性返回一个Crop对象。
然后,利用如下图属性进行裁剪设置。
这个返回有点麻烦,实际上进行了两次递归返回对象,最终得到Crop对象。
- Shape 对象
- PictureFormat 对象
- Crop 对象
总之,我们要操作的是一个Shape对象的图片,有一个对象是针对这个图片进行裁剪操作的,这个对象就是Crop。
Crop 裁剪对象 | |
名称 | 说明 |
Application | 获取宿主应用程序的 Application 对象。 只读。 |
Creator | 获取一个 32 位整数,该整数指示创建 Crop 对象的应用程序。 只读。 |
PictureHeight | 获取或设置要裁剪的图像的高度。 读/写。 |
PictureOffsetX | 获取或设置要裁剪的图像的 x 轴偏移量。 读/写。 |
PictureOffsetY | 获取或设置要裁剪的图像的 y 轴偏移量。 读/写。 |
PictureWidth | 获取或设置要裁剪的图像的宽度。 读/写。 |
ShapeHeight | 获取或设置用于裁剪图像的形状的高度。 读/写。 |
ShapeLeft | 获取或设置用于裁剪图像的形状左侧的位置。 读/写。 |
ShapeTop | 获取或设置用于裁剪图像的形状顶部的位置。 读/写。 |
ShapeWidth | 获取或设置用于裁剪图像的形状的宽度。 读/写。 |
重点看一下代码:
Private Sub SetCrop()
Dim xShape As Object
Set xShape = Me.Shapes(1)'返回一个Shape对象,或图片
Dim xCrop As Object, xl As Long, xt As Long
xl = 10'裁剪左边宽度
xt = 10'裁剪顶部宽度
Set xCrop = xShape.PictureFormat.Crop'返回一个Crop对象
With xCrop'设置裁剪格式
.ShapeLeft = xShape.Left + xl '裁剪左边
.ShapeTop = xShape.Top + xt '裁剪顶部
.PictureHeight = .PictureHeight - 2 * xl
.PictureWidth = .PictureWidth - 2 * xt
.ShapeHeight = .PictureHeight - 2 * xl '裁剪高度
.ShapeWidth = .PictureWidth - 2 * xt '裁剪宽度
End With
End Sub
裁剪对象应用很少,一般情况下,在表格中可以自由裁剪,如果使用编程解决图片问题,那就需要好好学习一下Crop对象的使用方法了。
欢迎关注、收藏
---END---