如何以编程方式在VBA中创建格式化文本?

时间:2012-04-11 14:45:05

标签: vba ms-word ms-office

我需要以编程方式创建一个文本(2行,多个字体),然后我将其放在我文档的几个表(< 100)中。

我发现解决此问题的唯一方法是创建Word.Paragraph并将其范围复制到单元格。这种方法的问题是:在创建段落时,它被添加到文档中。

我想在代码中创建一个格式化的文本,比如创建一个字符串,而无需修改Document。

2 个答案:

答案 0 :(得分:1)

我使用过的一种方法是使用HTML或richtext,无论如何它本质上都是一个字符串。我相当确定Word可以使用正确的com对象设置解释其中任何一个。

我尝试过的另一种方法是使用剪贴板而不是单词对象。你可以这样做:

(导入system.windows.forms

Clipboard.SetText(Me.RichTextBox1.Rtf, TextDataFormat.Rtf)
ApplicationName.Selection.Paste()

答案 1 :(得分:0)

您可以使用this on hidden textthis on deleting paragraphs吗?

这样的事情:

Sub CreateNewWordDoc()
  Dim para As Word.Paragraph

  Set para = ActiveDocument.Paragraphs.Add
  para.Range.Font.Hidden = True
  ' Do your manipulation
  para.Range.Text = "Hello world"
  para.Range.Font.Name = "Tahoma"
  para.Range.Font.ColorIndex = wdBlue
  ' Now remove the paragraph as if it never existed!
  para.Range.Delete


End Sub