快速提取PPT課件中的多媒體資源?

“我們看到一些PowerPoint課件有質量不錯的素材,如背景圖片、嵌入的聲音以及FLASH動畫等,這些素材一般不能直接通過複製獲取,怎麼樣更好的獲取這些素材呢?”。解決此問題可以分為五步:

工具/原料

ppt2010/ppt2013

excel2010/excel2013

方法/步驟

1、打開excel2010,新建一個excel文檔,調出 開發工具。

快速提取PPT課件中的多媒體資源

快速提取PPT課件中的多媒體資源

在開發工具選項卡下面單擊Visual Basic按鈕,進入編程狀態,單擊插入菜單下的模塊命令,在彈出的窗口中粘貼後面的VB代碼。

快速提取PPT課件中的多媒體資源

快速提取PPT課件中的多媒體資源

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 I

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

4、粘貼好了以後返回到excel主界面,把該excel文檔起一個你容易辨識的名字,保存為提取swf.xls,留著用來提取swf文件。打開嵌入了swf文件的ppt,在swf文件上右鍵單擊,選擇複製,新建一個excel文件,在新建的excel文件裡右鍵粘貼,把ppt裡的swf文件複製過來,起個名字,保存為excel 97—2003工作薄(*xls)(這裡面的版本選擇很重要,不要選錯),保存好了關閉該excel。

打開我們第一個粘貼有代碼的excel文檔——提取swf.xls,在開發工具下,單擊宏,彈出宏對話框,單擊執行,在打開的窗口中選擇粘貼有swf文件的excel文件,大功告成,裡面的swf馬上就會被提取出來,不信,你試試!

快速提取PPT課件中的多媒體資源

快速提取PPT課件中的多媒體資源

快速提取PPT課件中的多媒體資源

注意事項

如果flash動畫不能只在請卸載電腦上flash控件,安裝 flash18

相關問題答案