我有以下代码来“编码”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
效果很好,但我认为我无法获得工作边距,因为我遗漏了删除“与整个表格相同”属性的内容。
代码运行后,表属性如下所示:
也许我只是设置了边距错误,这会自动消失?我错过了什么?
答案 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
将关闭“与整个表格相同” “财产。
度过愉快的一天。