获取当前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
我有一个 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