2011-07-25 43 views
0

我正在嘗試編寫一個VBA腳本,該腳本可以查找Word文檔中的所有嵌入式(.docx)文件,並將其內容複製到父文檔中,用文本替換嵌入式對象。 我能夠找到使用嵌入的對象:將嵌入式文件的內容合併到原始文檔

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

相關問題