2012-04-26 31 views
1

ExcelでVBAコードを使用して、Word文書に番号付きリストを作成しようとしています。私はこれを実行するとWordで番号付きリストを作成するExcel VBA

Dim wrdApp As Word.Application 
Dim wrdDoc As Word.Document 

Set wrdApp = CreateObject("Word.Application") 
wrdApp.Visible = True 
Set wrdDoc = wrdApp.Documents.Add 

With wrdDoc 
    For i = 0 To 5 
     .Content.InsertAfter ("Paragraph " & i) 
     .Content.InsertParagraphAfter 
    Next 

    .Paragraphs(1).Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:= _ 
     ListGalleries(wdNumberGallery).ListTemplates(1), ContinuePreviousList:= _ 
     False, ApplyTo:=wdListApplyToWholeList, DefaultListBehavior:= _ 
     wdWord10ListBehavior 
End With 

Set wrdApp = Nothing 
Set wrdDoc = Nothing 

私はエラーを取得:

Method 'ApplyListTemplateWithLevel' of object 'ListFormat' failed

を私は、Excel VBAの参照リストにMicrosoft Word 12.0 Object Libraryをチェックしています。

+0

私はそれが完璧に動作のWord 2010のエクセル2010でコードをテストした... 2007 –

+0

くそー上でそれをテストします!私のVista on VMWareはアップデートを設定しています。私は上記をテストすることができる前にいつかかかります... –

+0

最後に、Office 2007でそれをテストしました。うまく働いています。 –

答えて

1

いいえ問題が見つかりました。私は友人のマシンにチェックを入れた。他の単語の文書が開いていた場合、私はあなたと同じエラーが出ます。他のワード文書が開いていない場合は、コードが正しく動作します。

このコードを試してください。これは、Wordアプリケーションではじめて使用されるため、参照を追加する必要はありません。

Sub Sample() 
    Dim oWordApp As Object, oWordDoc As Object 

    '~~> Establish an Word application object 
    On Error Resume Next 
    Set oWordApp = GetObject(, "Word.Application") 

    If Err.Number <> 0 Then 
     Set oWordApp = CreateObject("Word.Application") 
    End If 
    Err.Clear 
    On Error GoTo 0 

    oWordApp.Visible = True 

    Set oWordDoc = oWordApp.Documents.Add 

    With oWordDoc 
     For i = 0 To 5 
      .Content.InsertAfter ("Paragraph " & i) 
      .Content.InsertParagraphAfter 
     Next 

     DoEvents 

     .Paragraphs(1).Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:= _ 
     ListGalleries(wdNumberGallery).ListTemplates(1), ContinuePreviousList:= _ 
     False, ApplyTo:=wdListApplyToWholeList, DefaultListBehavior:= _ 
     wdWord10ListBehavior 
    End With 

    Set oWordApp = Nothing 
    Set oWordDoc = Nothing 
End Sub 
+0

それはうまくいった!あなたの時間は非常に感謝します。 – ploddingOn

関連する問題