我可以字体格式化单词宏的输出吗?

时间:2013-05-04 01:16:35

标签: vba ms-word word-vba

我有一份文件,对长篇采访记录发表评论。我found a Macro on SO让我用突出显示的文本导出这些评论。这很棒,但输出非常枯燥(纯文本)。

我需要知道是否以及如何应用粗体,斜体和插入换行符。我现在已经找了好几个小时,因为我的VBA很糟糕,除了关于“marco输出格式化”的关键字搜索外,我没有参考哪里可以查看

有人知道如何将以下脚本和字体更改用于部分文本吗?

Sub ExportComments()
    Dim s As String
    Dim cmt As Word.Comment
    Dim doc As Word.Document

    For Each cmt In ActiveDocument.Comments
        s = s & "Text: " & cmt.Scope.FormattedText & " -> "
        s = s & "Comments: " & cmt.Initial & cmt.Index & ":" & cmt.Range.Text & vbCr
    Next

    Set doc = Documents.Add
    doc.Range.Text = s
End Sub

也许我可以用Word解释的HTML来做到这一点?

1 个答案:

答案 0 :(得分:1)

我假设您想要包含的格式已经在评论文本中,并且您只是在寻找将其纳入最终文档的方法。以下是您的脚本的修改版本(有一个警告,如下所示):

Sub ExportComments()
Dim cmt As Comment
Dim newdoc As Document
Dim currDoc As Document

Set currDoc = ActiveDocument
Set newdoc = Documents.Add
currDoc.Activate
For Each cmt In currDoc.Comments
    With newdoc.Content
        cmt.Scope.Copy
        .InsertAfter "Text: "
        .Collapse wdCollapseEnd
        .Paste
        .InsertAfter " - > "
        cmt.Range.Copy
        .InsertAfter "Comments: " & cmt.Initial & cmt.Index & ":"
        .Collapse wdCollapseEnd
        .Paste
        .InsertParagraphAfter
    End With
Next

End Sub

这里的区别在于我使用的是复制和粘贴,而不是生成文本字符串。

警告:由于现在正在编写宏,因此Scope中的任何字符格式(文件中Text旁边显示的文本)也将应用于箭头和首字母。通过搜索和替换很容易解决,因此我没有将其合并到脚本中。