更正:图片锐化可以借助 PictureEffect类型对象,以及其.Insert(msoEffectSharpenSoften)方法来实现。不需要自行调整亮度和对比度。
一、选中图片锐化
- 选中单张或多张图片进行锐化的宏代码
' 选中图片锐化工具
Sub OnePicSharpening()
Dim sha As PictureEffect '循环过程中,sha图片对象只是接收1张图片,故为单个PictureEffect对象而不是PictureEffects合集
For Each i In Selection.InlineShapes '嵌入型图片类型
With i.Fill.PictureEffects
Set sha = .Insert(msoEffectSharpenSoften)
sha.EffectParameters(1).Value = 0.25 '锐化25%
End With
Next i
For Each i In Selection.ShapeRange '除去嵌入型图片的所有类型
With i.Fill.PictureEffects
Set sha = .Insert(msoEffectSharpenSoften)
sha.EffectParameters(1).Value = 0.25 '锐化25%
End With
Next i
End Sub
- ①文件-选项-自定义功能区-宏。左边选中OnePicSharpening的宏代码。
②右边:主选项卡-开始-新建组-重命名:锐化工具合集;
③选中OnePicSharpening,点击【添加】,OnePicSharpening添加到了【锐化工具合集】的组中,然后点击重命名,重命名为【单张锐化】
- 设定快捷键:Alt+S
选中【单张锐化】,点击【键盘快捷方式】-【自定义】,见到【文件选项卡】后,往下拉进度条,选择【宏】-【OnePicSharpening】。请按新快捷键里面输入【Alt+W】,点击指定。
二、当前文档所有图片锐化
- 当前文档所有图片进行锐化
'所有图片锐化
Sub PicSharpening()
Dim sha As PictureEffect
For i = 1 To ActiveDocument.InlineShapes.Count '.InlineShapes 指定是嵌入型图片;'0~1对应-100%~100%范围
With ActiveDocument.InlineShapes(i).Fill.PictureEffects
Set sha = .Insert(msoEffectSharpenSoften)
sha.EffectParameters(1).Value = 0.25 '锐化25%
End With
Next i
For i = 1 To ActiveDocument.Shapes.Count 'ActiveDocument.Shapes 默认是除去嵌入型图片的所有类型
With ActiveDocument.InlineShapes(i).Fill.PictureEffects
Set sha = .Insert(msoEffectSharpenSoften)
sha.EffectParameters(1).Value = 0.25 '锐化25%
End With
Next i
End Sub
- 操作同上,快捷键设定为Alt+D
宏代码参考手册:https://docs.microsoft.com/zh-tw/office/vba/api/word.shaperange
参考文章:https://cloud.tencent.com/developer/ask/sof/1421275