Tocando som WAV no VBA

Quanto um sistema se torna bastante completo e profissional, merece contar alguns recursos de interface e interação para enriquecer seu valor.

O código abaixo executa um arquivo de áudio no padrão .wav através do VBA.

1
2
3
4
5
6
7
8
9
10
11
12
13
Private Declare Function PlaySound Lib "winmm.dll" _
           Alias "PlaySoundA" (ByVal lpszName As String, _
           ByVal hModule As Long, ByVal dwFlags As Long) As Long
 
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
 
Sub PlayWAV()
    WAVFile = "Som.wav"
    WAVFile = ThisWorkbook.Path & "\" & WAVFile
    Call PlaySound(WAVFile, 0&, SND_ASYNC Or SND_FILENAME)
End Sub

Neste caso, o arquivo tem o nome “Som.wav” localizado na mesma pasta do arquivo .xls.
Fonte: Fórum Julio Battisti
Abraços
Tomás Vásquez
www.tomasvasquez.com.br

Comentários

comentários

5 comentários em “Tocando som WAV no VBA”

  1. Boa Noite Tomás.
    Segui seus procedimentos e fiz assim.
    Na Planilha1 inseri o comando:

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range
    Set KeyCells = Range(“A1:A2”)

    If (WorksheetFunction.CountIf(KeyCells, “COMPRA”)) > 0 Then Call PlayWAV

    End Sub

    Já no Módulo1
    Private Declare Function PlaySound Lib “winmm.dll” _
    Alias “PlaySoundA” (ByVal lpszName As String, _
    ByVal hModule As Long, ByVal dwFlags As Long) As Long

    Const SND_SYNC = &H0
    Const SND_ASYNC = &H1
    Const SND_FILENAME = &H20000

    Public Sub PlayWAV()
    WAVFile = “David Guetta.wav”
    WAVFile = ThisWorkbook.Path & “\” & WAVFile
    Call PlaySound(WAVFile, 0&, SND_ASYNC Or SND_FILENAME)
    End Sub

    E deu tudo certo.
    Porém gostaria de criar um botão para parar a música no momento que eu quiser. Como chamo novamente a função (linha de comando) e aonde coloco os dados (módulo1, crio módulo2, na plan1 mesmo?). Desde já agradeço pela ajuda.

Os comentários estão fechados.