我有一个宏,它有一个表,第一行是该表的名称,所有后续行都是粘贴的打印屏幕。宏所做的是,当粘贴新的打印屏幕时,图像会调整为特定大小,并添加050pt的边框。
我被问到边框应用于文字:例如:
我在图像上做的是选择整个表格左上角的小十字架,右键单击鼠标,选择“边框和阴影”选项,最后格式化我的边框如下:.5pt Box单线风格。所有这一切都很好问题是红盒子所在的位置,我如何模仿VBA的“应用于:文本”选项。当您选择该选项时它会做什么?如果图像的行为类似于inlineShape,你怎么能将边框设置为文本?有什么方法可以做到这一点吗?
注意:正如您可以看到它的Office Word 2010
编辑:
有没有办法不使用Selection
?问题是我的子工作方式如下:For Each inlineShape in ActiveDocument.InlineShapes
要获取文档中的所有形状,还是可以使用For Each将所有形状存储在变量中并将该变量视为Selection
?我这样做是为了在对文档进行一些更改之后,子文件会触发并检查文档中的每个屏幕,以便即使进行了更改也能保持一致。
答案 0 :(得分:0)
大多数情况下,在Word中考虑Range
我们会想到文本。但是,InlineShapes
是文档中Range
个对象的一部分。它们 - text和InlineShapes都可以有边框。我的简单想法是在您选择一些文本和/或InlineShape
后尝试使用此代码。
Sub BorderingText_InLnShapes()
With Selection.Range
.Borders(wdBorderTop).LineStyle = wdLineStyleSingle
.Borders(wdBorderLeft).LineStyle = wdLineStyleSingle
.Borders(wdBorderRight).LineStyle = wdLineStyleSingle
.Borders(wdBorderBottom).LineStyle = wdLineStyleSingle
End With
End Sub
使用宏录制器时,您可以使用类似的宏来引用Font
对象:
Sub Alternative()
'based on recorder
With Selection.Font
With .Borders(1)
.LineStyle = wdLineStyleSingle
.LineWidth = wdLineWidth050pt
.Color = wdColorAutomatic
End With
.Borders.Shadow = False
End With
End Sub
上面的代码与InlineShape略有不同,但与文本几乎相同。 我希望它有点帮助。