I want to play an AVI file I created possibly by simply pressing a
command button in Excel. I have an example code I found online, but
was not able to get it to work. Here it is:
Declare Function mciSendString Lib "winmm" Alias "mciSendStringA"
(ByVallpstrCommand As String, ByVal lpstrReturnStr As Any, ByVal
wReturnLen As Long, ByVal hCallBack As Long) As Long
Declare Function GetActiveWindow Lib "USER32" () As Integer
Const WS_CHILD = &H40000000
Sub PlayAVIFile()
'Dimension variables.
Dim CmdStr As String, FileSpec As String
Dim Ret As Integer, XLSHwnd As Integer
'The name and location of the AVI file to play.
FileSpec = "C:\Documents and Settings\Administrator\My
Documents\My Recordings\excel video 2.avi"
'Get the active sheet's window handle.
XLSHwnd = GetActiveWindow()
'Opens the AVIVideo and creates a child window on the sheet
'where the video will display. "Animation" is the device_id.
CmdStr = ("open " & FileSpec & _
" type AVIVideo alias animation parent " & _
LTrim$(Str$(XLSHwnd)) & " style " & LTrim$(Str$(WS_CHILD)))
Ret = mciSendString(CmdStr, 0&, 0, 0)
'Put the AVI window at location 25, 120 relative to the
'parent window (Microsoft Excel) with a size of 160 x 160.
Ret = mciSendString("put animation window at 25 120 160 160", _
0&, 0, 0)
'The wait tells the MCI command to complete before returning
'control to the application.
Ret = mciSendString("play animation wait", 0&, 0, 0)
'Close windows so they don't crash when you quit the application.
Ret = mciSendString("close animation", 0&, 0, 0)
End Sub
This function currently does not work. When I pasted into VBA it
automatically splits the code with a line after the function
declarations. Any suggestions/help would be greatly appreciated.