教材来自网络幻灯制作:Chen 左键翻页
E-mail文化传播网www.52e-mail
有一些幻灯片,特别是贺卡类幻灯片,嵌入精美的SWF格式Flash动画。如果我们喜欢它,可以通过【复制】和【粘贴】用到自己制作的幻灯上。但想把PPT中嵌入的SWF文件提取出来,必须使用提取SWF软件。能提取PPT中嵌入的SWF软件很多,如:提取SWF.xls、十六进制编辑器(HEdit、UltraEdit和winhex )、FLASH吸血鬼等。经过试用,向大家介绍两个提取SWF软件:提取SWF.xls和HEdit(十六进制编辑器)的使用方法,供有
兴趣者学习参考。
本幻灯以提取生日贺卡中嵌入的”生日礼物.swf”为例,介绍两种提取嵌入PPT中SWF文件的方法,并进行
两种方法的比较。
一、用“提取SWF.xls”提取嵌入PPT中的SWF文件方法
这个方法还没有见到正式的命名。用Microsoft Office Excel 2003制作出“提取SWF.xls”,用这个文件可以提取嵌入到PPT中的SWF文件,故把“提取SWF.xls”文件作为软件名。
1、制作“提取SWF.xls”方法
(一)制作“模块代码.doc”备用
请把下页VBA代码全部复制,粘贴到Word文档,把Word文档另存为“模块代码.doc”备用。
请把以下VBA代码全部复制,粘贴到Word文档,把Word文档另存为“模块代码.doc”备用。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
制作flashi = 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 2003宏的安全等级降为“中”
由于“提取SWF.xls”文件中使用宏,在【模块】中加入VBA 代码,不降低宏的安全等级,“提取SWF.xls”不能正常运行。
宏的安全等级设置方法:【工具】→【宏】→【宏的安全性】→选【中】见图1-1和图1-2
图1-1 【工具】→【宏】→【宏的安全性】