如何提取嵌入PPT中的SWF動畫檔案??

Tags: 動畫檔案,

今天給大家介紹一種簡單、實用的方法,僅利用電腦上的excel就可以實現,因此對於絕大多數使用者而言,不需要再安裝軟體,如果你連excel也沒裝的話,我就沒話說了。

工具/原料

excel2003,PPT2003

方法/步驟

1、開啟excel2003,新建一個excel文件,單擊工具->巨集->Visual Basic 編輯器按鈕,在彈出的視窗中粘貼後面的VB程式碼。

如何提取嵌入PPT中的SWF動畫檔案?

如何提取嵌入PPT中的SWF動畫檔案?

VB程式碼:

Sub ExtractFlash()

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", , "確定要分析的 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主介面,把該excel文件起一個你容易辨識的名字,儲存為“提取swf”,留著用來提取swf檔案。開啟嵌入了swf檔案的ppt,在swf檔案上右鍵單擊,選擇複製,新建一個excel檔案,在新建的excel檔案裡右鍵“貼上”,把ppt裡的swf檔案複製過來,起個名字,儲存為excel 97—2003工作薄(*.xls)(這裡面的版本選擇很重要,不要選錯),儲存好了關閉該excel。

開啟我們第一個貼上有程式碼的excel文件——提取swf.xls,在“工具”選單下,單擊“巨集”-> “巨集”,彈出巨集對話方塊,單擊“執行”,在開啟的視窗中選擇貼上有swf檔案的excel檔案,大功告成,裡面的swf馬上就會被提取出來,不信,你試試!

如何提取嵌入PPT中的SWF動畫檔案?

如何提取嵌入PPT中的SWF動畫檔案?

如何提取嵌入PPT中的SWF動畫檔案?

如何提取嵌入PPT中的SWF動畫檔案?

如何提取嵌入PPT中的SWF動畫檔案?

注意事項

excel2010的操作請移步看我另一篇原創經驗

相關問題答案