word批量操作图片到指定位置改变大小改变版式

直接上教程

环境:winx office2019+
语言:vba+word
第一步:插入图片,这里不再赘述
重要代码

调整尺寸

Sub FormatPics()
Dim iSha As InlineShape
For Each iSha In ActiveDocument.InlineShapes
If iSha.Type = wdInlineShapePicture Then
iSha.LockAspectRatio = msoFalse
iSha.Width = CentimetersToPoints(2.85)
iSha.Height = CentimetersToPoints(2.85)
End If
Next
End Sub

其中数字代表图片尺寸大小单位为cm

Sub 每页一个图片()
'
' 每页一个图片 宏
'
'
Dim iSha As InlineShape
For Each iSha In ActiveDocument.InlineShapes
If iSha.Type = wdInlineShapePicture Then
    Selection.InsertBreak Type:=wdPageBreak
    Selection.MoveRight Unit:=wdCharacter, Count:=1
 End If
Next
End Sub

将图片插入分页符,实现每页上一张图片的功能

修改图片版式

Sub 图片版式转换()
    Dim oShape As Variant, shapeType As WdWrapType
    On Error Resume Next
    If MsgBox("Y将图片由嵌入式转为浮动式,N将图片由浮动式转为嵌入式", 68) = 6 Then
        shapeType = Val(InputBox(Prompt:="请输入图片版式:0=四周型,1=紧密型, " & vbLf & _
                                         "3=衬于文字下方,4=浮于文字上方", Default:=0))
        For Each oShape In ActiveDocument.InlineShapes
        
            oShape.Select
          
            Set oShape = oShape.ConvertToShape
            With oShape
                Select Case shapeType
                Case 0, 1
                    .WrapFormat.Type = shapeType
                Case 3
                    .WrapFormat.Type = 3
                    .ZOrder 5
                Case 4
                    .WrapFormat.Type = 3
                    .ZOrder 4
                Case Else
                    Exit Sub
                End Select
                .WrapFormat.AllowOverlap = False    '不允许重叠
            End With
        Next
    Else
        For Each oShape In ActiveDocument.Shapes
            oShape.ConvertToInlineShape
        Next
    End If
End Sub

关键步骤

将文档保存为【.doc】格式,因为docx不支持选择多个对象功能;

msomso

如何调出这个菜单?

msomso

msomso

msomso

选择完后,统一修改图片位置,干什么都可以了!