删除与整个表格相同的"" Outlook表中的属性

时间:2015-04-14 16:20:23

标签: vba ms-word word-vba

我有以下代码来“编码”Outlook消息中的代码块:

On Error GoTo Catch
Dim oSelection As Word.Selection
Set oSelection = Application.ActiveInspector.CurrentItem.GetInspector.WordEditor.Application.Selection

With oSelection
    With .Font
        .Name = "Courier New"
        '.Color = 10027008 '13369344
        .Size = 10
    End With
End With

Dim oTable As Word.Table
Set oTable = oSelection.ConvertToTable(, 1, 1)
With oTable
    .Borders.OutsideLineStyle = wdLineStyleDot
    .Shading.BackgroundPatternColor = wdColorGray05
    .TopPadding = InchesToPoints(0.1)
    .BottomPadding = InchesToPoints(0.1)
    .LeftPadding = InchesToPoints(0.2)
    .RightPadding = InchesToPoints(0.05)
End With

效果很好,但我认为我无法获得工作边距,因为我遗漏了删除“与整个表格相同”属性的内容。

代码运行后,表属性如下所示:

enter image description here

也许我只是设置了边距错误,这会自动消失?我错过了什么?

2 个答案:

答案 0 :(得分:0)

Word提供了一个宏录制器,允许在后台生成VBA代码。尝试在Word中记录VBA宏,并查看应该使用哪些属性。有关详细信息,请参阅Record or run a macro

答案 1 :(得分:0)

我的不好,

事实证明,设置填充关闭此属性的方法。问题实际上是我在MS Word中进行宏录制时复制和粘贴的InchesToPoints调用。

然而 InchesToPoints /不是可用的方法,我的代码的第一行隐藏了该问题:

On Error Goto Catch

(现在拍我!)

因此,InchesToPoints失败,这意味着填充实际上并未设置。我制作了自己的InchesToPoints方法:

Public Function InchesToPoints(ByVal dInches As Double) As Double
    Const INCHES_TO_POINTS = 72#
    InchesToPoints = dInches * INCHES_TO_POINTS
End Function

现在一切正常。

此问题的实际正确答案 设置表格填充(例如,.TopPadding = 7.2 将关闭“与整个表格相同” “财产。

度过愉快的一天。