VBA programming play music mp3 in Excel

tuhocvba

Administrator
Thành viên BQT
Về chủ đề này, hầu hết các website đều đưa ra các chương trình rất hoành tráng làm cho mọi người khó nhận biết được đâu là phần code chính. Vì vậy khó khăn trong việc tham khảo. Do đó tôi lập ra topic này để mọi người thảo luận thêm.
Nhìn chung sẽ có hai phương pháp chính:
  1. Sử dụng hàm Shell
  2. Sử dụng hàm API

Phương pháp sử dụng hàm Shell: Chúng ta biết trên window đã có sẵn chương trình Window Media Player để chơi file mp3. Vì vậy công việc code của chúng ta thực ra rất đơn giản, gọi chương trình này ra để chơi bản nhạc mà ta yêu cầu.
Mã:
Sub Sample1()
    Dim SoundFile As String
    SoundFile = "C:\Windows\Media\tuhocvba.wav" 'Bạn cần sửa lại link file âm thanh cho phù hợp
    If Dir(SoundFile) = "" Then
        MsgBox SoundFile & vbCrLf & " khong ton tai.", vbExclamation
        Exit Sub
    End If
    Shell "mplay32.exe /play /close " & SoundFile 'Phần code chính
End Sub
Tuy nhiên sẽ có một bất tiện là, nếu chương trình này đang chơi một bản nhạc, cùng lúc đó macro thực thi đoạn code trên, khi đó sẽ xảy ra xung đột.
Do đó tôi ưu tiên phương án 2: Sử dụng hàm API.

Phương pháp sử dụng hàm API:
Mã:
#If Win64 Then
Private Declare PtrSafe Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
ByVal uReturnLength As Long, ByVal hwndCallback As Long) As LongPtr
#Else
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
#End If
Sub Sample2()
    Dim SoundFile As String
    #If Win64 Then
        Dim rc As LongPtr
    #Else
        Dim rc  As Long
    #End If
    SoundFile = "D:\TiengNhat\tiengnhat\SpeedN2\CD1\track01.mp3"
    If Dir(SoundFile) = "" Then
        MsgBox SoundFile & vbCrLf & " khong ton tai.", vbExclamation
        Exit Sub
    End If
    'rc = mciSendString("Close " & SoundFile, "", 0, 0)
    rc = mciSendString("Play " & SoundFile, "", 0, 0)
    'rc = mciSendString("Pause " & SoundFile, "", 0, 0)
End Sub
Đây là đoạn code chính để chơi file mp3 (wav), từ đây các bạn kết hợp sử dụng với Userform để tự tạo một chương trình play mp3 nhé.
Tham khảo:
 
Top