2013-05-04 62 views
1

我有一份長篇訪談記錄的評論文件。我found a Macro on SO,讓我出口那些評論突出顯示的文本。這真棒,但輸出非常沉悶(純文本)。我可以字體格式化單詞宏的輸出嗎?

我需要知道是否以及如何應用粗體,斜體和插入換行。我已經找了像現在幾個小時,因爲我的VBA是可怕的我沒有參考除了關鍵字搜索「馬可輸出格式化」以外的其他地方

有人知道如何將下面的腳本和字體更改爲零件的文字?

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做到這一點?

+0

這是vba,而不是vbscript,你想要什麼?將Excel電子表格中的註釋複製到Word文檔中? – peter 2013-05-04 18:30:38

+0

謝謝你,我想問什麼是我的問題:我需要知道是否以及如何應用粗體,斜體並向宏的輸出插入換行符。 – JeroenEijkhof 2013-05-04 19:39:08

+0

你不回答我的問題,現在有辦法幫助你這樣做 – peter 2013-05-04 20:06:39

回答

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中的任何字符格式(在文件中出現在文本旁邊的文本)都將應用於箭頭和首字母。這很容易通過搜索和替換來修復,所以我沒有將它併入到腳本中。

+0

我想將這種格式應用到我選擇的作品後面,但我可以使用上面所寫的內容並嘗試使其發生 – JeroenEijkhof 2013-05-08 21:33:28