如何在Word for Mac中通过VBA为图片设置边框?
Mac版Word VBA设置嵌入式图片边框无响应问题解决方案
问题根因
Mac版Word的VBA对象模型存在跨平台实现差异,针对InlineShapes集合下的单条边框Borders(wdBorderX)属性直接赋值时,会被系统静默丢弃,不会触发报错也不会生效,这是Mac端Office的已知兼容问题,Windows版Office无此缺陷。
错误代码5843的触发原因:当边框的LineStyle属性值为0(无边框状态)时,VBA不允许修改该边框的宽度、颜色等附属属性,赋值操作被静默丢弃后LineStyle仍为0,后续修改其他属性就会触发该错误。
可行解决方案
方案1:先启用整体边框集合再调整单条属性
先开启形状的整体边框开关,再单独配置各边参数,即可避免赋值被静默丢弃:
' 选中目标嵌入式图片后执行以下代码 With Selection.InlineShapes(1) ' 先启用整体边框,解除单条边框的赋值限制 .Borders.Enable = True ' 单独设置左边框参数 .Borders(wdBorderLeft).LineStyle = wdLineStyleSingle .Borders(wdBorderLeft).LineWidth = wdLineWidth050pt .Borders(wdBorderLeft).Color = wdColorBlack ' 其他边框可参照上述格式补充 End With
方案2:使用兼容性更好的Line属性设置
如果方案1在你的Mac Word版本上仍不生效,可以改用InlineShape的Line属性设置边框,该属性在Mac端的VBA实现完整性更高:
' 选中目标嵌入式图片后执行以下代码 With Selection.InlineShapes(1).Line .Visible = msoTrue ' 先启用线条显示 .Style = msoLineSingle ' 设置线型为实线 .Weight = 0.5 ' 设置边框宽度为0.5磅 .ForeColor.RGB = RGB(0, 0, 0) ' 设置边框颜色为黑色 End With
该方案默认设置图片的全边框,如果你需要仅设置单条边的显示状态,优先使用方案1。如果需要为文档内所有嵌入式图片批量添加边框,遍历ActiveDocument.InlineShapes集合,对每个对象执行上述设置即可。
内容的提问来源于stack exchange,提问作者CharlesW
相关产品推荐
相关产品推荐

