我正在努力解决以下问题。在文档中,我有许多嵌入式图片以及一些浮动图片。我想编写一个代码,以更改其中包含图片的段落的样式。我们将此样式称为“图片”。唯一的问题是段落浮动图片,即那些图片周围带有文字的段落。在这种情况下,我希望保持样式不变。
这是在Word中的外观示例。
到目前为止,我已经编写了这样的代码:
Sub ApplyPictureStyle()
Application.ScreenUpdating = False
Dim iShp As InlineShape
For Each iShp In ActiveDocument.InlineShapes
With iShp
If .Type = wdInlineShapePicture Then .Range.Style = "Picture"
End With
Next
Application.ScreenUpdating = True
End Sub
正如我之前解释的那样,这样的代码将适用于所有图片。
是否可以重写此代码,使其适用于嵌入式图片,但同时省略浮动图片?
浮动图片是不具有“与文本内联”的换行样式的图片。屏幕快照中的所有图片都是嵌入式图片。因此,要将不同的格式应用于这些图片,您需要确定该段落是仅包含图片还是图片加文字。
您可以通过使用该Len
功能对段落文本中的字符进行计数来实现。即使图片包含替代文字,仅包含图片的段落也只能包含2个字符。
Sub ApplyPictureStyle()
Application.ScreenUpdating = False
Dim iShp As InlineShape
For Each iShp In ActiveDocument.InlineShapes
With iShp
If .Type = wdInlineShapePicture Then
If Len(.Range.Paragraphs(1).Range.Text) = 2 Then
'paragraph only contains a picture
.Range.style = "Picture"
End If
End If
End With
Next
Application.ScreenUpdating = True
End Sub