如何从内联形状中删除边框

时间:2013-05-16 13:29:15

标签: vba ms-word word-vba

我在VBA上使用Word 2010.

我有一些代码可以为一个正常工作的inlines形状添加边框,但我需要能够删除边框,这似乎不起作用。我搜索了这个网站,找不到任何与此相近的东西:

Mimic word borders and shading option "apply to:" (text) with vba on an inline shape

代码如下:

Sub TestAddBorders()

Dim rngShape As InlineShape

For Each rngShape In ActiveDocument.InlineShapes
    With rngShape.Range.Borders
        .OutsideLineStyle = wdLineStyleSingle
        .OutsideColorIndex = wdPink
        .OutsideLineWidth = wdLineWidth300pt
    End With
Next rngShape

End Sub

Sub TestRemoveBorders()

Dim rngShape As InlineShape

For Each rngShape In ActiveDocument.InlineShapes
    With rngShape.Range.Borders
        .OutsideLineStyle = wdLineStyleNone
    End With
Next rngShape

End Sub

我总是留下一张周围有灰色边框的图片(inlineshape)。在图片工具上使用“图片边框>无轮廓”>格式选项卡将其删除,但我可以“找到任何方法在VBA中执行此操作。 wdLineStyleNone似乎不起作用,我看不到color =“none”或linewidth =“none”的选项

谢谢。

2 个答案:

答案 0 :(得分:1)

来自MSDN:

要从对象中删除所有边框,请将Enable属性设置为False。

http://msdn.microsoft.com/en-us/library/office/ff196058.aspx

这将在您应用边框时删除边框:

Sub TestRemoveBorders()

Dim rngShape As InlineShape

For Each rngShape In ActiveDocument.InlineShapes
    With rngShape.Range.Borders

        .Enable = False
    End With
Next rngShape
End Sub

上述方法会删除边框,但不会删除。要删除行,请尝试以下操作:

With rngShape.Line
    .Visible = msoFalse
End With

答案 1 :(得分:0)

大卫的答案是正确的,但我想为以后偶然发现此问题的任何人补充。

我不希望使用Borders方法,因为我看到大多数其他人列出的方法都会在InlineShape上添加边框,并且由于David在这里的回答,我知道您可以只使用{{ 1}}个成员,就像您可以使用普通Line一样!

我知道,对于您自己也没有设置边界的人来说,这可能无法完全回答问题,但就我个人而言,这很有帮助。考虑到这一点,这里是添加和删除形状边界的方法的修订版。

Shape