如何通过Excel宏创建Word段落格式对象

时间:2019-05-26 14:47:41

标签: excel vba object ms-word

我从Excel宏创建一个新的Word文档,并且工作正常。 现在,我想创建一个新的ParagraphFormat对象,以应用于很多段落。 Microsoft Office Dev Center给出了一个宏字示例。

Set oWord_app = CreateObject("Word.Application")
oWord_app.Documents.Add
Set oDoc = oWord_app.Documents(1)

'Micorsoft Def Center:
Dim myParaF As New ParagraphFormat 
myParaF.Alignment = wdAlignParagraphCenter 
myParaF.Borders.Enable = True 
ActiveDocument.Paragraphs(1).Format = myParaF

要使此Word宏适应我的Excel宏,我认为我必须写

Dim myParaF as new oWord_app.ParagraphFormat

但是失败了。正确的方法是什么?

1 个答案:

答案 0 :(得分:0)

谢谢您的建议。很抱歉,但我真的不希望检查参考资料。 我只引用了Microsoft Office 14.0对象库,现在我还引用了Microsoft Word 14.0对象库。现在就可以了。新的声明显然是必要的,否则我将收到错误“变量未知”。 我仍然想知道为什么只有在没有“ Word_app”的情况下它才能起作用。 ParagraphFormat”,但已经带有“ ParagraphFormat”。 非常感谢。

这是我用断言表示的代码:

    Option Explicit
    Dim Word_app As Object, oDoc As Object, bWordVorhanden As Boolean, pFormat As Object

Sub DocumentCreate()

    Set Word_app = CreateObject("Word.Application")
    Word_app.Visible = True
    Word_app.Documents.Add
    Set oDoc = Word_app.Documents(1)

Set pFormat = New ParagraphFormat 
pFormat.Alignment = wdAlignParagraphCenter
pFormat.Borders.Enable = True
ActiveDocument.Paragraphs(1).Format = pFormat

    With oDoc.Paragraphs(1).Range
        .Font.Name = "Arial"
        .Font.Size = 11
        .Font.Bold = True
        .ParagraphFormat.Alignment = 1 'wdAlignParagraphCenter
        .InsertAfter "hello" 'Text:=Str(oDoc.Paragraphs.Count)
        .ParagraphFormat.SpaceBefore = 12
        .ParagraphFormat.SpaceAfter = 6
    End With

End Sub