在内联形状上使用vba模仿单词边框和着色选项“应用于:”(文本)

时间:2013-04-02 17:18:03

标签: border word-vba

我有一个宏,它有一个表,第一行是该表的名称,所有后续行都是粘贴的打印屏幕。宏所做的是,当粘贴新的打印屏幕时,图像会调整为特定大小,并添加050pt的边框。

我被问到边框应用于文字:例如:enter image description here

我在图像上做的是选择整个表格左上角的小十字架,右键单击鼠标,选择“边框和阴影”选项,最后格式化我的边框如下:.5pt Box单线风格。所有这一切都很好问题是红盒子所在的位置,我如何模仿VBA的“应用于:文本”选项。当您选择该选项时它会做什么?如果图像的行为类似于inlineShape,你怎么能将边框设置为文本?有什么方法可以做到这一点吗?

注意:正如您可以看到它的Office Word 2010

编辑:

有没有办法不使用Selection?问题是我的子工作方式如下:For Each inlineShape in ActiveDocument.InlineShapes要获取文档中的所有形状,还是可以使用For Each将所有形状存储在变量中并将该变量视为Selection?我这样做是为了在对文档进行一些更改之后,子文件会触发并检查文档中的每个屏幕,以便即使进行了更改也能保持一致。

1 个答案:

答案 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略有不同,但与文本几乎相同。 我希望它有点帮助。