Board logo

標題: vba影音撥放 [打印本頁]

作者: afu9240    時間: 2017-11-3 09:43     標題: vba影音撥放

版大 可以請教一下嗎??G大

我這是vba撥放的code,為何在win10 office2016下無法執行,其他都可以執行, 是vba版本問題嗎??還是系統問題
[attach]27903[/attach]



Private Sub CommandButton2_Click()
    Dim strNAME, strPATHNAME As String
    strPATHNAME = Sheets(2).Cells(1, 3)
    strNAME = Label2.Caption & ".mp4"
    With WindowsMediaPlayer2
        .Visible = True
        .URL = strPATHNAME & strNAME
        .stretchToFit = True
        
    End With
   
     WindowsMediaPlayer2.Width = 285
     WindowsMediaPlayer2.Height = 258
     WindowsMediaPlayer2.Controls.Play
     Find = 0
     totalTime = 0
     hTimer = SetTimer(0, 0, 1000, AddressOf TimerProc)
        
        
End Sub
作者: afu9240    時間: 2017-11-4 12:54

G大 程式碼我已經貼上了,因為還有結合影片檔,,,我不知道是不是VBA版本問題
作者: jackyq    時間: 2017-11-4 14:46

class 不能吃 AddressOf
要放 module
作者: jackyq    時間: 2017-11-4 16:28

class 不能吃 AddressOf
要放 module
jackyq 發表於 2017-11-4 14:46


你的 modile 裡面必須有一個 Public  Function TimerProc

Public Function TimerProc(ByVal hwnd As Long, ByVal tMsg As Long, ByVal TimerID As Long, ByVal tickCount As Long) As Long
....................
End Function

作者: afu9240    時間: 2017-11-6 14:30

我的modile 有放阿~~執行撥放時就是會顯示型態不符合!!!!

Sub TimerProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long) ode值來啟動影片格式
   
   
    UserForm1.Label2.Caption = UserForm1.WindowsMediaPlayer1.Controls.currentPosition
   
    If UserForm1.Label2.Caption > 1 And find = 0 Then
   
        For i = 0 To UserForm1.WindowsMediaPlayer1.currentPlaylist.Count - 1
            totalTime = totalTime + UserForm1.WindowsMediaPlayer1.currentPlaylist.Item(i).Duration
            Next
        
            tmpSecond = totalTime Mod 60
            tmpMinute = Int(totalTime / 60) Mod 60
            tmpHour = Int(Int(totalTime / 60) / 60)
            UserForm1.Label4.Caption = tmpHour & ":" & tmpMinute & ":" & tmpSecond
            UserForm1.CommandButton7.Left = 42 + (480 / totalTime) * UserForm1.Label2.Caption
        find = 1
    End If
    If find = 1 Then
        
        UserForm1.CommandButton7.Left = 42 + (480 / totalTime) * UserForm1.Label2.Caption '
            
    End If

End Sub
作者: afu9240    時間: 2017-11-6 15:10

[attach]27912[/attach][attachimg]27
作者: afu9240    時間: 2017-11-7 08:44

G大 請教一下原本的Code我是在office2013 win10底下寫的是可以執行,但是在office2016無法執行編輯型態不符,結果我在office2016從打了code還是無法執行....><" 您的意思要在2003版本寫




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)