获取当前word文档的全部内容

Get full content from current word document

我有一个 MS-Word .docm 文档,里面有一个宏。在这个宏中,我想从文档中获取完整内容作为 字节数组 。内容应包含文档的完整信息,当我保存此内容时,我应该可以再次在 Word 中打开此文件。

我是 vba 的新手,不知道从哪里开始。我考虑过将文档保存在临时文件夹中以读取此文件以获取内容,但也许有更好的方法。

我建议你使用

ThisDocument.SaveAs "c:\temp\mydoc.docm"

然后只需使用该文件进行进一步的操作。

或者以字节形式打印文件:

Sub SaveAsByteArray()
    Dim thisFile  As String
    thisFile = ActiveDocument.FullName
    Dim targetFile As String
    targetFile = "C:\temp\doc.docm"
    Dim sourceFileNum As Integer
    Dim targetFileNum  As Integer

    Dim aByte As Byte

    sourceFileNum = FreeFile
    Open thisFile For Random Access Read As sourceFileNum Len = 1

    targetFileNum = FreeFile
    Open targetFile For Random Access Write As targetFileNum Len = 1

    Do While Not EOF(sourceFileNum)
        Get #sourceFileNum, , aByte
        Put #targetFileNum, , aByte
    Loop

    Close sourceFileNum
    Close targetFileNum
End Sub

但是这个 sub 在末尾添加了一个额外的字节,所以 Excel 将打开一个对话框,询问您是否要修复内容。如果选择是,则word可以打开文件。

或者放入一个数组中:

Sub SaveAsByteArray()
    Dim thisFile  As String
    thisFile = ActiveDocument.FullName
    Dim sourceFileNum As Integer

    Dim arr()
    Dim arr_n as long
    arr_n = 0

    Dim aByte As Byte

    sourceFileNum = FreeFile
    Open thisFile For Random Access Read As sourceFileNum Len = 1

    Do While Not EOF(sourceFileNum)
        Get #sourceFileNum, , aByte

        ReDim Preserve arr(0 to arr_n)
        arr(arr_n) = aByte
        arr_n=arr_n+1

    Loop

    Close sourceFileNum
End Sub