Word VBA:批量调整图片后为内嵌形状加空格、每行3图后加回车
Word批量调整图片尺寸+三列排版VBA实现
你原有代码可正常完成文档内所有嵌入型图片的统一尺寸调整,将图片统一设置为2.21英寸边长的正方形,原有代码如下:
Sub Resize_All_Pictures() ' ' Resize_All_Pictures Macro ' ' mytext = " " Dim iShape As InlineShape For Each iShape In ActiveDocument.InlineShapes With iShape .Width = InchesToPoints(2.21) .Height = InchesToPoints(2.21) End With Next iShape End Sub
需要新增的排版规则如下:
- 每张图片末尾添加1个半角空格
- 每累计排列3张图片后插入回车换行,实现每行3张图的排版效果
直接替换为以下修改后的完整代码运行即可,兼容原有尺寸调整逻辑,同时自动完成排版:
Sub Resize_And_Arrange_Pictures() Dim iShape As InlineShape Dim picCounter As Long picCounter = 0 For Each iShape In ActiveDocument.InlineShapes With iShape ' 统一调整图片尺寸,关闭锁定纵横比避免尺寸不生效 .LockAspectRatio = msoFalse .Width = InchesToPoints(2.21) .Height = InchesToPoints(2.21) ' 定位光标到当前图片之后 .Select Selection.Collapse Direction:=wdCollapseEnd picCounter = picCounter + 1 ' 按计数判断插入内容 If picCounter Mod 3 = 0 Then ' 满3张插入段落回车 Selection.TypeParagraph Else ' 不满3张插入单个空格 Selection.TypeText Text:=" " End If End With Next iShape End Sub
运行提示:该代码仅处理嵌入型版式的图片,如果你的文档中有浮动版式的图片,请先全选文档将所有图片版式改为嵌入型后再运行,避免漏处理。
内容的提问来源于stack exchange,提问作者vognog
相关产品推荐
相关产品推荐

