Вот способ для файлов WAV.Поместите ** этот код ** в модуль обычного кода:
Option Explicit
Public Declare Function sndPlaySound32 _
Lib "winmm.dll" _
Alias "sndPlaySoundA" ( _
ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long
Sub PlayTheSound(ByVal WhatSound As String)
If Dir(WhatSound, vbNormal) = "" Then
' WhatSound is not a file. Get the file named by
' WhatSound from the Windows\Media directory.
WhatSound = Environ("SystemRoot") & "\Media\" & WhatSound
If InStr(1, WhatSound, ".") = 0 Then
' if WhatSound does not have a .wav extension,
' add one.
WhatSound = WhatSound & ".wav"
End If
If Dir(WhatSound, vbNormal) = vbNullString Then
Beep ' Can't find the file. Do a simple Beep.
Exit Sub
End If
Else
' WhatSound is a file. Use it.
End If
sndPlaySound32 WhatSound, 0& ' Finally, play the sound.
End Sub
Теперь вы можете воспроизвести любой wav-файл через любой другой макрос, вызвав эту процедурувыше и вводит любое имя файла, найденное в папке / Media:
Sub PlayIt()
Select Case Range("A1").Value
Case "good"
PlayTheSound "chimes.wav"
Case "bad"
PlayTheSound "chord.wav"
Case "great"
PlayTheSound "tada.wav"
End Select
End Sub
Поэкспериментируйте с этим.
Вот пример файла, в котором я использую его для драматического выявления случайных имен и задачдень, он прикреплен к кнопке, как вы планируете сделать:
Список случайных задач с AUDIO Reveal