Como reproduzir um som quando uma condição for cumprida no Excel?
No Excel, podemos utilizar a formatação condicional para formatar e destacar células de acordo com uma determinada condição. Contudo, por vezes, poderá pretender que um som seja reproduzido quando essa condição for cumprida — por exemplo, se o valor da célula A1 for superior a 300. O Excel não oferece suporte nativo a esta funcionalidade; neste artigo, apresento alguns códigos VBA que permitem resolver esta tarefa.
Reproduzir um som padrão do sistema com base no valor de uma célula com código VBA
Reproduzir um som personalizado com base no valor de uma célula com código VBA
Reproduzir um som se o valor de uma célula mudar numa Especificar coluna com código VBA
Reproduzir um som padrão do sistema com base no valor de uma célula com código VBA
Aqui está um código útil para reproduzir um som padrão do sistema sempre que uma condição específica for satisfeita. Siga os passos abaixo:
1. Mantenha premidas as teclas ALT + F11 para abrir a janela do Microsoft Visual Basic for Applications.
2. Clique em Inserir > Módulo e cole o seguinte código na janela do Módulo.
Código VBA: Reproduzir um som padrão do sistema com base no valor de uma célula:
Function BeepMe() As String
Beep
BeepMe = ""
End Function
3. Em seguida, guarde e feche esta janela de código, regresse à folha de cálculo e introduza a seguinte fórmula:=IF(A1>300,BeepMe(),«») numa célula vazia ao lado da célula que contém o valor com base no qual pretende reproduzir um som e, depois, prima a tecla Enter. Nada será apresentado na célula da fórmula. Veja a imagem:

4. A partir de agora, sempre que o valor introduzido na célula A1 for superior a 300, será reproduzido um som padrão do sistema.
Reproduzir um som personalizado com base no valor de uma célula com código VBA
Se pretender reproduzir um som diferente do som padrão do sistema, existe igualmente um código VBA que o pode ajudar.
1. Mantenha premidas as teclas ALT + F11 para abrir a janela do Microsoft Visual Basic for Applications.
2. Clique em Inserir > Módulo e cole o seguinte código na janela do Módulo.
Código VBA: Reproduzir um som específico com base no valor de uma célula:
#If Win64 Then
Private Declare PtrSafe Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As LongPtr, ByVal dwFlags As Long) As Boolean
#Else
Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Boolean
#End If
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Function SoundMe() As String
'Updateby Extendoffice 20161223
Call PlaySound("c:\windows\media\Speech On.wav", _
0, SND_ASYNC Or SND_FILENAME)
SoundMe = ""
End Function
3. Em seguida, guarde e feche esta janela de código, regresse à folha de cálculo e introduza a seguinte fórmula:=IF(A1>300,SoundMe(),«») numa célula vazia ao lado da célula que contém o valor com base no qual pretende reproduzir um som e, depois, prima a tecla Enter. Nada será apresentado na célula da fórmula. Veja a imagem:

4. A partir de agora, sempre que introduzir na célula A1 um valor superior a 300, será imediatamente reproduzido um som específico.
Notas: No código acima, pode alterar o ficheiro de som .wav conforme necessário a partir do caminho c:\windows\media\. Veja a imagem:

Reproduzir um som se o valor de uma célula mudar numa Especificar coluna com código VBA
Se pretender reproduzir um som sempre que o valor de uma célula for alterado numa coluna específica, pode aplicar o seguinte código VBA.
1. Clique com o botão direito do rato no separador da folha onde pretende reproduzir um som sempre que o valor de uma coluna for alterado e, em seguida, escolha Ver Código no menu de contexto. Na janela aberta do Microsoft Visual Basic for Applications, copie e cole o seguinte código no módulo vazio:
Código VBA: Reproduzir um som se o valor de uma célula mudar numa coluna:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20161223
Dim xCell As Range
On Error Resume Next
If Target.Columns.Count = 1 Then
If Intersect(Target, Columns(3)) Is Nothing Then
Exit Sub
Else
For Each xCell In Columns(3)
On Error Resume Next
If (xCell.Value = Target.Value) And (xCell.Value <> "") Then
Beep
Exit For
End If
Next
End If
End If
End Sub

Nota: No código acima, o número 3 no script Colunas(3) corresponde ao número da coluna em que pretende que seja reproduzido um som sempre que o valor nessa coluna for alterado.
2. Em seguida, guarde e feche esta janela de código. A partir de agora, sempre que o valor de uma célula na terceira coluna for alterado, será reproduzido um som padrão do sistema.
As Melhores Ferramentas de Produtividade para o Office
Potencie as suas competências no Excel com Kutools para Excel e experimente uma eficiência como nunca antes.Kutools para Excel Oferece mais de 300 funcionalidades avançadas para impulsionar a produtividade e Economizar Tempo.Clique aqui para obter a funcionalidade de que mais precisa...
Office Tab Traz uma interface com separadores para o Office e torna o seu trabalho muito mais fácil
- Ative a edição e leitura com separadores no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novos separadores da mesma janela, em vez de em janelas separadas.
- Aumente a sua produtividade em 50 % e elimine centenas de cliques do rato todos os dias!
Todos os suplementos Kutools — num único instalador.
Kutools for Office reúne suplementos para Excel, Word, Outlook e PowerPoint, além do Office Tab Pro, sendo a solução ideal para equipas que trabalham em várias aplicações do Office.
- Pacote tudo-em-um— suplementos para Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Um instalador, uma licença— configuração em minutos (pronto para MSI)
- Funciona melhor em conjunto— produtividade simplificada em todas as aplicações do Office
- Teste gratuito de 30 dias com todas as funcionalidades— sem registo, sem cartão de crédito
- Melhor relação qualidade-preço— poupe face à compra individual dos suplementos