如何通过VBA宏为Word中InlineShape嵌入式图片更改颜色
Word嵌入式图片批量重新着色VBA实现方法
核心逻辑
Word里的嵌入式图片(InlineShape)只要是图片类型,就能通过PictureFormat.Color属性直接设置预设着色效果,这个属性和你截图里「图片格式」→「颜色」下拉菜单里的选项一一对应。
完整可运行宏代码
把你之前的遍历逻辑和着色代码整合起来,直接用这个宏就能批量处理:
Sub 批量给嵌入式图片改颜色() Dim 当前文档 As Document Dim 段落 As Paragraph Dim 嵌入式对象 As InlineShape Set 当前文档 = ActiveDocument ' 挨个遍历文档里的段落 For Each 段落 In 当前文档.Paragraphs ' 遍历段落里的所有嵌入式对象 For Each 嵌入式对象 In 段落.Range.InlineShapes ' 只处理图片类型的对象 If 嵌入式对象.Type = wdInlineShapePicture Then ' 这里设置为灰度,你可以换成其他效果 嵌入式对象.PictureFormat.Color = wdGrayScale ' 可选效果常量,直接替换上面的wdGrayScale就行: ' wdColorAutomatic - 还原原图颜色 ' wdPictureColorBlackAndWhite - 纯黑白 ' wdPictureColorWashout - 冲蚀效果 ' wdPictureColorSepia - 复古褐色调 End If Next 嵌入式对象 Next 段落 MsgBox "搞定!所有嵌入式图片已经改完颜色" End Sub
自定义精细调色(进阶)
如果要像界面里那样调色调、饱和度这类精细参数,用Adjustments属性就行,示例代码:
' 调色调(数值范围-100到100,对应界面的色调滑块) 嵌入式对象.PictureFormat.Adjustments(1) = 60 ' 调饱和度(数值范围-100到100,对应界面的饱和度滑块) 嵌入式对象.PictureFormat.Adjustments(2) = -40 ' 调重新着色强度(数值范围0到100,对应界面的重新着色滑块) 嵌入式对象.PictureFormat.Adjustments(3) = 80
和界面操作的对应关系
你截图里的「颜色」下拉菜单里的预设效果,都能通过上面的常量直接实现;如果要手动调参数,
Adjustments的三个索引分别对应界面里的色调、饱和度、重新着色滑块,数值和界面滑块的范围完全一致。
内容的提问来源于stack exchange,提问作者neeraja
相关产品推荐
相关产品推荐

