怎么用vba将word 中所有嵌入型图片的段落调整为无缩进?

怎么用vba将word 中所有嵌入型图片的段落调整为无缩进?
请写下代码,谢谢。


Sub RemoveImageIndentation()
    ' 声明变量
    Dim shp As InlineShape
    Dim para As Paragraph
    
    ' 遍历文档中的每个内嵌形状对象
    For Each shp In ActiveDocument.InlineShapes
        ' 检查对象是否是图片
        If shp.Type = wdInlineShapePicture Then
            ' 遍历图片所在的段落,并将段落的缩进设置为0
            For Each para In shp.Range.Paragraphs
                para.LeftIndent = 0
            Next para
        End If
    Next shp
End Sub
  1. 打开需要处理的 Word 文档;
  2. 按下 Alt + F11 快捷键打开 Visual Basic Editor;
  3. 在左侧的 Project Explorer 窗口中,双击需要操作的文档,打开该文档的代码窗口;
  4. 将上述代码复制粘贴到代码窗口中;
  5. 按下 F5 键执行代码,或者在菜单栏中点击 Run -> Run Sub/UserForm

该回答引用GPTᴼᴾᴱᴺᴬᴵ
以下是可以将Word文档中所有嵌入型图片的段落调整为无缩进的VBA代码:

Sub RemoveIndentationFromInlineShapes()
    Dim shp As InlineShape
    For Each shp In ActiveDocument.InlineShapes
        If shp.Type = wdInlineShapeEmbeddedOLEObject Then
            With shp.Range.ParagraphFormat
                .LeftIndent = 0
                .FirstLineIndent = 0
            End With
        End If
    Next shp
End Sub

这个代码将遍历文档中的每一个嵌入型图片,并检查其类型是否为wdInlineShapeEmbeddedOLEObject,也就是嵌入型OLE对象。如果是,就将其段落格式的左缩进和首行缩进都设为0,达到无缩进的效果。你可以直接将上述代码复制到VBA编辑器中,并在Word文档中运行。