裁剪图片本不是Excel应该做的事情,但是VBA提供了裁剪图片的一些简单方法,由于对图片格式的处理有许多内容,本节就拿图片裁剪来进行一个学习。

如下图所示,可实现对图片的裁剪操作。

首先明白一点,如何获得图片,以及针对性进行裁剪。

获得图片对象的方法是利用Shape对象的PictureFormat属性返回。

返回一个PictureFormat对象之后,利用Crop属性返回一个Crop对象。

然后,利用如下图属性进行裁剪设置。

这个返回有点麻烦,实际上进行了两次递归返回对象,最终得到Crop对象。

  1. Shape 对象
  2. PictureFormat 对象
  3. 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---