我正在尝试为 Outlook 编写一个宏(从未编写过宏或 VBA),它将删除我选择的文本前后的空格。
这是我从我发现的例子中拼凑出来的:
Sub FixParagraphSpacing()
Dim objOL As Application
Dim objDoc As Object
Dim objSel As Object
Set objOL = Application
Set objDoc = objOL.ActiveInspector.WordEditor
Set objSel = objDoc.Windows(1).Selection
objSel.ParagraphFormat.SpaceBefore = 0
objSel.ParagraphFormat.SpaceAfter = 0
Set objOL = Nothing
Set objDoc = Nothing
Set objSel = Nothing
End Sub
问题是代码执行并且几乎没有任何反应。电子邮件的正文不受影响,但我无法再手动删除前后的间距,因为 Outlook 认为它已经完成。
我在这里想念什么?
更新
这是我根据@KevinPope 的回答更新的代码:
Sub FixParagraphSpacing()
Dim objOL As Application
Dim sel As Object
Set objOL = Application
Set sel = objOL.ActiveInspector().WordEditor.Application.Selection
For Each para In sel.Paragraphs
para.SpaceBefore = 0
para.SpaceAfter = 0
Next para
End Sub
在我运行代码之前,这是我在行和段落间距下看到的:
这是我运行宏后看到的内容:
不幸的是,除此之外,电子邮件正文没有明显变化。
每个请求的文本屏幕截图: