MIDI格式的声音文件通常很长,因此可能有必要停止播放声音(例如,当宏完成时)。这是一个示例:

Private Declare Function mciExecute Lib "winmm.dll" _

(ByVal lpstrCommand As String) As Long

Sub PlayMidiFile(MidiFileName As String, Play As Boolean)

If Dir(MidiFileName) = "" Then Exit Sub ' no file to play

If Play Then

mciExecute "play " & MidiFileName ' start playing

Else

mciExecute "stop " & MidiFileName ' stop playing

End If

End Sub

Sub TestPlayMidiFile()

PlayMidiFile "c:\foldername\soundfilename.mid", True

MsgBox "Click OK when the MIDI file starts playing..."

MsgBox "Click OK to stop playing the MIDI file..."

PlayMidiFile "c:\foldername\soundfilename.mid", False

End Sub