0

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

我被要求将边框应用于文本:例如:在此处输入图像描述

我在图像上所做的是选择整个表格,左上角有一个小十字,右键单击鼠标,选择“边框和阴影”选项,最后格式化我的边框,如下所示:.5pt 框单线样式。所有这一切都很好,问题是红色框在哪里,我如何用 VBA 模仿“应用到:文本”选项。当您选择该选项时,它会做什么?当图像表现得像 inlineShape 时,你甚至如何将边框设置为文本有没有办法做到这一点?

注意:如您所见,它是 Office Word 2010

编辑:

有什么方法可以不使用Selection吗?问题是我的 sub 是这样工作的:For Each inlineShape in ActiveDocument.InlineShapes要获取文档中的所有形状,或者我可以使用 For Each 将所有形状存储在一个变量中并将该变量视为一个Selection?我这样做是为了在对文档进行多次更改后,子会触发并检查文档中的每个屏幕截图,以便即使进行了更改也保持一致。

4

1 回答 1

0

大多数情况下,Range在 Word 中我们会想到文本。但是,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 有点不同,但与文本几乎相同。我希望它有点帮助。

于 2013-04-03T06:58:02.273 回答