寒窗轩,寒川的个人网络博客,记录互联网事,学习网络编程、分享工作经验、人生感悟,包括但不限于程序代码、数据库、Office办公、随笔等内容。

利用宏从Word、Excel中提取Flash

今天网上弄到个flash游戏,感觉挺不错的,但是flash被嵌在了excel中,想单独保存出来。百度了一下找到如下宏代码可以实现。
Sub CollectFlashFromExcel()
'
'
' http://huikon.cn
'

'
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

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

End Sub

 

 打开(或新建)一个excel文档,将上述代码输入宏试图中,然后运行,再代开含有flash的excel或word文档就能将flash文档的从word、Excel中提取出来了。

Office 2010-02-26 17:08:50 28 0 7951 officeflashwordexcel
文章写得不错?我是土豪我要在线打赏!
在线打赏

昵称:

验证码:验证码

评论:

文章分类
系统
程序
数据
Office
随笔
热门文章
VB.net开发的word转pdf的小工具
使用python把word转成pdf
文章推荐
免责声明
关于博主
开篇第一章
随机推荐
请不要奇怪,为什么最近博客的文章是几年前的内容
2021年快年末了
法律算老几?
抽空用php写了个微信机器人小蜜蜂
开场白
emlog YY统计插件不稳定修复测试
搜索引擎优化(SEO)的一般步骤
Everything快速搜索软件使用技巧
Google will say no to China because of hackers attack gmail?
小技巧,让ul中li分列显示
友情连接
春燕网络
谢润的博客
企安文库