2011-07-25 14 views
0

Wordドキュメント内のすべての埋め込み(.docx)ファイルを検索し、その内容を親ドキュメントにコピーして埋め込みオブジェクトをテキストに置き換えるVBAスクリプトを作成しようとしています。さらに重要なこと - - 同じスクリプトを使用して開かれたファイルと対話することは、この選択されたオブジェクトを開く方法を私には不明である、としかし埋め込みファイルの内容を元のドキュメントに統合する

Selection.GoTo What:=wdGoToObject, Which:=wdGoToNext, Count:=1, Name:= _ 
    "Word.Document.12" 

を: は、私が使用して埋め込まれたオブジェクトを見つけることができています。私が自分よりもずっと先に進む前に、これも可能ですか?

答えて

2

これはすごい

Sub Tester() 

    Dim cDocs As Collection 
    Dim o As InlineShape 

    Set cDocs = GetEmbeddedDocs(ActiveDocument) 
    For Each o In cDocs 
     o.OLEFormat.Open 
     With ActiveDocument 
      .Content.Copy 
      .Close 
     End With 
     o.Select 
     Selection.Paste 
    Next o 
End Sub 


Function GetEmbeddedDocs(oDoc As Word.Document) As Collection 
    Dim o As InlineShape 
    Dim c As New Collection 

    For Each o In oDoc.InlineShapes 
     If o.Type = wdInlineShapeEmbeddedOLEObject Then 
      If o.OLEFormat.ProgID Like "Word.Document.*" Then 
       c.Add o 
      End If 
     End If 
    Next o 
    Set GetEmbeddedDocs = c 
End Function 
+0

(...軽くテストした)私のために働きました。これは完全に機能しました!私はちょうど半ダースの新しいVBAテクニックをこのプロセスで学んだので、それにも感謝します! – Derek

関連する問題