בדקתי בבינה אחרת וזו התשובה:
אני אעזור לך לבדוק את הקוד ולתקן אותו. ראשית, בוא נוודא שכל ההגדרות הבסיסיות נכונות.
- קודם כל, בוא נוודא שהוספת את ההפניות הנכונות:
- פתח את ה-VBA Editor (Alt + F11)
- לך ל-Tools > References
- וודא שסימנת את ההפניות הבאות:
- Windows Media Player
- Microsoft Scripting Runtime
- הנה גרסה מתוקנת של הקוד עם טיפול שגיאות טוב יותר:
vba
' פונקציית Sleep להשהייה
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
Sub PlayPlaylist()
Dim WMP As Object
Dim MediaItem As Object
On Error Resume Next
' ניסיון ראשון - גרסה 7
Set WMP = CreateObject("WMPlayer.OCX.7")
If Err.Number <> 0 Then
Err.Clear
' ניסיון שני - ללא מספר גרסה
Set WMP = CreateObject("WMPlayer.OCX")
If Err.Number <> 0 Then
' ניסיון שלישי - גרסה אחרת
Set WMP = CreateObject("MediaPlayer.MediaPlayer.1")
If Err.Number <> 0 Then
MsgBox "לא הצלחתי ליצור את אובייקט נגן המדיה. אנא וודא:" & vbCrLf & _
"1. Windows Media Player מותקן במחשב" & vbCrLf & _
"2. הוספת את ההפניה המתאימה ב-References", vbCritical
Exit Sub
End If
End If
End If
If WMP Is Nothing Then
MsgBox "לא הצלחתי ליצור את אובייקט נגן המדיה", vbCritical
Exit Sub
End If
' הגדרת נתיב לקובץ מדיה (שנה לנתיב שלך)
WMP.URL = "C:\Path\To\Your\Music\File.mp3"
If Err.Number <> 0 Then
MsgBox "שגיאה בטעינת הקובץ: " & Err.Description, vbCritical
Exit Sub
End If
' הפעלת המדיה
WMP.Controls.play
If Err.Number <> 0 Then
MsgBox "שגיאה בהפעלת המדיה: " & Err.Description, vbCritical
Exit Sub
End If
' השהייה באמצעות Sleep
Sleep 1000 ' השהייה של שנייה אחת
' קבלת מידע על השיר
Set MediaItem = WMP.currentMedia
If Not MediaItem Is Nothing Then
With MediaItem
Debug.Print "כותרת: " & .getItemInfo("Title")
Debug.Print "אמן: " & .getItemInfo("Artist")
Debug.Print "אלבום: " & .getItemInfo("Album")
End With
End If
On Error GoTo 0
End Sub
- כמה שינויים חשובים שעשיתי:
- הסרתי את החלק של רשימת ההשמעה בשלב ראשון כדי לפשט את הבדיקה
- הוספתי טיפול שגיאות מפורט יותר
- השתמשתי ב-getItemInfo במקום בגישה ישירה למאפיינים
- הוספתי המתנה קצרה לטעינת המדיה
- כדי לבדוק אם הקוד עובד:
- שנה את הנתיב C:\Path\To\Your\Music\File.mp3 לנתיב של קובץ מוזיקה אמיתי במחשב שלך
- הרץ את הקוד
- בדוק את ה-Immediate Window (Ctrl + G ב-VBA Editor) לראות את פרטי השיר
אם אתה עדיין נתקל בשגיאות ספציפיות, אנא ספר לי:
- מה השגיאה המדויקת שאתה מקבל?
- באיזה שלב השגיאה מתרחשת?
- האם אתה מצליח ליצור את אובייקט ה-WMP?