|
原帖由 静静心 于 2006-12-16 11:37 发表 ![](http://club.excelhome.net/images/common/back.gif)
是啊,已经嵌入的swf文件如何提取出来??
打开excel文件,然后再去打开VB,把这个代码贴进去,他会让你选择你的这个源文件,选好之后 run VB,保存flash 文件 即可
Sub ReadData()
Dim tmpFileName As String, FileNumber As Integer, OldName As String
Dim myFileId As Long
Dim myArr() As Byte
Dim i As Long
Dim MyFileLen As Long, myIndex As Long
Dim swfFileLen As Long
Dim swfArr() As Byte
tmpFileName = Application.GetOpenFilename("office File(*.doc;*.xls),*.doc;*.xls", , "确定要分析的office文件")
If tmpFileName = "False" Then Exit Sub
myFileId = FreeFile
Open tmpFileName For Binary As #myFileId
MyFileLen = LOF(myFileId)
ReDim myArr(MyFileLen - 1)
Get myFileId, , myArr()
Close myFileId
Application.ScreenUpdating = False
OldName = Left(tmpFileName, Len(tmpFileName) - 4)
i = 0
Do While i < MyFileLen
If myArr(i) = &H46 Then
If myArr(i + 1) = &H57 And myArr(i + 2) = &H53 Then
swfFileLen = CLng(&H1000000) * myArr(i + 7) + CLng(&H10000) * myArr(i + 6) + CLng(&H100) * myArr(i + 5) + myArr(i + 4)
ReDim swfArr(swfFileLen - 1)
For myIndex = 0 To swfFileLen - 1
swfArr(myIndex) = myArr(i + myIndex)
Next myIndex
myFileId = FreeFile
tmpFileName = OldName & i & ".swf"
Open tmpFileName For Binary As #myFileId
Put #myFileId, , swfArr
Close myFileId
i = i + swfFileLen + 8
Else
i = i + 3
End If
Else
i = i + 1
End If
Loop
MsgBox "以" & OldName & "1-n.swf 名字保存"
End Sub |
|