Извлечение встроенных файлов из текстового документа - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть файл слова, который мне нужен, чтобы извлечь файлы из разархивирования не работает, так как он не выдает все файлы, и наименование является неправильным. Мне нужно вывести 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
...