新建一个文件,然后拷贝以下代码到VBA模块中,运行代码,选择含有Flash的Excel文件确定,即可获取swf文件。
Sub ExtractFlash() Dim tmpFileName As String Dim FileNumber As Integer Dim myFileId As Long Dim MyFileLen As Long Dim myIndex As Long Dim swfFileLen As Long Dim i As Long Dim swfArr() As Byte Dim myArr() As Byte tmpFileName = Application.GetOpenFilename("MS Office File (*.doc;*.xls), *.doc;*.xls", , "Open MS Office file") 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 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 Exit Do Else i = i + 3 End If Else i = i + 1 End If Loop myFileId = FreeFile tmpFileName = Left(tmpFileName, Len(tmpFileName) - 4) & ".swf" Open tmpFileName For Binary As #myFileId Put #myFileId, , swfArr Close myFileId MsgBox "Save the extracted SWF Flash as [ " & tmpFileName & " ]" End Sub
作者:laoyebin(Paladin.lao) 出处:http://www.cnblogs.com/laoyebin/ 个人网站英文出处:http://mrvsto.com/ 个人网站中文出处:http://cn.mrvsto.com/