Word,ExcelからFlashを抽出する
2460 ワード
転載住所:http://www.cnblogs.com/phcis/archive/2008/09/04/1284035.html
最近いくつかの面白いFalshを得て、仕方なくすべてWordあるいはExcelの中で埋め込みました。何度も探して、いい抽出方法を見つけました。これで直接Flashを持って走ることができます。
具体的な方法:
1. Excelファイルを探してください。開けてください。
2. をクリックします。
3. マクロ作成フォームがイジェクトされ、ウィンドウにマクロ名(例えば、マクロ名:ExtrockFlash)を入力して作成ボタンをクリックします。すみません、先にマクロ名を入力してからボタンを作成しなければいけません。
4. プログラムインターフェースをイジェクトします。インターフェースの真ん中に小さなウィンドウがあります。ウィンドウに次のプログラムを入力します。
抽出が完了すると、ソースファイルと同じパスで同名のswfファイル、Flashファイルが生成されます。
注意してください:
1.文法エラーが発生したら、Apple.GetOpenFilename()が見つからない場合は、その次の行を前の行の最後に移動してください。
2.WordのFlashを抽出する場合は、マクロをExcelにセットして、実行時に抽出するWordファイルを選択してください。Wordに直接作成すると、見つけられない方法が提示されます。
最近いくつかの面白いFalshを得て、仕方なくすべてWordあるいはExcelの中で埋め込みました。何度も探して、いい抽出方法を見つけました。これで直接Flashを持って走ることができます。
具体的な方法:
1. Excelファイルを探してください。開けてください。
2. をクリックします。
3. マクロ作成フォームがイジェクトされ、ウィンドウにマクロ名(例えば、マクロ名:ExtrockFlash)を入力して作成ボタンをクリックします。すみません、先にマクロ名を入力してからボタンを作成しなければいけません。
4. プログラムインターフェースをイジェクトします。インターフェースの真ん中に小さなウィンドウがあります。ウィンドウに次のプログラムを入力します。
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
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
抽出が完了すると、ソースファイルと同じパスで同名のswfファイル、Flashファイルが生成されます。
注意してください:
1.文法エラーが発生したら、Apple.GetOpenFilename()が見つからない場合は、その次の行を前の行の最後に移動してください。
2.WordのFlashを抽出する場合は、マクロをExcelにセットして、実行時に抽出するWordファイルを選択してください。Wordに直接作成すると、見つけられない方法が提示されます。