从Word,Excel中提取Flash

   最近得到一些好玩的Falsh,无奈都是嵌入在Word或Excel中的。几经搜寻,找到一个很好的提取方法。这样就可以直接带着Flash跑咯。。。

 

   具体方法:

      1.    随便找一个Excel文件(不可以是Word),打开。

2.     点击工具——>宏——>宏

3.     弹出一个宏创建窗体,在窗口中输入宏名(例如:宏名:ExtractFlash)点击创建按钮。注意,必须先输入“宏名”之后创建按钮才可以点哦。。。

4.     弹出一个编程界面,在界面的中间有一个小窗口,在窗口中输入下面的程序段。

 

ExpandedBlockStart.gif ContractedBlock.gif Sub CollectFlashFromExcel() Sub CollectFlashFromExcel()
'
'
 CollectFlashFromExcel Macro
'
 宏由 phcis 录制,时间: 2008-9-4
'

'
Dim tmpFileName As String, FileNumber As Integer
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", , "请选择一个包含Flash的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

= 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 "" & tmpFileName & "名字保存"

End Sub

 

 

 等提取结束后将会在源文件同一路径下生成同名的swf文件,即Flash文件。

 

 请注意:

     1.如果出现语法错误,找不到Application.GetOpenFilename()请将它的下一行移动到上一行结尾即可。。。

     2.如果要提取Word中的Flash请将宏建立在Excel中,然后运行的时候选择要提取的Word文件即可。直接建立在Word中将会提示找不到方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值