2024年6月7日发(作者:)

需要将一篇word文档中的所有图片全部缩小比例,怎么办?一张张改太麻烦了。可以

用Word里宏命令的批量处理解决。需要注意的地方 就是注意厘米与像素的换算关系。一

般情况下1厘米=28px 。这个换算关系其实可以用计算器计算出来。计算公式为图片改变

之后的像素除以改变之后图片的大小厘米。

固定长宽篇代码

Sub setpicsize() '设置图片大小

Dim n '图片个数

On Error Resume Next '忽略错误

For n = 1 To 'InlineShapes类

型图片

Shapes(n).Height = 400 '设置图片高度

为 400px

Shapes(n).Width = 300 '设置图片宽

度 300px

Shapes(n).ent=

wdAlignParagraphCenter '设置图片居中

Next n

For n = 1 To 'Shapes类型图片

(n).Height = 400 '设置图片高度为 400px

(n).Width = 300 '设置图片宽度 300px

Next n

End Sub

说明:

1. VB语言中对图片大小的设置是以原图的长宽等比在缩放,统一设置时默认优

先对齐所有图片的“宽度”。

2. Shapes(n).ent=

wdAlignParagraphCenter '设置图片居中 可以让图片居中,Left、Right可

以分别设置左对齐、右对齐。

3. 全文如果有“手动换行符”↓(代码是^l),设置某一部分居中时会影响漆

上下部分的居中与否,因而,如果需要只对图片进行居中,则需先将全文中

的↓替换成“段落标记符”(常规回车键,代码是^p)。

4. 这里的Shapes(InlineShapes)不仅仅是指图片,也包含其它的,自选图形、

任意多边形、OLE 对象、ActiveX 控件、图片等。

5. InlineShapes类型图片与Shapes类型图片的区别有待研究。

按比例缩放篇代码

Sub setpicsize() '设置图片大小

Dim n

Dim picwidth

Dim picheight

On Error Resume Next '忽略错误

For n = 1 To 'InlineShapes类型图片

picheight = Shapes(n).Height

picwidth = Shapes(n).Width

Shapes(n).Height = picheight * 0.6 '设置高度为

0.6倍

Shapes(n).Width = picwidth * 0.6 '设置宽度为0.6

Next n

For n = 1 To 'Shapes类型图片

picheight = (n).Height

picwidth = (n).Width

(n).Height = picheight * 0.6 '设置高度为0.6倍

(n).Width = picwidth * 0.6 '设置宽度为0.6倍

Next n

End Sub