如何使用Word的宏对图片进行批量操作:裁切、对比度、大小【效率百倍】

761 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一、如何添加宏

image.png

image.png

image.png

image.png

保存后,下次直接点运行就行了

image.png

二、宏代码

1、批量裁剪图片

Sub caijian()
percentToCropB = 20 '请修改参数
percentToCropL = 33 '请修改参数
percentToCropR = 33 '请修改参数
percentToCropT = 20 '请修改参数
Dim n '图片个数
On Error Resume Next '忽略错误请修改参数
For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片
With ActiveDocument.InlineShapes(n).PictureFormat
origHeight = ActiveDocument.InlineShapes(n).Height
origWidth = ActiveDocument.InlineShapes(n).Width
cropPointsB = origHeight * percentToCropB / 100
cropPointsL = origWidth * percentToCropL / 100
cropPointsR = origHeight * percentToCropR / 100
cropPointsT = origWidth * percentToCropT / 100
.CropBottom = cropPointsB
.CropLeft = cropPointsL
.CropRight = cropPointsR
.CropTop = cropPointsT
End With
Next n
For n = 1 To ActiveDocument.Shapes.Count 'Shapes类型图片
With ActiveDocument.Shapes(n).PictureFormat
origHeight = ActiveDocument.Shapes(n).Height
origWidth = ActiveDocument.Shapes(n).Width
cropPointsB = origHeight * percentToCropB / 100
cropPointsL = origWidth * percentToCropL / 100
cropPointsR = origHeight * percentToCropR / 100
cropPointsT = origWidth * percentToCropT / 100
.CropBottom = cropPointsB
.CropLeft = cropPointsL
.CropRight = cropPointsR
.CropTop = cropPointsT
End With
Next n
End Sub

2、批量设置图片对比度

Sub setpicsize() '设置图片大小
Dim n '图片个数
On Error Resume Next '忽略错误
For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes 类型 图片(n 从第几张开始)
ActiveDocument.InlineShapes(n).PictureFormat.Brightness = 0.4 '将图片的亮度设置为40
ActiveDocument.InlineShapes(n).PictureFormat.Contrast = 0.75  '将图片的对比度设置为75%
Next n
End Sub

3、批量设置图片大小

Sub setpicsize() '设置图片大小
Dim n '图片个数
On Error Resume Next '忽略错误
For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes 类型 图片(n 从第几张开始)
ActiveDocument.InlineShapes(n).Height = 7.7 * 28.35 '设置图片高度为 5cm (1cm等于28.35px)
ActiveDocument.InlineShapes(n).Width = 10.2 * 28.35 '设置图片宽度 4cm
Next n
End Sub

4、批量设置图片对比度和大小

Sub setpicsize() '设置图片大小
Dim n '图片个数
On Error Resume Next '忽略错误
For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes 类型 图片(n 从第几张开始)
ActiveDocument.InlineShapes(n).Height = 7.7 * 28.35 '设置图片高度为 5cm (1cm等于28.35px)
ActiveDocument.InlineShapes(n).Width = 10.2 * 28.35 '设置图片宽度 4cm
ActiveDocument.InlineShapes(n).PictureFormat.Brightness = 0.4 '将图片的亮度设置为40
ActiveDocument.InlineShapes(n).PictureFormat.Contrast = 0.75  '将图片的对比度设置为75%
Next n
End Sub