vba - 将图片样式应用于Word文档中的所有图片

标签 vba ms-word ms-office

是否有一种简单的方法可以主动或追溯地将“图片样式”应用于存储在 Word 文档中的所有图像?

我想将“中心阴影矩形”图片样式应用于添加到文档中的所有图像,而不对它们进行一一更改。

最佳答案

图片风格的概念只存在于UI层面。要将其应用到图像,您必须检查 UI 中样式的属性并使用 VBA 将它们一一应用:

Sub FormatPictures()

    Dim oInlineShape As inlineShape
    For Each oInlineShape In ActiveDocument.InlineShapes
        ApplyPictureStyleToInlineShape oInlineShape
    Next

    Dim oShape As Shape
    For Each oShape In ActiveDocument.Shapes
        ApplyPictureStyleToShape oShape
    Next


End Sub

Sub ApplyPictureStyleToInlineShape(shape As inlineShape)

    ' borders
    shape.Borders.Enable = False

    ' fill
    shape.Fill.Visible = msoFalse

    ' line
    shape.Line.Visible = msoFalse

    ' shadow
    shape.Shadow.Style = msoShadowStyleOuterShadow
    shape.Shadow.Type = msoShadow21
    shape.Shadow.ForeColor = WdColor.wdColorBlack

    shape.Shadow.Transparency = 0.3
    shape.Shadow.Size = 100
    shape.Shadow.Blur = 15
    shape.Shadow.OffsetX = 0
    shape.Shadow.OffsetY = 0

    ' reflection
    shape.Reflection.Type = msoReflectionTypeNone

    ' glow
    shape.Glow.Radius = 0
    shape.SoftEdge.Radius = 0

End Sub

Sub ApplyPictureStyleToShape(shape As shape)

    ' fill
    shape.Fill.Visible = msoFalse

    ' line
    shape.Line.Visible = msoFalse

    ' shadow
    shape.Shadow.Style = msoShadowStyleOuterShadow
    shape.Shadow.Type = msoShadow21
    shape.Shadow.ForeColor = WdColor.wdColorBlack

    shape.Shadow.Transparency = 0.3
    shape.Shadow.Size = 100
    shape.Shadow.Blur = 15
    shape.Shadow.OffsetX = 0
    shape.Shadow.OffsetY = 0

    ' reflection
    shape.Reflection.Type = msoReflectionTypeNone

    ' glow
    shape.Glow.Radius = 0
    shape.SoftEdge.Radius = 0

End Sub

关于vba - 将图片样式应用于Word文档中的所有图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38305617/

相关文章:

vba - 查找并删除行而不是列中的重复单元格

vba - 将图像添加到Word文档并使用VBA缩放

javascript - 我需要通过office.js删除word消息

python - 使用windows用python打开word文档

python - 如何使用Python从outlook获取突出显示(选定)的邮件?

php - 如何在 PHP 中阅读 Word、Excel 和 PDF 文档?

VBA:使用字符串常量指定范围

vba - 是什么导致 Worksheet_Activate 出现 "Automation error Unspecified error"?

c# - Office 2007+ 功能区控件中的富文本框

vba - 通过 FileSystemObject 迭代文件夹中的文件