大多数电子邮件客户端程序(尤其是那些使用纯文本而不是HTML的客户端程序)会自动以70或72个字符“断开”每行电子邮件。幸运的是,它们通常不会在单词的中间折行,而会在达到70个字符或72个字符的单词的开头断行。

不幸的是,这可能会对您在Word中撰写的电子邮件产生一些不利影响。当您的收件人观看某些行时,它们看起来可能很奇怪,在不理想的地方折断,并且通常看起来很时髦。当然,解决方案是让您在到达行上的适当位置时中断每一行。这样,您可以提前控制收件人如何看待您的消息。

如果需要,可以通过设置邮件边距使水平方向只有7或7.2英寸来手动执行此操作。然后,您将使用12点等宽字体(例如Courier)来键入消息。当单词换行到下一行时,只需在单词开头退格并按Enter键。

即使您仅发送少量电子邮件,这也可能很快使旧版本变得非常旧。更好的解决方案是允许Word为您做些休息,但Word中似乎没有这种功能。 (您可以在Outlook或Outlook Express中将选项设置为自动为您换行,但这并不能像直接在Word中那样为您提供很好的控制。)

这使我们进入了宏观领域。您可以使用以下宏检查当前文档并自动“切分”每个段落,以使行的长度不超过70个字符。

Sub ChopItUp()

Dim DocThis As Document, docThat As Document     Dim sParRaw As String     Dim iParCount As Integer, iParOut As Integer     Dim J As Long, X As Integer     Dim iLineWidth As Integer     Dim sLeft As String, sRight As String     Dim sTemp As String

iLineWidth = 70

Set DocThis = ActiveDocument     Documents.Add     Set docThat = ActiveDocument     DocThis.Activate

iParCount = DocThis.Paragraphs.Count     iParOut = 0     For J = 1 To iParCount         sParRaw = DocThis.Paragraphs(J).Range.Text         If Right(sParRaw, 1) = Chr(13) Then             sParRaw = Left(sParRaw, Len(sParRaw) - 1)

End If

sRight = sParRaw         If Len(sRight) > iLineWidth Then             While Len(sRight) > iLineWidth                 sLeft = Left(sRight, iLineWidth)

sRight = Mid(sRight, iLineWidth + 1)

flgDoIt = True                 If Left(sRight, 1) = " " Then                     sRight = Mid(sRight, 2)

flgDoIt = False                 End If                 If Right(sLeft, 1) = " " Then                     sLeft = Left(sLeft, Len(sLeft) - 1)

flgDoIt = False                 End If

If flgDoIt Then                     X = InStr(LTrim(sLeft), " ")

If X > 0 Then                         sTemp = ""

While Right(sLeft, 1) <> " "

sTemp = Right(sLeft, 1) & sTemp                             sLeft = Left(sLeft, Len(sLeft) - 1)

If Len(sLeft) = 0 Then                                 sLeft = sTemp & " "

sTemp = ""

End If                         Wend                         sRight = sTemp & sRight                     End If                     sLeft = Trim(sLeft)

End If

docThat.Paragraphs.Add                 docThat.Paragraphs(docThat.Paragraphs.Count).Range = sLeft                 sLeft = ""

sRight = Trim(sRight)

Wend         End If         docThat.Paragraphs.Add         docThat.Paragraphs(docThat.Paragraphs.Count).Range = sRight     Next J End Sub

当您运行此宏时,它将打开一个全新的文档,并将信息从旧文档复制到该宏,并确保每行不超过70个字符。新文档将不包含任何格式。 (由于您将纯文本电子邮件放在一起,所以这不成问题。)如果您希望使用不同的行宽,则只需更改在宏中分配给iLineWidth的值即可。

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(11466)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。 Word的旧菜单界面在这里: