У меня есть файл слова, который мне нужен, чтобы извлечь файлы из разархивирования не работает, так как он не выдает все файлы, и наименование является неправильным. Мне нужно вывести 5 типов файлов (word, excel, power point, rar и .pdf), не заботясь о других. Проблема в том, что есть много файлов, которые не могут быть открыты, так как я не Есть системы, необходимые для этого: Как я могу извлечь эти файлы без открытия встроенных файлов: я запустил 3 необязательных кода, но они далеко не до фини sh, так как мне не хватает знаний: (* 1001 *
Sub ExtractAndSaveEmbeddedFiles()
Dim objEmbeddedShape As InlineShape
Dim strShapeType As String, strEmbeddedDocName As String
Dim objEmbeddedDoc As Object
With ActiveDocument
For Each objEmbeddedShape In .InlineShapes
' Find and open the embedded doc.
Set objEmbeddedDoc = objEmbeddedShape.OLEFormat.Object
strShapeType = objEmbeddedShape.OLEFormat.ClassType
StrPath = "CXXXXPATH"
OLEFormat.Save (StrPath + OLEFormat.SuggestedExtension)
Set objEmbeddedDoc = Nothing
Next objEmbeddedShape
End With
End Sub
Sub ExtractAndSaveEmbeddedFiles()
Dim objEmbeddedShape As InlineShape
Dim strShapeType As String, strEmbeddedDocName As String
Dim objEmbeddedDoc As Object
With ActiveDocument
For Each objEmbeddedShape In .InlineShapes
' Find and open the embedded doc.
strShapeType = objEmbeddedShape.OLEFormat.ClassType
If .OLEFormat.ClassType = "Excel.Sheet" Then
objEmbeddedShape.OLEFormat.Open
' Initialization
Set objEmbeddedDoc = objEmbeddedShape.OLEFormat.Object
' Save embedded files with names as same as those of icon label.
strEmbeddedDocName = objEmbeddedShape.OLEFormat.IconLabel
objEmbeddedDoc.SaveAs "XXXXPATH" & strEmbeddedDocName
objEmbeddedDoc.Close
End If
Set objEmbeddedDoc = Nothing
Next objEmbeddedShape
End With
End Sub
Sub ExtractFiles()
'
' ExtractFiles Macro
'
'
Dim shape As InlineShape
Dim folderName As String
Dim a As Document
folderName = "XXXXXPATH"
For Each shape In ThisDocument.InlineShapes
If (shape.Type = wdInlineShapeEmbeddedOLEObject) And (InStr(LCase(shape.OLEFormat.IconLabel), ".docx") > 0) Then
shape.OLEFormat.Object.SaveAs (folderName & "\" & shape.OLEFormat.IconLabel)
End If
Next shape
End Sub